我正在尝试制作一个简单的脚本来一个接一个(一个接一个地)运行不同的任务,但我不知道如何通过 python 脚本运行程序!我知道这应该很简单!但我无法在任何地方找到它。我的例子是这样的:
samtools merge filename.bam file1.sorted.bam file2.sorted.bam file3.sorted.bam file4.sorted.bam
samtools index filename.bam
samtools idxstats filename.bam > filename.txt
samtools pileup -vcf path/filename.fa filename_sorted.bam
我希望 python 运行第一个命令并在完成后转到下一个命令!重要的是要等到它完成!
请您参考如下方法:
from subprocess import call # call runs an external program and waits for it to quit
for command in ("samtools merge filename.bam file1.sorted.bam file2.sorted.bam file3.sorted.bam file4.sorted.bam",
"samtools index filename.bam",
"samtools idxstats filename.bam > filename.txt",
"samtools pileup -vcf path/filename.fa filename_sorted.bam"):
# shell=True is so you can handle redirects like in the 3rd command
call(command, shell=True)
