import gzip
import io
from Bio import SeqIO
infile = "myinfile.fastq.gz"
fileout = open("myoutfile.fastq", "w+")
with io.TextIOWrapper(gzip.open(infile, "r")) as f:
line = f.read()
fileout.write(line)
fileout.seek(0)
count = 0
for rec in SeqIO.parse(fileout, "fastq"): #parsing from file
count += 1
print("%i reads" % count)
Das obige funktioniert, wenn "Zeile" in eine Datei geschrieben wird und diese Datei Feed an den Parser, aber unten funktioniert nicht. Warum kann Zeile nicht direkt gelesen werden? Gibt es eine Möglichkeit, "Zeile" direkt zum Parser zu führen, ohne zuerst in eine Datei schreiben zu müssen?Biopython Parsen von Variable anstelle von Datei
infile = "myinfile.fastq.gz"
#fileout = "myoutfile.fastq"
with io.TextIOWrapper(gzip.open(infile, "r")) as f:
line = f.read()
#myout.write(line)
count = 0
for rec in SeqIO.parse(line, "fastq"): #line used instead of writing from file
count += 1
print("%i reads" % count)
Das hat funktioniert. Nur benötigt, um den io.TextIOWrapper hinzuzufügen, der die "mit" -Zeile macht ... mit io.TextIOWrapper (gzip.open (infile, "rb")) als f: – Stuber