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