Как исправить это расположение питона% s - PullRequest
0 голосов
/ 21 июня 2019

Мне нужно перебрать пары входных файлов, 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, которые я хотел бы перебрать. Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Единственная проблема заключается в том, что вам не хватает конечной круглой скобки:

    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")))

Вам просто нужно добавить конечную круглую скобку, и вы должны перестать испытывать эту синтаксическую ошибку.

0 голосов
/ 21 июня 2019

Вместо того, чтобы делать это с заполнителями% 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"))
...