HPC::Runner::Command::submit_jobs::Utils::Scheduler::ResolveDeps::BuildTaskDeps
Iterate over the batches and get the the matching TASK_TAGS
process_all_batch_deps
build_unequal_batch_tags
When they are not the same we have to search
build_equal_batch_tags
If the arrays are equal, each element depends upon the same element previously
#TODO Update this - it does not work when we have groups!
check_equal_batch_tags
If they are the same AND unique each element depends upon the same element from the other array
TODO - add back in this method to check for unique
process_batch_deps
If a job has one or more job tags it is possible to fine tune dependencies
#HPC jobname=job01 #HPC commands_per_node=1 #TASK tags=Sample1 gzip Sample1 #TASK tags=Sample2 gzip Sample2
#HPC jobname=job02 #HPC jobdeps=job01 #HPC commands_per_node=1 #TASK tags=Sample1 fastqc Sample1 #TASK tags=Sample2 fastqc Sample2
job01 - Sample1 would be submitted as schedulerid 1234 job01 - Sample2 would be submitted as schedulerid 1235
job02 - Sample1 would be submitted as schedulerid 1236 - with dep on 1234 (with no job tags this would be 1234, 1235) job02 - Sample2 would be submitted as schedulerid 1237 - with dep on 1235 (with no job tags this would be 1234, 1235)
##DEPRACATED - process_all_batch_deps
search_batches
search the batches for a particular scheduler id
#TODO update this to search across all batches - they are usually the same instead of per batch, create an array of array for all batches
[['Sample01'], ['Sample03']]
search_dep_batch_tags
search_tags
#TODO Update this - we shouldn't check for searches and search separately Check for matching tags. We match against any
job02 depends on job01
job01 batch01 has tags Sample1,Sample2 job01 batch02 has tags Sample3
job02 batch01 has tags Sample1
job02 batch01 depends upon job01 batch01 - because it has an overlap But not job01 batch02