This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Bash Loop For Job Submission

Hi guys, I have thousands of fasta files each with one sequence only. I need to run a command in my linux/unix system to perform certain job and loop that command through each file and get the output in a single file. Is there a way to do that? I was suggested to use bash loop. For example, if I need to translate a DNA sequence in a fasta file and if the program (sixpack in this case) translates only one sequence at a time, how do I do this for multiple submission of files? I want to avoid doing this individually:

sixpack <fasta1.fasta
sixpack <fasta2.fasta
sixpack <fasta3.fasta

Instead, I want the bash(or perl/python script) to follow the same command looping through each fasta file. Thank you for your help!

bash perl

2 answers

for a larger/longer process that needs to be parallelized, use GNU parallel: http://www.gnu.org/software/parallel/

parallel sixpack '<'  {} ::: *.fasta

or GNU Make with option -j

Thank you so much, love this!

for f in *.fasta
do
    cat $f | sixpack >> output
done

You'll find basic scripting to be invaluable.

Or:

      for i in {1..2000}; do sixpack <fasta$i.fasta; done

Log in to answer this question.