MetaPhase: una herramienta de software para la deconvolución metagenómica con Hi-C.
Creado por Josh Burton ( jnburton at uw.edu
) en el Departamento de Ciencias del Genoma de la Universidad de Washington, Seattle, WA, EE. UU.
Publicación en en G3: Genes | Genomas | La genética (por favor cite) está aquí: http://dx.doi.org/10.1534/g3.114.011825
¿Qué es MetaPhase y por qué me importa?
¿Qué necesito tener para utilizar MetaPhase?
Requisitos del sistema
Descargando el paquete MetaPhase
Compilando el paquete MetaPhase
Tutorial: Pruebe MetaPhase en un conjunto de datos de muestra
Lista de archivos de entrada
Creando el borrador del ensamblaje del metagenoma.
Alineación de las lecturas de Hi-C con el borrador del ensamblaje del metagenoma
Suministro de genomas de referencia
Creando archivos TSV
Argumentos de línea de comando requeridos
Argumentos opcionales de la línea de comandos
Argumentos de salida de línea de comandos (todos los conmutadores opcionales)
Gráficos
Imágenes
Archivos en el directorio de salida
Ejecutando LACHESIS
¡MetaPhase no se ejecuta!
¡MetaPhase está fallando!
¡MetaPhase está produciendo un resultado extraño!
MetaPhase es una herramienta de software para realizar deconvolución metagenómica. Es decir, ingresa un ensamblaje de metagenoma (un ensamblaje creado a partir de una muestra genómica mixta, generalmente de muchas especies microbianas diferentes) y determina qué contigs en ese ensamblaje pertenecen juntos en los mismos genomas. Un ensamblaje de metagenoma no contiene los genomas completos de ninguna especie en la muestra mixta, pero el ensamblaje desconvolucionado puede contener genomas casi completos de muchas especies individuales. MetaPhase se basa en datos generados por Hi-C, una técnica molecular establecida para estudiar la conformación de la cromatina (artículo).
Desea utilizar MetaPhase si está estudiando una comunidad microbiana y desea conocer los genomas de especies microbianas individuales. MetaPhase funciona bien en comunidades bastante complejas y puede estudiar eucariotas y procariotas igualmente bien. MetaPhase no puede desconvolucionar cepas estrechamente relacionadas de la misma especie; pondrá todas estas cepas en un solo grupo. MetaPhase no se ha probado en comunidades con miles de especies, como el microbioma intestinal humano, ni puede detectar de manera confiable especies con abundancias muy por debajo del 1%. (Tenga en cuenta que la limitación aquí está en la incapacidad del software estándar de ensamblaje de metagenomas de novo para generar un borrador de ensamblaje de metagenomas que contenga contigs de especies raras, en lugar de la capacidad de MetaPhase para desconvolucionar estos contigs).
No querrás utilizar MetaPhase si estás estudiando la variación de cepas dentro de una sola especie. O si está estudiando reordenamientos genómicos en genomas de cáncer humano. Tampoco desea utilizar MetaPhase a menos que tenga un conjunto de datos metagenómicos Hi-C o esté dispuesto a crear uno; Hi-C no es una técnica trivial de aprender. La deconvolución metagenómica puramente computacional (en lugar de molecular) es difícil, pero no imposible: consulte los artículos citados en la introducción del artículo de MetaPhase.
En un nivel alto, sólo necesitas dos cosas para ejecutar MetaPhase:
"Un borrador de ensamblaje de metagenoma de novo" . Esto se puede crear a partir de una biblioteca de secuenciación de metagenomas de escopeta mediante cualquier cantidad de herramientas de ensamblaje, como Velvet, IDBA-UD, ABySS o SPAdes.
Una biblioteca de secuenciación Hi-C creada a partir de una muestra de metagenoma , preferiblemente la misma muestra que se usó para crear el ensamblaje de metagenoma de novo , o una muy similar.
En un nivel bajo, MetaPhase requiere varios archivos de entrada diferentes, así como algunas entradas opcionales. Para obtener más detalles sobre los archivos de entrada, consulte la sección C1, "Lista de archivos de entrada".
Para configurar y ejecutar MetaPhase, necesitará una computadora que se ejecute en un entorno UNIX con al menos 16 GB de memoria y con el siguiente software instalado:
gcc, el compilador de C++ (http://gcc.gnu.org/)
La biblioteca de compresión zlib (http://www.zlib.net/)
Es posible que también necesite el siguiente software:
El alineador de lectura corta BWA (http://bio-bwa.sourceforge.net/) u otro alineador similar
El alineador BLAST en forma de línea de comandos (http://www.ncbi.nlm.nih.gov/books/NBK1763/), incluidos los comandos blastn
, tblastx
y makeblastdb
El software bmtagger para eliminar lecturas humanas de conjuntos de datos de metagenómica (http://biowulf.nih.gov/apps/bmtagger.html)
MetaPhase también requiere las bibliotecas boost C++ (http://www.boost.org/) y el kit de herramientas SAMtools (http://samtools.sourceforge.net/), pero se incluyen con el paquete de instalación de MetaPhase.
Descargue el paquete MetaPhase desde https://github.com/shendurelab/MetaPhase/archive/master.zip en un sistema de archivos UNIX. Si descarga el archivo tar ( MetaPhase.tar.gz
), descomprímalo usando los siguientes comandos UNIX:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
De aquí en adelante, me refiero al directorio principal de MetaPhase como <MetaPhase>
.
Para compilar MetaPhase, simplemente escriba make
en el directorio <MetaPhase>
. Para ejecutar MetaPhase, es posible que también necesite agregar <MetaPhase>/include/boost_1_47_0/stage/lib
a su $LD_LIBRARY_PATH
(para evitar un problema: cannot open shared object file...
). Por último, asegúrese de ejecutar MetaPhase desde el directorio <MetaPhase>
o agregue ese directorio a su $PATH
. Esto es importante porque algunos módulos MetaPhase necesitan acceder a los scripts ejecutables FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
y MakeClusteringResultHeatmap.R
, que se incluyen en el paquete MetaPhase.
El paquete MetaPhase incluye un pequeño caso de prueba que puede ejecutar para tener una idea de cómo funciona MetaPhase. Está contenido en el directorio test_case
, que tiene los siguientes subdirectorios:
<MetaPhase>/test_case/assembly/
: Contiene un borrador de ensamblaje de metagenoma de novo , assembly.fasta
. Este conjunto consta de 20 cóntigos tomados de un conjunto mucho más grande de una muestra de vaginosis bacteriana. Sirve aquí como un ejemplo de juguete de un ensamblaje de metagenoma.
<MetaPhase>/test_case/HiC/
: Contiene 2 archivos fastq, BV.H3.head.bmt.1.fq y BV.H3.head.bmt.2.fq. Estas lecturas son un subconjunto de un conjunto de datos de Hi-C mucho más grande secuenciado a partir de una muestra de vaginosis bacteriana. Ya han sido filtrados con bmtagger para eliminar lecturas humanas.
<MetaPhase>/test_case/refs/
: Contiene un genoma de referencia disponible públicamente, LI.fasta
, para la bacteria Lactobacillus iners . Esta es una entrada opcional que MetaPhase utilizará para ver si sus grupos coinciden con el genoma de L. iners .
<MetaPhase>/test_case/tsvs/
: Contiene dos archivos TSV que describen la ubicación de otros archivos de entrada y son utilizados por MetaPhase.
<MetaPhase>/test_case/out/
: este directorio no existe inicialmente. Cuando MetaPhase se ejecute en el caso de prueba, creará este directorio y colocará su salida aquí.
La única entrada (opcional) que falta en test_case es una base de datos BLAST de secuencias de nucleótidos. Esta base de datos, que permite consultar los contigs del ensamblaje del metagenoma con respecto a todas las secuencias conocidas, es demasiado grande para un paquete de prueba, pero se puede descargar desde el sitio web de BLAST. Para utilizar esta base de datos, deberá configurar el argumento de la línea de comandos --blast_dir
.
Para aplicar MetaPhase al test_case, ejecute los siguientes comandos:
Prepare el borrador del conjunto de metagenoma de novo para alinearlo con bwa. Tenga en cuenta que bwa
debe estar en su $PATH
. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Alinee las lecturas Hi-C con el borrador del conjunto. Esto utiliza align.sh
, un script que ya se proporciona, que ejecuta bwa aln
y bwa sampe
y crea un archivo BAM que utilizará MetaPhase. Tenga en cuenta que debe utilizar bwa aln
y bwa sampe
, no bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
Examine los archivos TSV para asegurarse de comprender lo que están haciendo. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
Ahora, ejecute el caso de prueba MetaPhase con un conjunto básico de argumentos de línea de comandos. Los propósitos de todos estos argumentos de la línea de comandos se explican a continuación en la sección D, "Ejecución de MetaPhase". cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
Lo primero que hará MetaPhase será alinear los contigs del borrador del ensamblaje con el genoma de referencia LI.fasta. Esto puede tardar varios minutos, pero es una espera única: los resultados se almacenarán en caché en un archivo especial. A continuación, MetaPhase agrupará los 20 contigs en el borrador del ensamblaje por sus enlaces Hi-C, creando 3 grupos (debido a -N 3
). Por último, MetaPhase informará estadísticas básicas sobre los grupos que ha creado.
Ahora intente ejecutar MetaPhase nuevamente, agregando uno o más de los siguientes argumentos de línea de comandos: --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
. Cada una de estas opciones dará como resultado que se genere más información en varias formas: ya sea en la pantalla, en archivos o en imágenes. Consulte la sección D2, "Argumentos opcionales de la línea de comandos" para obtener más información.
Ahora mira en test_case/out/test_case
. Este es el directorio de salida creado por su ejecución de MetaPhase. Contiene varios archivos de salida. Los archivos cluster.*.fasta
son los fastas de su clúster (existen solo si ha ejecutado con --output_cluster_fastas
). El subdirectorio cached_data
contiene archivos de datos cahed , que incluyen los resultados de las ejecuciones BLAST y los clusterings MetaPhase.
Tenga en cuenta que test_case es un conjunto de datos muy pequeño y sus resultados no son biológicamente útiles ni típicos. Por ejemplo, hay tan pocos pares de lectura Hi-C que 10 de 20 contigs están completamente desvinculados, y los que están vinculados están en tres grupos separados (por lo que es imposible producir menos de 3 grupos). Esto nos impide ilustrar otro útil característica de MetaPhase, que es que podemos usarlo para predecir el número de clústeres. En su muestra (aunque, lamentablemente, no en test_case) puede ejecutar MetaPhase con -N 1
y generará una curva de enriquecimiento E(N) , como la de la Figura S4 del artículo de MetaPhase. Esto le permitirá determinar la cantidad aproximada de especies en su ensamblaje de metagenoma y, por lo tanto, la cantidad óptima de grupos.
MetaPhase utiliza los siguientes archivos de entrada directamente. Para ver una ilustración de cómo se ven todos estos archivos, consulte test_case.
Archivos requeridos:
Un borrador del ensamblaje del metagenoma, en formato fasta.
Uno o más archivos SAM/BAM que describen alineaciones de lecturas Hi-C con un borrador de ensamblaje de metagenoma. Tenga en cuenta que estos archivos SAM/BAM deben tener cada lectura listada solo una vez, lo que significa que deben generarse con bwa aln y bwa sampe, NO con bwa mem.
Dos archivos TSV, <scenario>.HiC_libs.tsv
y <scenario>.refs.tsv
, que describen el conjunto de archivos de entrada BAM y el conjunto de genomas de referencia, respectivamente. Archivos opcionales:
Una base de datos BLAST que describe todas las secuencias conocidas de nucleótidos ( nt
) y/o proteínas ( nr
). Se puede descargar una versión actualizada de esta base de datos desde el sitio web de BLAST, que también contiene instrucciones sobre cómo instalar las utilidades de línea de comandos blastn
y tblastx
que necesitará. Tenga en cuenta que estas bases de datos son grandes (a partir de 2015, nt
es ~25 Gb y nr
es ~50 Gb).
Un conjunto de genomas de referencia en formato fasta, que describe especies que cree que están en su muestra o que están relacionadas con elementos de su muestra. Si no sabe todo lo que hay en su muestra (y probablemente no lo sepa), puede esperar hasta que haya alineado su ensamblaje de metagenoma con una búsqueda BLAST y luego aceptar sugerencias de esos resultados de búsqueda. Para encontrar un ensamblaje del genoma de referencia para una especie, busque en la base de datos del NCBI Assembly.
Un archivo SAM/BAM que describe las alineaciones de lecturas de escopeta con un borrador de ensamblaje de metagenoma. Las lecturas de escopeta son las mismas lecturas utilizadas para crear el ensamblaje. MetaPhase puede usar este archivo para estimar la abundancia en su muestra de cada contig y, por lo tanto, de cada grupo. Actualmente no está disponible sin hackear un poco MetaPhase.cc (lo siento).
Una de las aportaciones más importantes a MetaPhase es el borrador del ensamblaje del metagenoma de novo . Debe crear este ensamblaje usted mismo utilizando lecturas de escopeta de su muestra. Hay muchas herramientas de ensamblaje de metagenomas de novo disponibles públicamente que funcionan bastante bien, incluidas Velvet, IDBA-UD, ABySS y SPAdes. Usé IDBA-UD mientras desarrollaba MetaPhase.
Es importante darse cuenta de que MetaPhase no produce ninguna secuencia nueva; solo agrupa la secuencia que ya está en el ensamblaje. Si alguna secuencia de su muestra no llega al borrador del ensamblaje (porque es demasiado infrecuente, demasiado desequilibrada en GC, demasiado repetitiva o por cualquier otra razón), entonces MetaPhase no puede agruparla en un genoma. Puede valer la pena probar muchas opciones diferentes en su ensamblador de metagenomas, o muchas herramientas de ensamblaje de metagenomas diferentes, para obtener un ensamblaje con la mayor cantidad de secuencia y el contig N50 más largo.
MetaPhase funciona mucho mejor cuando sus contigs de entrada son más largos, porque hay una señal más clara de enlace Hi-C para su uso. En particular, MetaPhase no puede agrupar un contig que no contenga sitios de enzimas de restricción , porque una lectura Hi-C no puede alinearse de manera confiable con él. Tenga esto en cuenta al elegir qué enzima de restricción utilizar para su experimento Hi-C. Si su ensamblaje de metagenoma tiene un N50 pequeño, es posible que desee utilizar una enzima de restricción de 4 cortadores en lugar de una de 6 cortadores. (Por ejemplo, si su ensamblaje de metagenoma tiene un N50 de solo 4 Kb, entonces una biblioteca Hi-C hecha con un cortador de 6, que corta aproximadamente cada 4 Kb, será completamente incapaz de agrupar el 50% de la secuencia del ensamblaje).
Además del ensamblaje del metagenoma en sí, MetaPhase ingresa una alineación de las lecturas de Hi-C al ensamblaje del metagenoma. Este archivo debe estar en formato SAM o BAM y debe contener cada lectura Hi-C solo una vez. Puede utilizar cualquier alineador que produzca archivos SAM/BAM; Usé bwa mientras desarrollaba MetaPhas; si usa bwa, asegúrese de usar bwa aln y bwa sampe, no bwa mem, ¡que genera cada lectura varias veces!)
Las lecturas de Hi-C son únicas: son deliberadamente quiméricas, con un sitio de ligamiento quimérico cuya secuencia se conoce a partir de la enzima de restricción (p. ej., HindIII corta en AAGCTT y produce AAGCTAGCTT al volver a ligarse). Debido a esto, un enfoque de alineación sencillo Se pierden muchos emparejamientos útiles de Hi-C. Es posible que desee diseñar un canal de alineación personalizado para maximizar su rendimiento; Si es así, eche un vistazo al script align.iter.interactive.sh
, que utilicé en mi propio desarrollo y puede brindarle ideas para su proceso personalizado.
Proporcionar genomas de referencia a MetaPhase es completamente opcional, pero muy útil. MetaPhase puede alinear los contigs del borrador del ensamblaje para tener una idea de de qué especie es probable que pertenezcan. Hay dos formas de hacer esto: alinearse con una base de datos BLAST que contenga todas las secuencias conocidas; y alinear con un archivo fasta local que contiene un único conjunto de genoma de referencia. El primer método es útil para explorar la cuestión de qué taxones hay en su muestra; El último método es útil para centrarse en especies individuales que sabe que están en su muestra (o relacionadas con elementos de su muestra) y para crear el mapa de calor y las imágenes de la red de clústeres (consulte la sección E2, "Imágenes"). Puede comenzar solo con una alineación BLAST, luego usar los resultados desde allí para determinar qué especies es probable que encuentre, luego descargar esas referencias e introducirlas en MetaPhase. La lista de ensamblajes del genoma de referencia se proporciona a MetaPhase en el archivo <scenario>.refs.tsv
.
MetaPhase realizará todas las alineaciones tanto con la base de datos BLAST como con los genomas de referencia. MetaPhase puede llamar a los comandos BLAST blastn
, tblastx
y makeblastdb
, todos los cuales forman parte del paquete de código de línea de comandos BLAST; asegúrese de que estos comandos estén en su $PATH
. Tenga en cuenta que BLAST puede utilizar mucho tiempo de ejecución, especialmente si configura --use-tblastx
. Sin embargo, MetaPhase almacena en caché los resultados de las ejecuciones BLAST en <out_dir>/cached_data
para ahorrar tiempo de ejecución más adelante.
MetaPhase requiere dos archivos TSV (valores separados por tabulaciones) de entrada: uno para proporcionarle el conjunto de archivos de alineación SAM/BAM y otro para proporcionarle el conjunto de ensamblajes del genoma de referencia. Estos archivos son pequeños y querrás hacerlos a mano, especialmente porque es posible que necesites modificaciones manuales más adelante. Lo más sencillo es seguir el ejemplo de los archivos TSV en test_case/tsvs
.
Para obtener un resumen rápido de todos los argumentos de la línea de comandos de MetaPhase, ejecute MetaPhase -help
. Una explicación más detallada está aquí.
-s
<string>
: nombre del escenario. MetaPhase lo utiliza para nombrar su ejecución. Se utiliza como comienzo del nombre de los archivos tsv (ver -i
a continuación) y también como nombre del directorio de salida (ver -o
a continuación). Por último, puede ignorar esto, pero hay algunos nombres de escenarios que tienen opciones de línea de comandos integradas que utilicé en el desarrollo (esta es, por ejemplo, la razón por la que -a
no aparece como argumento "requerido" en MetaPhase -help
comando MetaPhase -help
.)
-a
<string>
: La ubicación del borrador del archivo fasta del ensamblaje del metagenoma de novo . Debe ser una ruta absoluta, no relativa, es decir , debe comenzar con /
.
-N
<integer>
: el número de clústeres a crear. Si lo configura en 1, MetaPhase agrupará todo en un solo grupo y calculará E(N), el enriquecimiento del enlace dentro del grupo, a lo largo del camino, luego escribirá un archivo enrichment_curve.jpg
que puede brindarle una estimación del número de especies en su muestra. No lo establezca en 0 ni en un número mayor que el número de contigs.
Algunos de estos argumentos incluyen $HOME
en sus valores predeterminados. Esto se refiere a su directorio de inicio de UNIX (el lugar al que va cuando escribe cd ~
o cd $HOME
).
-i
<string>
: directorio de entrada. Este es el directorio que contiene los archivos tsv, <scenario>.HiC_libs.tsv
y <scenario>.refs.tsv
. Valor predeterminado: ./input
.
-o
<string>
: directorio raíz de salida. Los archivos de salida de esta ejecución irán en <out_dir>/<scenario>
. Valor predeterminado: $HOME/MP/out
.
--blast_dir
<string>
: directorio que contiene las bases de datos BLAST ( nt.*
y nr.*
) que MetaPhase utiliza para las alineaciones. Puede descargar estos archivos desde el sitio web de BLAST. Valor predeterminado: $HOME/extern/blast
.
--refs_dir
<string>
: directorio que contiene los ensamblajes del genoma de referencia que se enumeran en el archivo refs.tsv
. Los archivos de salida de esta ejecución irán en <out_dir>/<scenario>
. Valor predeterminado: $HOME/MP/refs
.
--use_tblastx
: Alternar. Si se configura, MetaPhase realizará sus alineamientos BLAST usando tblastx
en lugar de blastn
, lo que, en lugar de alinear las secuencias de nucleótidos de los contigs con una base de datos de nucleótidos, traduce los nucleótidos a aminoácidos y los alinea con una base de datos de proteínas. Debido a que las secuencias de proteínas están más conservadas que las secuencias de nucleótidos, tblastx
recoge relaciones filogenéticas más distantes ( es decir , a nivel de familia o género en lugar de especie) que usted puede querer o no. tblastx
también es mucho más lento que blastn
.
--force_blast_realign
: Alternar. Si se establece, MetaPhase ignorará y sobrescribirá cualquier archivo en caché que describa alineaciones BLAST.
-b
: alternar. Aplicar arranque estadístico a la matriz de enlaces. En otras palabras, una vez creada la matriz de enlaces Hi-C (y antes de que se normalice), vuelva a muestrear la matriz con reemplazo, creando una nueva matriz con el mismo número total de enlaces pero con una variación aleatoria en la ubicación exacta de los enlaces. Si desea probar la solidez de su resultado de agrupación, ejecute MetaPhase con -b
varias veces y compare los resultados, que deberían ser estocásticamente diferentes.
--isolated_component_size <integer>
: después de crear el gráfico de conectividad contig a partir de la matriz de enlaces, descarte cualquier componente en el gráfico con menos de este número de contigs. En la mayoría de los conjuntos de datos, dichos componentes consisten en ruido que no se puede ubicar de manera confiable en ninguna especie y, debido a que estos componentes nunca se pueden combinar con otros componentes, pueden alterar el número aparente de grupos. Sin embargo, si los datos de su enlace Hi-C son escasos, es posible que deba reducirlos para evitar desechar clústeres reales. Predeterminado: 100
.
--jarvis_patrick_K <integer>
: el valor de K utilizado en el paso previo al agrupamiento de Jarvis-Patrick. Los valores más altos aumentan el tiempo de ejecución pero pueden aumentar la precisión. Para comprender este número en detalle, consulte Jarvis y Patrick, "Agrupación mediante una medida de similitud basada en vecinos cercanos compartidos", 1973. Valor predeterminado: 100
.
--min_cluster_norm <integer>
: la norma mínima de un clúster permitido. La "norma" de un contig es el número de sitios de enzimas de restricción (RE) que contiene, y la norma de un grupo es la suma de las normas de sus contigs. Este parámetro puede tener un gran efecto en el resultado: aumentar min_cluster_norm
aumentará el tamaño mínimo posible de un grupo, destruyendo potencialmente grupos que representan especies pequeñas; pero también evita la formación de pequeños y molestos minigrupos que contienen sólo un pequeño número de contigs (2-3) que a menudo resultan del ruido en los datos y/o de contigs repetitivos. Si obtiene un grupo enorme con la mayoría de sus contigs y todos los demás grupos son pequeños, debe aumentarlo. Tenga en cuenta que la norma de un grupo es aproximadamente igual a su longitud en pb dividida por la frecuencia del sitio de RE, por lo que el número óptimo puede ser diferente para diferentes tipos de RE. Predeterminado: 25
.
-merge
: alternar. Aplique algunos algoritmos de agrupamiento experimentales para fusionar múltiples agrupamientos independientes que surjan de diferentes bibliotecas Hi-C. No recomendado.
--load_cached_clusters
: Alternar. Si se establece, en lugar de realizar la agrupación en clústeres, MetaPhase buscará un archivo en caché en <out_dir>/<scenario>.cached_data
que contenga los resultados de la agrupación en clústeres calculados previamente. Este archivo existirá si MetaPhase se ha ejecutado anteriormente en este escenario con el mismo valor de -N
que ahora y sin el indicador --dont_output_cache
. Esta es una forma de ahorrar tiempo si desea analizar los resultados del clustering sin volver a ejecutarlo.
--dont_output_cache
: Alternar. No cree (ni sobrescriba) un archivo de caché de clúster que pueda cargarse más tarde con --load_cached_clusters
. Esta opción es anulada por --load_cached_clusters
.
--report_unclustered
: Alternar. Si se establece, MetaPhase produce un informe final sobre los contigs que no agruparon: con qué especies se alinean, cuántos de ellos no están agrupados porque están completamente desvinculados, etc.
--output_cluster_fastas
: Alternar. Si está configurado, escriba los archivos cluster.*.fasta
y unclustered.fasta
en <out_dir>/<scenario>/
. Estos son archivos fasta que indican cómo MetaPhase ha agrupado los contigs.
--output_network_image
: Alternar. Si está configurado, ejecute el script Fig2a.R
y cree una imagen de red de clúster como la que aparece en la Figura 2A del documento MetaPhase.
--output_heatmaps
: Alternar. Si está configurado, ejecute el script MakeClusteringResultHeatmap.R
y cree imágenes de mapas de calor como las que aparecen en la Figura 2B y la Figura S5 del documento MetaPhase.
--reorder_clusters_by_refs
: Alternar. Si está configurado, reordena los grupos para maximizar la señal en las diagonales de los mapas de calor creados con --output_heatmaps
. Tenga en cuenta que esto dependerá de qué genomas de referencia se encuentren en su archivo refs.tsv
y del orden en que aparecen en el archivo. Si desea tener números de clúster consistentes, no configure esto.
La salida más básica de MetaPhase es la pantalla. MetaPhase brindará informes detallados sobre su progreso a medida que realiza el preprocesamiento, las alineaciones BLAST, la agrupación y el análisis posterior a la agrupación. Suponiendo que no falla, MetaPhase produce un gráfico práctico y agradable de sus resultados de agrupación. Las columnas de este gráfico son:
Número de grupo
Número de contigs en este grupo
Longitud total de todos los contigs en este grupo
Abundancia: una estimación de la abundancia de ADN (no de la abundancia de especies) de este grupo. Definido como el porcentaje de lecturas de escopeta que se alinean con los contigs en este grupo. Requiere un archivo SAM/BAM de abundancia de escopeta, que actualmente requiere piratería.
Referencia de pluralidad: el conjunto del genoma de referencia (entre los enumerados en el archivo refs.tsv
) con el que se alinea una pluralidad de la secuencia.
%eucariota, %ADNr, %ARNt, %ADNmt: anotaciones previstas del contenido de secuencia en este grupo. Basado en alineaciones BLAST con la base de datos BLAST.
Taxonomía de pluralidad: las ubicaciones taxonómicas más comunes del contenido de la secuencia en este grupo. Basado en alineaciones BLAST con la base de datos BLAST.
Si configura --report_unclustered
, MetaPhase también creará un gráfico mucho más pequeño y simple que describe los contigs no agrupados.
Puede crear imágenes bonitas como las de las Figuras 2A y 2B del artículo de MetaPhase. Para crear la imagen de red o el mapa de calor, configure --output_network_image
o --output_heatmap
, respectivamente. Los archivos son creados por los scripts Fig2a.R
y MakeClusteringResultHeatmap.R
, respectivamente. Estos son scripts R bastante sencillos que utilizan ggplot2; Si desea modificar la apariencia de las imágenes, simplemente modifique los guiones. Estos archivos, de forma predeterminada, se crean en $HOME/public_html
; es posible que necesite crear este directorio para que aparezcan los archivos.
MetaPhase creará los siguientes archivos en <out_dir>/<scenario>
:
assembly.blastn_report
: Un archivo legible por humanos que resume convenientemente las alineaciones BLAST del borrador del ensamblaje con la base de datos nt.
result.human_readable.txt
: un archivo legible por humanos que enumera cada contig en el borrador del ensamblaje del metagenoma e indica cómo se ha agrupado.
cluster.*.fasta
y unclustered.fasta
: archivos Fasta que contienen los contigs en cada clúster. Creado solo si ejecuta --output_cluster_fastas
.
Subdirectorio cached_data
: contiene archivos de caché que describen alineaciones BLAST con genomas de referencia (MapToRefs.txt*); Alineaciones BLAST con la base de datos nt (ensamblaje. _blast); y resultados de agrupación (clusters ). Es posible que estos archivos no sean particularmente legibles para humanos.
Subdirectorio LACHESIS
: Vacío a menos que ejecute Lachesis después de ejecutar MetaPhase (consulte la siguiente sección).
Como se demuestra en el artículo de MetaPhase, es posible ejecutar MetaPhase para crear grupos separados para cada especie y luego ejecutar LACHESIS para crear estructuras a escala cromosómica de los contigs en ese grupo, generando así un ensamblaje de una sola especie de alta calidad a partir de la nada. sino datos metagenómicos. Sin embargo, se aplican varias advertencias:
Es probable que esto sólo funcione para eucariotas, porque el método de LACHESIS no se aplica realmente a los genomas procarióticos.
Tendrá que saber el número de cromosomas de su especie, porque LACHESIS no puede predecir los números de cromosomas con tanta precisión como MetaPhase puede predecir los números de especies.
Tendrá que realinear sus lecturas de Hi-C con los contigs del grupo que está estudiando.
En las especies de levadura, tenga cuidado de no agrupar todos los cóntigos que contienen centrómeros en un solo cromosoma. Tendrá que utilizar la opción CLUSTER_CONTIGS_WITH_CENS
de LACHESIS.
Debería haber un archivo ejecutable llamado MetaPhase
. Escriba MetaPhase
en la línea de comando. Si recibe un error como "comando no encontrado", entonces no se encuentra en el directorio MetaPhase correcto o no ha completado correctamente la compilación. Si MetaPhase está listo para ejecutarse, escribir MetaPhase
producirá un PARSE ERROR
y MetaPhase le describirá los argumentos de la línea de comandos que necesita.
Si recibe el siguiente error: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
, entonces deberá agregar el directorio que contiene libboost_filesystem.so.1.47.0
a su variable de entorno $LD_LIBRARY_PATH
. Escriba este comando: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
Si MetaPhase falla, lo primero que debe hacer es observar detenidamente su resultado. Podría brindarle una explicación detallada de lo que salió mal y brindarle una buena idea de cómo solucionarlo. El problema más común es que uno de los archivos de entrada no se pudo encontrar o contiene datos sin sentido.
También puede recibir un "error de aserción", que se ve así: Assertion ... failed.
Eso significa que en alguna etapa del algoritmo, MetaPhase encontró algo específico que no esperaba. Un error de aserción vendrá con una referencia al archivo ( *.cc
o *.h
) y el número de línea donde ocurrió el error. Intente mirar esa línea en el archivo, que debería contener la función assert()
. Debería haber algunos comentarios alrededor de esa línea que expliquen qué podría estar causando el error de afirmación.
En general, hemos hecho un gran esfuerzo para hacer de MetaPhase un fragmento de código bien diseñado y bien comentado. Si está familiarizado con C++, debería poder husmear en el código fuente y tener una idea de lo que está pasando. Recomendamos comenzar con el módulo de nivel superior, MetaPhase.cc
, y trabajar desde allí.
Una vez que haya logrado que MetaPhase se ejecute correctamente, observe detenidamente los resultados, especialmente el gráfico del informe. Si obtiene un resultado extraño (por ejemplo, se está ensamblando muy poca secuencia o la mayor parte de la secuencia está agrupada en un solo grupo (un problema común), es posible que necesite ajustar el rendimiento de MetaPhase. Observe detenidamente la sección D2, "Argumentos opcionales de la línea de comandos".
El paquete de software MetaPhase y todo el software y la documentación que contiene tienen copyright © 2013-2014 de Josh Burton y la Universidad de Washington. Todos los derechos están reservados.
Este software se suministra "tal cual" sin ninguna garantía ni garantía de soporte. La Universidad de Washington no es responsable de su uso, mal uso o funcionalidad. En ningún caso los autores o titulares de derechos de autor serán responsables de ningún reclamo, daño u otra responsabilidad que surja de, fuera de o en conexión con este software.
Gracias a Ivan Liachko por hacer posible el proyecto MetaPhase y por generar todos los datos Hi-C utilizados por el software MetaPhase.
Gracias a Maitreya Dunham y Jay Shendure por su liderazgo, gestión e ideas.
Gracias a Kathryn Bushley, David Fredricks, Steve Salipante, Laura Sycuro y Andrew Wiser por ayudarme pacientemente a probar y solucionar problemas de MetaPhase.
Gracias a Aaron McKenna por ayudar a que MetaPhase esté disponible en GitHub.
(de Andrew) está brindando a los usuarios una instalación BOOST nueva y limitada que tal vez no quieran interactuar con el resto de su sistema al agregarla a su LD_LIBRARY_PATH. Mi sugerencia sería recomendar al usuario que agregue el directorio include/boost_1_47_0/stage/lib a su LD_LIBRARY_PATH si es posible, pero también proporcionar un script contenedor que establecerá la variable ambiental en tiempo de ejecución. Un programa Python que verifique si la ruta correcta está en el usuario LD_LIBRARY_PATH, la configura si no la encuentra y luego ejecuta el programa sería realmente fácil de preparar rápidamente.