Question: Bash Loop For Job Submission
2
gravatar for Genetics
5.6 years ago by
Genetics1.5k
United States
Genetics1.5k wrote:

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 • 4.1k views
ADD COMMENTlink modified 4.0 years ago • written 5.6 years ago by Genetics1.5k
8
gravatar for Pierre Lindenbaum
5.6 years ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum124k wrote:

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

ADD COMMENTlink modified 5.6 years ago • written 5.6 years ago by Pierre Lindenbaum124k

Thank you so much, love this!

ADD REPLYlink written 5.6 years ago by Genetics1.5k
4
gravatar for Devon Ryan
5.6 years ago by
Devon Ryan92k
Freiburg, Germany
Devon Ryan92k wrote:
for f in *.fasta
do
    cat $f | sixpack >> output
done

You'll find basic scripting to be invaluable.

ADD COMMENTlink written 5.6 years ago by Devon Ryan92k

Or:

      for i in {1..2000}; do sixpack <fasta$i.fasta; done
ADD REPLYlink written 5.6 years ago by 5heikki8.6k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1166 users visited in the last hour