Estos son algunos TIPs para manipular archivos fastq
Concatenar por ID
El comando "paste" permite "contatenar" el contenido del fastq de cada ID en una sola línea, es decir, las cuatro líneas de cada ID quedarán "unidas" en una sola línea, separadas por tabulador.
cat archivo.fastq | paste - - - -
Obtener lista de IDs
Usando el comando "paste", junto con otros comandos de linux, podemos obtener rápidamente una lista de los IDs del fastq
cat archivo.fastq | paste - - - - | sed -e 's/\t.*//' -e 's/^@//' > archivo.fastq.ids
Obtener lista de IDs ordenada alfabéticamente y contando repeticiones
Lo mismo de antes pero ordenando los IDs y contándolos
cat archivo.fastq | paste - - - - | sed -e 's/\t.*//' -e 's/^@//' | sort | uniq -c > archivo.fastq.count_ids
Ordenar alfabéticamente (según ID) un archivo fastq
Acá nos valemos del comando sort para
cat archivo.fastq | paste - - - - | sort -k1,1 -S 3G \ | tr '\t' '\n' \ > sorted.archivo.fastq
#If you want xxxx.10 to come after xxxx.2, use the --V/--version-sort option in the sort command.
Editar todos los IDs usando un patrón regular
En este caso, voy a eliminar todo lo que esté a la derecha de la aparición de "::". De esta for a me quedo con los IDs "limpios".
Es interesante que sed tiene la capacidad de actuar en ciclo, simplemente estableciendo el patrón para cada ciclo. En este caso cada ciclo tiene cuatro líneas (formato fastq) y por ello tenemos cuatro espacios separados por punto y coma y para imprimir las lineas simplemente escribimos una "n". La primera línea del ciclo es la que vamosa "editar" por lo cual, en vez de escribir una "n", vamos a escribir el patrón regular deseado. Desde luego, si queremos editar otra línea del ciclo basta con reemplazar la "n" correspondiente por el patrón regular que queramos.
sed 's/::.*// ; n ; n ; n' archivo.fastq > farchivo.rename.fastq