Loops 尝试创建一个循环,循环将遍历一个列表,并将该列表中的某些字段用作bowtie2命令的一部分
首先,这是我在这里的第一个问题,我刚刚注册,而且我是unix新手,所以如果我做错了什么,请原谅 好的,我有一个像这样的文件叫做fqfilesLoops 尝试创建一个循环,循环将遍历一个列表,并将该列表中的某些字段用作bowtie2命令的一部分,loops,unix,bioinformatics,Loops,Unix,Bioinformatics,首先,这是我在这里的第一个问题,我刚刚注册,而且我是unix新手,所以如果我做错了什么,请原谅 好的,我有一个像这样的文件叫做fqfiles 216 Slender 216_L8_1.fq.gz 216_L8_2.fq.gz 222 Stumpy 222_L8_1.fq.gz 222_L8_2.fq.gz 218 Slender 218_L8_1.fq.gz 218_L8_2.fq.gz 220 Stumpy 220_L8_1.fq.gz 220_L8
216 Slender 216_L8_1.fq.gz 216_L8_2.fq.gz
222 Stumpy 222_L8_1.fq.gz 222_L8_2.fq.gz
218 Slender 218_L8_1.fq.gz 218_L8_2.fq.gz
220 Stumpy 220_L8_1.fq.gz 220_L8_2.fq.gz
221 Stumpy 221_L8_1.fq.gz 221_L8_2.fq.gz
219 Slender 219_L8_1.fq.gz 219_L8_2.fq.gz
我需要做的是为它们中的每一个运行bowtie2命令,其语法如下
bowtie2 -x Trypanosoma_brucei_brucei -1 216_L8_1.fq.gz -2 216_L8_2.fq.gz -S 216Slender.sam
所以我想做的是;对于该文件的每一行,使用第一个和第二个字段作为上面代码的最后一部分,使用文件的第三个和第四个字段作为代码的中间部分
awk '{print $1$2".sam"}' fqfiles
awk '{print -1, $3, -2, $4}' fqfiles
我可以像这样得到这些部分,但我只是很难让它成为一个循环,它将取第一行,取第一行的字段,放入代码中,运行它,然后重新开始下一行,等等
谁能帮我写这个循环,或者建议我应该怎么做?使用
read
逐行阅读文件:
读取时-r n s f1 f2;做
bowtie2-x布氏锥虫-1“$f1”-2“$f2”-S“$n$S”
完成<文件
类似于awk'{print“echo bowtie2-x锥虫_brucei_brucei-1“$3”“-2”“$4”“$1$2.sam”}文件的内容
。一旦您确信正确生成了命令,请删除echo
并重定向输出以执行cmds,如awk'{print….}'| bash
。祝你好运