Bei einer Lese-ID möchte ich einen einzelnen Basisanruf (z. B. die 12. Basis) für genau diesen Lesevorgang in einer großen FASTQ-Datei mit Millionen von Lesevorgängen bearbeiten.
Beispiel: Ich möchte den ändern 12. Basis ( 'C') eingelesen 31027 zu einem 'T':
@ 70630 1: N: 0: ATCACGGAAGGTCCATGGATAATACTCAATTTTCCACAACAGCTTTTGTACTCTAGATCATTGATATTTACCAAAAGTCACTCAAACTCATCCTATGCATAATTCTAGTCCACCAATCATGATATGATGGAGAACATGGTTGTAATCAGGAAGACAG + DDDDDHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGHHIIIIIIIIIIIIIIIIIIIIIIHIIHIHIIIHHIGIIIIHHHHIIH @@ 31027 1: N: 0: ATCACGCAAAAGTCACTCAAACTCATCCTATGCATAATTCTAGTCCACCAATCATGATATGATGGAGAACATGGTTGTAATCAGGAAGACAGATAAAGCAGCAGACCAAAAGTAATCTGAGAAATTATATTTGAATCACTCAGATATACATCAAATA + DDBDDHC GHFHHIIE @ @ CEHHIHEFFCGFCH ? HHEGFCCEHHCGH @ HFHHHCHHIIIHEHIIHII @ CECHIHIIIEECCDGEHFFHHHHEHHFHHGGIHHHDGHFHIIIGHHHHHHEHHIIHIIIGGHHHCHHHCHIIIHHIEH @ GHIHIC @ 87319 1: N: 0: ATCACGCAATTAAGCTTTGGCAACGGTGGTCAAGATGAGATGCATATGGAGATAATAACTAAAAGTCAATCGAGACTCATCGTATGCATATTTCTAGTCCATCGA TCATGAAATGATAGGATAGCTAGAATGAAAAGTAAATTTCCAGAAGGTCCAT + DDDDDIIIIIIIIIIIIIHIHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHHIIIIIIIIIIIIIIIIIHIIHIIIIIIIIIIIIHIIIIIIIIIHIHIH
Natürlich habe ich durch die gesamte fastq Datei Umschreiben alles in eine neue Datei streamen könnte, bis ich zum Lesen von Interesse erhalten, führen Sie die Änderungen an, die lesen, sie schreiben auf die neue Datei, und dann weiter bis zum Ende. BioPython würde hier genauso gut funktionieren wie andere Ansätze.
Gibt es jedoch eine effiziente Möglichkeit, dies ohne den vollständigen Lese- / Schreibstrom zu tun? Könnte dies mit sed / awk gemacht werden? Was ist mit einer indizierten Fastq-Datei?
cheersDavid