Couple of months back, I had developed this shell script to automate trimmomatic for multiple paired end fastq files. I could see multiple posts on biostars and I believe this is a routine work at many institutions.
Suggestion for improvement: Check up front at the beginning of a script that all necessary tools are in PATH and/or defined in variables, e.g.:
## $TRIMMOMATIC could be a path like $HOME/software/trimmomatic.jar
TOOLS=(samtools bedtools bowtie2 $TRIMMOMATIC)
## A simple command that checks if tools can be found, if not names are written to a file <missing_tools.txt>
function PathCheck {
if [[ $(command -v $1 | wc -l) == 0 ]]; then
echo ${1} >> missing_tools.txt
fi
}; export -f PathCheck
## Check all tools:
for i in $(echo ${TOOLS[*]}); do
PathCheck $i; done
## If any of the specified tools is missing, throw an error and exit:
if [[ -e missing_tools.txt ]] && [[ $(cat missing_tools.txt | wc -l | xargs) > 0 ]]; then
echo '[ERROR] Missing tools -- see missing_tools.txt for details' && exit 1
fi
thanks for sharing. IMHO, you should have a look at solutions like nextflow or snakemake.
Hi Pierre Lindenbaum
I completely agree with you on that. I should start learning. Thanks for the suggestion.
Thanks for sharing the params.
Thanks cpad0112