Ion Torrent

NOTA. Esta limpieza está diseñada para la plataforma Ion Torrent PGM y para la región V3. Será necesario hacer ajustes para otras regiones.

Inicialmente contamos con varios archivos fastq con las lecturas para cada muestra que es necesario limpiar y renombrar.

Los pasos necesarios son:

  1. Eliminar las bases con una calidad inferior a Q20.
  2. Eliminar las secuencias cortas (inferiores a 100).
  3. Eliminar primers (fwd 338f y rvs 533r).
  4. Eliminar las secuencias inferiores a 130 pb.
  5. Recortar las secuencias a no mas de 180 pb (del extremo 3').
  6. Convertir de fastq a fasta.
  7. Renombrar cada una de las lecturas con el código para la muestra y un número consecutivo.
  8. Concatenar todas las lecturas de todas las muestras en un solo archivo fasta. Realizar esto SOLO cuando se vaya a usar QIIME.

Los pasos 1 a 7 lo realiza un script para todas las muestras (.fastq) en el directorio:

$ ion_cleaner

o bien se puede ir haciendo muestra por muestra con el script:

$ metag_seq_cleaner130.sh

o también puede ser invocado solo con:

$ metag_seq_cleaner

El paso 8 se hace con cat

$ cat *.fna > FILE.fna

Solo es necesario que todos los archivos a unir estén en el mismo directorio.

Para comprobar el número de lecturas totales podemos correr el script:

$ basic_stats.pl FILE.fna

Limpieza de muchos archivos automáticamente

OK, esta bien este script si solo se procesan pocas muestras, pues hay que ejecutarlo para cada una de las muestras, pero que pasa si tenemos muchas muestras (decenas o cientos), entonces ya no esta tan cool. Sería genial que el script tomara los nombres de las muestras de algún lado y automáticamente lo usara para limpiar todas los archivos fastq de un directorio, por ejemplo. La manera más fácil que encontré para hacer esto y procesar todas las muestras de una vez es la siguiente:

Normalmente el secuenciador arroja un archivo fastq que incluye de alguna manera el nombre de la muestra, en el caso del Ion Torrent lo podemos programar para que genere algo así como: IonXpress_43_V3f.R3.1.fastq. Este nombre incluye el tipo de primers de fusión (IonXpress), un número de barcode (43), el nombre de la muestra (R3.1) y la extensión (.fastq). Teniendo el nombre de la muestra ya en el nombre del archivo, lo único que tenemos que hacer es eliminar todo lo demás y solo dejar el nombre de la muestra y la extensión; esto lo podemos hacer fácilmente para todos los archivos de un folder con el comando:

$ for file in *fastq; do mv -f "$file" "${file:17}"; done

Estamos pidiendo que a todos los archivos con terminación .fastq en el directorio actual, los renombres quitándole los primeros 17 caracteres al nombre de cada archivo. Del ejemplo anterior, le quitaría IonXpress_43_V3f. y solo quedaría R3.1.fastq

Claro esto es para el caso en que todos los archivos tengan el mismo número de caracteres antes del nombre de la muestra.

También podemos eliminar partes del nombre del archivo usando los caracteres o palabras que tengan en común, lo que se llama string. En el ejemplo anterior podemos seleccionar IonXpress_ y este string eliminarlo de todos los archivos del directorio de la siguiente manera:

$ for file in *; do mv -f "${file}" "${file/IonXpress_/}"; done

En otras ocasiones necesitamos cambiar solo un caracter o caracteres en el nombre de los archivos. Por ejemplo, no se debe usar el guión medio (-) para el nombre de los archivos sino usar el guión bajo (_), para cambiar este caracter en todos los archivos fastq en un directorio usaremos el siguiente comando:

$ rename 's/-/_/' *.fastq

Ahora si, tenemos ya todos nuestros archivos fastq con el nombre de la muestra y la terminación .fastq; con una variante del script metag_seq_cleaner130.sh podemos procesar todos los archivos del directorio para que nos genere archivos fasta limpios y correctamente nombradas las secuencias con el nombre de la muestra y un número consecutivo para su posterior análisis. Las secuencias del ejemplo anterior quedarían: >R3.1_1, >R3.1_2, etc.

Concatenación de archivos

Puede suceder que a veces necesitamos juntar dos archivos con secuencias de la misma muestra pero que se realizaron en diferentes corridas de secuenciación. En este caso podemos terminar con dos archivos con el mismo nombre en diferente subdirectorio, por ejemplo:

/primer_corrida/m01.fastq m02.fastq etc.

/segunda_corrida/m01.fastq m02.fastq etc.

Para concatenar las secuencias de la segunda corrida al archivo de la primer corrida, podemos realizar lo siguiente:

1. Entrar al directorio con la segunda corrida:

$ cd /segunda_corrida

2. Ejecutar el comando

$ for x in *.fastq; do cat "$x" >>"../primer_corrida/$x"; done

Es importante que en los dos subdirectorios los archivos tengan los mismos nombres; esto lo ejecutará para cualquier par de archivos en ambos subdirectorios. Al final los archivos en /primer_corrida/ tendrán todas las secuencias de las dos corridas. Si tenemos mas de dos corridas, podemos ejecutar estos comandos secuencialmente.

Limpieza y descontaminación

En el servidor biobacter tenemos un script que realiza todos los pasos de limpieza y descontaminación a la vez; éste se puede invocar con:

$ mg_cleaner &

Es necesario tener todos los archivos fastq en un directorio, los archivos ya tiene que tener un nombre sencillo (ver arriba). Debido a que este script puede tardar bastante (horas), al final del comando se puede poner un & para que el script corra a pesar de que se cierre la terminal; de esta manera se puede dejar trabajando el servidor y regresar después a ver si ya terminó.

Figura. Estructura de la región V3 (negro) del gen ribosomal 16S. Flechas en rojo son primers.

SCRIPT

Los pasos principales que realiza el script son:

$ fastq_quality_trimmer -t 20 -l 100 -v -i FILE.fastq -o FILE.trim1.fastq 
    # elimina q <20 y lecturas < 100
$ cutadapt -a GTGCCAGCAGCCGCGGTAA -g ACTCCTACGGGAGGCAGCAG -m 130 -o FILE.trim2.fastq FILE.trim1.fastq 
    # elimina primers y secuencias menores a 130
$ fastq_to_fasta -r -i FILE.trim2.fastq -o FILE.clean.fasta 
    #convierte y renombra (-r) con un numero consecutivo
$ fastx_trimmer -l 180

# recorta las secuencia a un máximo de 180 nucleótidos