Her er en awk
one-liner som fungerer som beregnet, i motsetning til bioawk
-svaret.
Dette fjerner alle forekomster av fastq-poster der lengden på seq og qual feltene stemmer ikke overens. Igjen, legg til | gzip > filtered.fastq.gz
for å gzip utdataene.
zcat bad_file.fq.gz | awk '{pos = NR% 4; hvis (pos == 1) {h = $ 0} annet hvis (pos == 2) \ {s = $ 0} annet hvis (pos == 3) {c = $ 0} annet hvis (pos == 0) \ {q = $ 0; hvis (lengde (q) == lengde (r)) {printf ("% s \ n% s \ n% s \ n% s \ n", h, s, c, q)}}} ' kode >
Slett \
tegnene på slutten av de to første linjene for å gjøre det enkelt å lime inn i terminalen din.
Her er en kortere versjon av det samme takket være @terdon
zcat file.fastq.gz | awk '{record [++ k] = $ 0; hvis (NR% 4 == 2) {slen = lengde ($ 0)} ellers hvis (NR% 4 == 0) {if (lengde ($ 0) == slen) {for (i i posten) {utskrift [i]}} k = 0; }} '