Bash Loop For Job Submission
2
2
Entering edit mode
8.1 years ago
MAPK ★ 2.0k

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 • 5.5k views
8
Entering edit mode
8.1 years ago

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

0
Entering edit mode

Thank you so much, love this!

4
Entering edit mode
8.1 years ago
for f in *.fasta
do
cat $f | sixpack >> output done  You'll find basic scripting to be invaluable. ADD COMMENT 0 Entering edit mode Or:  for i in {1..2000}; do sixpack <fasta$i.fasta; done