Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 尝试创建一个循环,循环将遍历一个列表,并将该列表中的某些字段用作bowtie2命令的一部分_Loops_Unix_Bioinformatics - Fatal编程技术网

Loops 尝试创建一个循环,循环将遍历一个列表,并将该列表中的某些字段用作bowtie2命令的一部分

Loops 尝试创建一个循环,循环将遍历一个列表,并将该列表中的某些字段用作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

首先,这是我在这里的第一个问题,我刚刚注册,而且我是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_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
。祝你好运