我不知道如何表达这个问题,但基本上我一直在使用 shell 脚本来处理 sam 数据。这是 shell 脚本。
nano picard_SortandIndex_from_sam.sh
for A in *sam; do ls $A; picard SortSam I=$A O=$A".bam" SO=coordinate CREATE_INDEX=TRUE; done
这是我运行的命令,对于所有已处理的 sam 文件,我只获得一个 .out 文件。
nohup sh picard_SortandIndex_from_sam.sh > picard_SortandIndex_from_sam5_26_21.out &
有没有办法在我的“picard_SortandIndex_from_sam.sh”脚本中生成 .out 文件,以便我可以为每个处理的 sam 文件生成一个摘要文件?我尝试将 > $A".out" 放在那里,但它不起作用......
非常感谢!
答案1
我想你正在寻找这个:
for A in *sam; do
ls "$A"
picard SortSam I="$A" O="$A".bam SO=coordinate CREATE_INDEX=TRUE > "$A".out
done
或者,更有可能的是,您想要标准错误和标准输出,因此使用:
for A in *sam; do
ls "$A"
picard SortSam I="$A" O="$A".bam SO=coordinate CREATE_INDEX=TRUE > "$A".out 2>&1
done
这将picard
在每个 sam 文件上运行,并存储命令的输出 ( > "$A".out
)和2>&1
文件中产生的任何错误 ( ) $A.out
。
最后一点,由于这会创建名为 等的文件foo.sam.bam
,foo.sam.bam.bai
您可能需要.sam
从输出名称中删除 :
for A in *sam; do
ls "$A"
fileName=$(basename "$A" .sam)
picard SortSam I="$A" O="$fileName".bam SO=coordinate CREATE_INDEX=TRUE > "$fileName".out 2>&1
done
这将创建foo.bam
fromfoo.sam
而不是foo.sam.bam
.