-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
push stats on demand #91
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left two specific comments in the code, but have two more general points:
How I'd understand it:
One runs BRB --stats --fid path/to/flowcell
-> don't run BRB.PushButton.GetResults, only phoneHome or telegraphHome where appropriate
One runs BRB without --stats / --fid and there is an unprocessed flow cell
-> run workflow as it's implemented now (GetResults workflow)
One runs BRB without --stats / --fid and there is no unprocessed flow cell
-> sleep
I only see a query to parkour under the stats is not None arm, am I misunderstanding the implementation maybe ?
Secondly, It should be easy to test a stats/fid implementation by comparing the json to the one pushed to parkour previously, it's probably safer to test this before just pushing these changes over.
You're not misunderstanding the implementation. So, yes. BRB without --stats, should be the original. The idea, is that this one is there, left running as always. On top of it, no matter what that process is doing (if there's a new flowcell, or not, and it's just sleeping) we could run BRB with --stats and a FCID, to push those stats to Parkour.
I will try that! 👍🏽 |
The newly added functionality works. I didn't compare the json file(s) pushed to Parkour, but saw the emails in my inbox and they look coherent, and since we didn't change how the info is parsed or anything else; it should all be set. The only thing left, perhaps, is testing that the old functionality is there without any new issues. It should be the case, but still. As a side note, I have modified the "external data" print statement in PushButton because I was puzzled by it. I can't say that it's anything clearer now... For example,
|
BRB/run.py
Outdated
|
||
|
||
# Process each group's data, ignore cases where the project isn't in the lanes being processed | ||
process_data(config, ParkourDict) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still fail to understand the logic here, sorry..
stats not set -> only set a log file
stats set -> infer some lane status and set some other paths ?
Afterwards all the data gets processed anyway. For me this is effectively the same as running BRB twice ( with the added disadvantage that we are hardcoded for two lanes now).
If you don't have FID as an argument, but an actual path to a processed flowcell (which might be split per lane or not, but at least you don't have to infer it here), and subsequently have:
if not stats:
process_data
else:
if analysis was actually done already (because analysis worked, parkour was just dead) -> run phoneHome
else no analysis was actually done (because non-std libtype, or external data) -> run telegraphHome
My guess is the actual path constructed from the flow cells is wrong (does lanes_1_2 even exist, or we only have lanes_1 and lanes_2 as separate dirs). Perhaps the other comment clarifies some things, otherwise we could discuss this in person. |
Adressing #89
Not tested.