Para clasificar taxonómicamente las secuencias presentes en un metagenoma, podemos hacerlo de sod formas, 1) comparando las secuencias contra genomas conocidos y 2) extrayendo las secuencias de genes ribosomales (16S y 18S) y comparándolas contra una base de datos.
Kaiju es quizá el mejor clasificador taxonómico para secuencias de metagenomas. Si bien requiere varios pasos para obtener un análisis completo, estos pasos no son difíciles. Es necesario tener una base de datos de los genomas microbianos para que compare, lo cual sólo se puede hacer en el servidor por lo altos requerimientos computacionales.
Lo primero es comparar las secuencias (fasta o fastq) con la base de datos, tenemos instalada base de datos la ProGenomes (25,038 genomas bacterianos y de arqueas):
$ /opt/kaiju_v1.6.3/kaiju -t /db2/kaiju_dbs/nodes.dmp -f /db2/kaiju_dbs/kaiju_db.fmi -i FILE.R1.fastq -j FILE.R2.fastq -o kaiju.out -v -z 8
-f y -t son los archivos de la base de datos que están en /db2/kaiju_dbs/ en Biobacter
-i es el archivo de entrada, puede ser la R1.fastq de archivos pair-end o solo uno en fasta o fastq
-j el segundo archivo pair-end, R2.fastq (opcional)
-v verbose, para que también adjunte a la salida información adicional
-z el número de núcleos a usar
-o el archivo de salida
A continuación es necesario crea un reporte ya que el archivo de salida kaiju.out solo tienen claves que hay que interpretar con otros script incluidos en kaiju
$ /opt/kaiju_v1.6.3/kaijuReport -t /db2/kaiju_dbs/nodes.dmp -n /db2/kaiju_dbs/names.dmp -i kaiju.out -o kaiju.report -r genus
Este script toma la salida del primero y genera un reporte solo a nivel género ( -r genus
) con porcentaje, número de secuencias y género asignado. Se puede usar otro nivel taxonómico (phylum, family, species, p. ej.).
También es posible generar un gráfico Krona:
/opt/kaiju_v1.6.3/kaiju2krona -t /db2/kaiju_dbs/nodes.dmp -n /db2/kaiju_dbs/names.dmp -i kaiju.out -o kaiju.krona -v
que hay que importar a krona para generar el html:
ktImportText -o kaiju.html kaiju.krona
Si se tienen varias muestras, hay que hacer el kaiju para cada una y luego juntarlas, ver aqui
En Biobacter tenemos ya un script para simplificar todos estos pasos y generar la clasificación por muestra:
$ kaiju_classifier FILE.fasta
Puede usar un archivo fasta o fastq, pero solo uno y solo de una muestra, próximamente estará disponible para analizar varias muestras y compilar los resultados de todas en un solo archivo.
FOCUS: An Alignment-Free Model To Identify Organisms In Metagenomes Using Non-Negative Least Squares
USAGE:
python focus.py -q query_sequence.fna [-k] [-m] [-s]
-q Specify input file or directory with multiples samples. Required: Input files should be in FASTA format
-k Specify k-mer frequency used on the profile (default: 7) 6,7 and 8 frequencies are available.
All the output files have this project name as prefix.
-m minimum relative abundance to show in the results (default: 1%) Cut-off for the showing results.
-d Insert your own data into the database more information README .
-s output in the STAMP format for multiple files [0=False (default) and 1=True]
-l Split STAMP output in different levels (default: all; options: kingdom, phylum, class, order, family, genus, or species)
example 1 > (single file) python focus.py -q query.fasta
example 2 > (multiple files) python focus.py -q samples directory -s 1
Kraken, al igual que FOCUS, nos permite clasificar las secuencias dependiendo de la frecuencia de kmers que tengan y que tanto son semejantes a una bases de datos.
Kraken se basa en dos scripts, uno para clasificar las secuencias (kraken) y otro para asignarle a las secuencias clasificadas una taxonomía.
$ kraken --db /databases/prokaryota/kraken/minikraken_20141208 --threads 16 FILE.fasta > results.txt
--db ruta para la base de datos a usar; la ruta del ejemplo es la que tenemos en biobacter.
--threads Número de procesadores a usar para el análisis; el número depende del servidor o computadora.
FILE.fasta Archivo con las secuencias a analizar.
results.txt Archivo en donde se salvaran los resultados, lo crea.
$ kraken-translate --db /databases/prokaryota/kraken/minikraken_20141208 --mpa-format results.txt > taxonomy.txt
--db ruta para la base de datos a usar; la ruta del ejemplo es la que tenemos en biobacter.
--mpa-format Para que los resultados tengan un formato de taxonomía estándar.
results.txt Archivo generado en el script anterior.
taxonomy.txt Archivo con los resultados.
Los resultados generados no tienen un formato muy útil para analizarlos, mediante un script podemos correr todo el análisis y generar un archivo para usar con Excel. En Biobacter tenemos el script kraken_classifier.sh que utiliza todos los archivos .fasta en una carpeta y los analiza.
Metaxa2 es otro clasificador que extrae secuencias de algunas de las subunidades de los genes ribosomales, SSU (16S/18S) y LSU (23S/28S), y las clasifica de acuerdo a bases de datos propias de arqueas, bacterias, cloroplastos y eucariotas.
$ metaxa2 -i file.fasta -o metaxa --cpu 8
Si tenemos archivos pair-end fastq, podemos ejecutarlo así:
$ metaxa2 -1 R1.fastq -2 R2.fastq -o metaxa --cpu 8
Ambas opciones pueden durar horas, por lo que es conveniente correrlo en screen.
Otras opciones son:
-i {file} : DNA FASTA input file to investigate.
-o {file} : Base for the names of output file(s).
-f {a, auto, f, fasta, q, fastq, p, paired-end} : Specifies the format of the input file, default = auto
-g {ssu, lsu} : Specifies if Metaxa should look for SSU or LSU rRNA genes, default is ssu.
--cpu {value} : The number of CPU threads to use, default is 1.
--help : displays the full options for Metaxa.
-p {directory} : A path to a directory of HMM-profile collections representing rRNA conserved regions, default is in the same directory as metaxa itself.
-d {database} : The BLAST databased used for classification, default is in the same directory as metaxa itself.
-t {b, bacteria, a, archaea, e, eukaryota, m, mitochondrial, c, chloroplast, A, all, o, other} : Profile set to use for the search (comma-separated), default is all.
$ perl /opt/ribotagger/ribotagger.pl -region v4 -out outfile -in file1.fasta file2.fasta ...
Options
-region Can be any of the variable regions V4 to V7 (v4 v5 v6 v7)
-out Name of an output file
-in fasta file(s)