I have a Bash script that contains three different functions that executes based on the information in samplesheet.txt. Which of the three functions to run is determined by the column Group in samplesheet.txt. All lines in samplesheet that have Group=Both, should be run using process_both. Lines with Group=DNA should run the function process_dna and lines with Group=RNA should run the function process_rna.
How do I specify in my Bash script which function to be run based not he information in samplesheet?
samplesheet.txt:
DNA RNA purity Group
sample_DNA_1 sample_RNA_1 0.8 Both
sample_DNA_2 sample_RNA_2 0.5 Both
NA sample_RNA_4 0.3 RNA
sample_DNA_3 NA 0.1 DNA
Code:
process_both() {
local dna=$1
local rna=$2
local purity=$3
singularity exec
sing.sif
...
...
dna_id {dna}
rna_id {rna}
purity {purity}
...
}
process_dna() {
local dna=$1
local rna=$2
local purity=$3
singularity exec
sing.sif
...
...
dna_id {dna}
purity {purity}
...
}
process_rna() {
local dna=$1
local rna=$2
local purity=$3
singularity exec
sing.sif
...
...
rna_id {rna}
purity {purity}
...
}
# Run the functions
tail +2 samplesheet.txt | while read dna rna purity
do
process_both "$dna" "$rna" "$purity"
done
tail +2 samplesheet.txt | while read dna rna purity
do
process_rna "$dna" "$rna" "$purity"
done
tail +2 samplesheet.txt | while read dna rna purity
do
process_dna "$dna" "$rna" "$purity"
done