我需要遍历输入文件对 R1 和 R2 ,它们将一起处理,并分别附加一个“ .trim”文件扩展名。
我对python和glob的了解有限,在使用成对输入但只有一个输出的情况下,它们对于类似任务的效果很好。我完全为为什么它不起作用而感到困惑,尽管我确信这很容易解决。
#!/usr/bin/python
import glob
import os
files = glob.glob("ATAC*R1*.fastq.gz")
for ifile in files:
os.system("cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o %s.trim -p %s.trim %s %s" % (ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2"))
Error:
line 7
^
SyntaxError: invalid syntax
这应该如下:
ATAC2-1_R1_.fastq.gz and ATAC2-1_R1_.fastq.gz -> ATAC2-1_R1_.fastq.gz.trim and ATAC2-1_R1_.fastq.gz.trim.
我要迭代几个R1和R2对。感谢帮助!
答案 0 :(得分:1)
唯一的问题是您缺少结尾括号:
os.system("cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o %s.trim -p %s.trim %s %s" % (ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2")))
您只需要添加结尾括号,就应该停止遇到该语法错误。
答案 1 :(得分:0)
我不会尝试使用%s占位符来执行此操作,而是尝试使用.format(),如下所示:
"cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o {0}.trim -p {1}.trim {2} {3}".format(ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2"))