MetaPhase : Un outil logiciel pour la déconvolution métagénomique avec Hi-C.
Créé par Josh Burton ( jnburton at uw.edu
) au Département des sciences du génome de l'Université de Washington, Seattle, WA, États-Unis
Publication dans G3 : Gènes | Génomes | La génétique (veuillez citer) est ici : http://dx.doi.org/10.1534/g3.114.011825
Qu’est-ce que MetaPhase et pourquoi est-ce que je m’en soucie ?
De quoi ai-je besoin pour utiliser MetaPhase ?
Configuration système requise
Téléchargement du package MetaPhase
Compilation du package MetaPhase
Procédure pas à pas : essayez MetaPhase sur un exemple d'ensemble de données
Liste des fichiers d'entrée
Création du projet d'assemblage du métagénome
Alignement des lectures Hi-C sur le projet d'assemblage du métagénome
Fournir des génomes de référence
Création de fichiers TSV
Arguments de ligne de commande requis
Arguments de ligne de commande facultatifs
Arguments de ligne de commande de sortie (toutes les options facultatives)
Graphiques
Images
Fichiers dans le répertoire de sortie
Exécution de LACHESIS
MetaPhase ne fonctionnera pas !
MetaPhase plante !
MetaPhase produit un résultat étrange !
MetaPhase est un outil logiciel permettant d'effectuer une déconvolution métagénomique. Autrement dit, il introduit un assemblage de métagénome – un assemblage créé à partir d’un échantillon génomique mixte, généralement composé de nombreuses espèces microbiennes différentes – et détermine quels contigs de cet assemblage appartiennent ensemble dans les mêmes génomes. Un assemblage de métagénome ne contient pas les génomes complets d’une espèce dans l’échantillon mixte, mais l’assemblage déconvolué peut contenir des génomes presque complets de nombreuses espèces individuelles. MetaPhase s'appuie sur les données générées par Hi-C, une technique moléculaire établie pour étudier la conformation de la chromatine (article).
Vous souhaitez utiliser MetaPhase si vous étudiez une communauté microbienne et souhaitez connaître les génomes d’espèces microbiennes individuelles. MetaPhase fonctionne bien sur des communautés assez complexes et peut tout aussi bien étudier les eucaryotes et les procaryotes. MetaPhase ne peut pas déconvoluer des souches étroitement apparentées de la même espèce ; cela regroupera toutes ces souches dans un seul cluster. MetaPhase n'a pas été testé sur des communautés comptant des milliers d'espèces, comme le microbiome intestinal humain, et ne peut pas non plus détecter de manière fiable des espèces dont l'abondance est bien inférieure à 1 %. (Notez que la limitation ici réside dans l'incapacité du logiciel standard d'assemblage de métagénome de novo à générer un projet d'assemblage de métagénome contenant des contigs d'espèces rares, plutôt que dans la capacité de MetaPhase à déconvoluer ces contigs.)
Vous ne souhaitez pas utiliser MetaPhase si vous étudiez la variation des souches au sein d'une seule espèce. Ou si vous étudiez les réarrangements génomiques dans les génomes du cancer humain. Vous ne souhaitez pas non plus utiliser MetaPhase, sauf si vous disposez d'un ensemble de données métagénomiques Hi-C ou si vous êtes prêt à en créer un ; Hi-C n’est pas une technique triviale à apprendre. La déconvolution métagénomique purement informatique (plutôt que moléculaire) est difficile, mais pas impossible : voir les articles cités dans l'introduction de l'article MetaPhase.
À un niveau élevé, vous n'avez besoin que de deux choses pour exécuter MetaPhase :
Un projet d'assemblage de métagénome de novo . Cela peut être créé à partir d'une bibliothèque de séquençage de métagénome de fusil de chasse par un certain nombre d'outils d'assemblage, tels que Velvet, IDBA-UD, ABySS ou SPAdes.
Une bibliothèque de séquençage Hi-C créée à partir d'un échantillon de métagénome - de préférence le même échantillon que celui utilisé pour créer l'assemblage de métagénome de novo , ou un échantillon très similaire.
À un niveau bas, MetaPhase nécessite plusieurs fichiers d'entrée différents, ainsi que quelques entrées facultatives. Pour plus de détails sur les fichiers d'entrée, voir la section C1, "Liste des fichiers d'entrée".
Pour configurer et exécuter MetaPhase, vous aurez besoin d'un ordinateur fonctionnant dans un environnement UNIX avec au moins 16 Go de mémoire, avec les logiciels suivants installés :
gcc, le compilateur C++ (http://gcc.gnu.org/)
La bibliothèque de compression zlib (http://www.zlib.net/)
Vous aurez peut-être également besoin des logiciels suivants :
L'aligneur à lecture courte BWA (http://bio-bwa.sourceforge.net/) ou un autre aligneur de ce type
L'aligneur BLAST sous forme de ligne de commande (http://www.ncbi.nlm.nih.gov/books/NBK1763/), comprenant les commandes blastn
, tblastx
et makeblastdb
Le logiciel bmtagger pour supprimer les lectures humaines des ensembles de données métagénomiques (http://biowulf.nih.gov/apps/bmtagger.html)
MetaPhase nécessite également les bibliothèques boost C++ (http://www.boost.org/) et la boîte à outils SAMtools (http://samtools.sourceforge.net/), mais celles-ci sont incluses dans le package d'installation de MetaPhase.
Téléchargez le package MetaPhase depuis https://github.com/shendurelab/MetaPhase/archive/master.zip dans un système de fichiers UNIX. Si vous téléchargez l'archive tar ( MetaPhase.tar.gz
), décompressez-la à l'aide des commandes UNIX suivantes :
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
À partir de maintenant, je fais référence au répertoire principal MetaPhase comme <MetaPhase>
.
Pour compiler MetaPhase, tapez simplement make
dans le répertoire <MetaPhase>
. Pour exécuter MetaPhase, vous devrez peut-être également ajouter <MetaPhase>/include/boost_1_47_0/stage/lib
à votre $LD_LIBRARY_PATH
(pour éviter un problème : cannot open shared object file...
.). Enfin, assurez-vous d'exécuter soit MetaPhase depuis le répertoire <MetaPhase>
ou ajoutez ce répertoire à votre $PATH
. Ceci est important car certains modules MetaPhase doivent accéder aux scripts exécutables FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
et MakeClusteringResultHeatmap.R
, qui sont inclus dans le package MetaPhase.
Le package MetaPhase comprend un petit scénario de test que vous pouvez exécuter pour avoir une idée du fonctionnement de MetaPhase. Il est contenu dans le répertoire test_case
, qui contient les sous-répertoires suivants :
<MetaPhase>/test_case/assembly/
: Contient un brouillon d'assemblage de métagénome de novo , assembly.fasta
. Cet assemblage est constitué des 20 contigs prélevés sur un assemblage beaucoup plus important d'un échantillon de vaginose bactérienne. Il sert ici d’exemple jouet d’assemblage de métagénome.
<MetaPhase>/test_case/HiC/
: Contient 2 fichiers fastq, BV.H3.head.bmt.1.fq et BV.H3.head.bmt.2.fq. Ces lectures constituent un sous-ensemble d’un ensemble de données Hi-C beaucoup plus vaste séquencé à partir d’un échantillon de vaginose bactérienne. Ils ont déjà été filtrés avec bmtagger pour supprimer les lectures humaines.
<MetaPhase>/test_case/refs/
: Contient un génome de référence accessible au public, LI.fasta
, pour la bactérie Lactobacillus iners . Il s'agit d'une entrée facultative que MetaPhase utilisera pour voir si ses clusters correspondent au génome de L. iners .
<MetaPhase>/test_case/tsvs/
: Contient deux fichiers TSV qui décrivent l'emplacement d'autres fichiers d'entrée et sont utilisés par MetaPhase.
<MetaPhase>/test_case/out/
: Ce répertoire n'existe pas initialement. Lorsque MetaPhase s'exécutera sur le scénario de test, il créera ce répertoire et placera sa sortie ici.
La seule entrée (facultative) manquante dans test_case est une base de données BLAST de séquences nucléotidiques. Cette base de données, qui vous permet d'interroger les contigs de l'assemblage du métagénome sur toutes les séquences connues, est beaucoup trop volumineuse pour un package de test mais peut être téléchargée depuis le site Web de BLAST. Pour utiliser cette base de données, vous devrez définir l'argument de ligne de commande --blast_dir
.
Pour appliquer MetaPhase au test_case, exécutez les commandes suivantes :
Préparez le projet d’assemblage du métagénome de novo pour l’alignement avec bwa. Notez que bwa
doit être dans votre $PATH
. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Alignez les lectures Hi-C sur le projet d'assemblage. Cela utilise align.sh
, un script déjà fourni, qui exécute bwa aln
et bwa sampe
, et crée un fichier BAM que MetaPhase utilisera. Notez que vous devez utiliser bwa aln
et bwa sampe
, et non bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
Examinez les fichiers TSV pour vous assurer que vous comprenez ce qu'ils font. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
Maintenant, exécutez le scénario de test MetaPhase avec un ensemble de base d'arguments de ligne de commande. Les objectifs de tous ces arguments de ligne de commande sont expliqués ci-dessous dans la section D, « Exécution 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
La première chose que MetaPhase fera est d'aligner les contigs du projet d'assemblage sur le génome de référence LI.fasta. Cela peut prendre plusieurs minutes, mais il s'agit d'une attente unique : les résultats seront mis en cache dans un fichier spécial. Ensuite, MetaPhase regroupera les 20 contigs du projet d'assemblage par leurs liaisons Hi-C, créant 3 clusters (à cause de -N 3
.) Enfin, MetaPhase rapportera des statistiques de base sur les clusters qu'elle a créés.
Essayez maintenant d'exécuter à nouveau MetaPhase, en ajoutant un ou plusieurs des arguments de ligne de commande suivants : --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
. Chacune de ces options entraînera la sortie de plus d'informations sous diverses formes : soit à l'écran, soit dans des fichiers, soit sous forme d'images. Voir la section D2, « Arguments de ligne de commande facultatifs » pour plus d'informations.
Regardez maintenant dans test_case/out/test_case
. Il s'agit du répertoire de sortie créé par votre exécution MetaPhase. Il contient plusieurs fichiers de sortie. Les fichiers cluster.*.fasta
sont vos fastas de cluster (ils n'existent que si vous avez exécuté avec --output_cluster_fastas
.) Le sous-répertoire cached_data
contient des fichiers de données mis en cache , qui incluent les résultats des exécutions BLAST et des clusterings MetaPhase.
Notez que test_case est un très petit ensemble de données et que ses résultats ne sont ni biologiquement utiles ni typiques. Par exemple, il y a si peu de paires de lecture Hi-C que 10 des 20 contigs sont complètement dissociés, et ceux qui sont liés sont dans trois clusters distincts (il est donc impossible de produire moins de 3 clusters.) Cela nous empêche d'illustrer un autre cluster utile. fonctionnalité de MetaPhase, c'est-à-dire que nous pouvons l'utiliser pour prédire le nombre de clusters. Sur votre échantillon (mais, hélas, pas sur le test_case), vous pouvez exécuter MetaPhase avec -N 1
et cela générera une courbe d'enrichissement E(N) , tout comme celle de la figure S4 de l'article MetaPhase. Cela vous permettra de déterminer le nombre approximatif d’espèces dans votre assemblage métagénome, et donc le nombre optimal de clusters.
MetaPhase utilise directement les fichiers d'entrée suivants. Pour une illustration de ce à quoi ressemblent tous ces fichiers, consultez le fichier test_case.
Fichiers requis :
Un projet d'assemblage du métagénome, au format fasta
Un ou plusieurs fichiers SAM/BAM décrivant les alignements de lectures Hi-C sur un projet d'assemblage de métagénome. Notez que chaque lecture de ces fichiers SAM/BAM doit être répertoriée une seule fois, ce qui signifie qu'ils doivent être générés avec bwa aln et bwa sampe, PAS bwa mem.
Deux fichiers TSV, <scenario>.HiC_libs.tsv
et <scenario>.refs.tsv
, qui décrivent respectivement l'ensemble des fichiers d'entrée BAM et l'ensemble des génomes de référence. Fichiers facultatifs :
Une base de données BLAST décrivant toutes les séquences connues de nucléotides ( nt
) et/ou protéiques ( nr
). Une version mise à jour de cette base de données peut être téléchargée à partir du site Web BLAST, qui contient également des instructions sur la façon d'installer les utilitaires de ligne de commande blastn
et tblastx
dont vous aurez besoin. Notez que ces bases de données sont volumineuses (en 2015, nt
est d'environ 25 Go et nr
est d'environ 50 Go.)
Un ensemble de génomes de référence au format fasta, décrivant les espèces que vous pensez être dans votre échantillon, ou liées à des éléments de votre échantillon. Si vous ne savez pas tout de votre échantillon (et ce n'est probablement pas le cas), vous pouvez attendre d'avoir déjà aligné votre assemblage de métagénome avec une recherche BLAST, puis prendre les suggestions de ces résultats de recherche. Pour trouver un assemblage génomique de référence pour une espèce, effectuez une recherche dans la base de données NCBI Assembly.
Un fichier SAM/BAM décrivant les alignements des lectures de fusil de chasse sur un projet d'assemblage de métagénome. Les lectures de fusil de chasse sont les mêmes que celles utilisées pour créer l’assemblage. MetaPhase peut utiliser ce fichier pour estimer l'abondance dans votre échantillon de chaque contig, et donc de chaque cluster. Actuellement non disponible sans pirater un peu MetaPhase.cc (désolé.)
L’une des contributions les plus importantes à MetaPhase est le projet d’assemblage du métagénome de novo . Vous devez créer cet assemblage vous-même à l’aide de lectures instantanées à partir de votre échantillon. Il existe de nombreux outils d'assemblage de métagénome de novo accessibles au public qui fonctionnent assez bien, notamment Velvet, IDBA-UD, ABySS et SPAdes. J'ai utilisé IDBA-UD lors du développement de MetaPhase.
Il est important de réaliser que MetaPhase ne produit aucune nouvelle séquence ; il regroupe uniquement la séquence déjà présente dans l'assembly. Si une séquence de votre échantillon ne parvient pas à figurer dans le projet d'assemblage - parce qu'elle est trop rare, trop déséquilibrée en GC, trop répétitive ou pour toute autre raison - alors MetaPhase ne peut pas la regrouper dans un génome. Cela peut valoir la peine d'essayer de nombreuses options différentes dans votre assembleur de métagénome, ou de nombreux outils d'assemblage de métagénome différents, afin d'obtenir un assemblage avec la plus grande quantité de séquence et le contig N50 le plus long.
MetaPhase fonctionne bien mieux lorsque ses contigs d'entrée sont plus longs, car il dispose d'un signal plus clair de liaison Hi-C à utiliser. En particulier, MetaPhase ne peut pas regrouper un contig qui ne contient aucun site d'enzyme de restriction , car une lecture Hi-C ne peut pas s'y aligner de manière fiable. Gardez ce fait à l’esprit lorsque vous choisissez l’enzyme de restriction à utiliser pour votre expérience Hi-C. Si votre assemblage de métagénome possède un petit N50, vous souhaiterez peut-être utiliser une enzyme de restriction à 4 couteaux au lieu d'un enzyme à 6 couteaux. (Par exemple, si votre assemblage de métagénome a un N50 de seulement 4 Ko, alors une bibliothèque Hi-C réalisée avec un 6-cutter - qui coupe environ tous les 4 Ko - sera totalement incapable de regrouper 50 % de la séquence de l'assemblage.)
En plus de l'assemblage du métagénome lui-même, MetaPhase saisit un alignement des lectures Hi-C sur l'assemblage du métagénome. Ce fichier doit être au format SAM ou BAM, et il doit contenir chaque Hi-C lu une seule fois. Vous pouvez utiliser n'importe quel aligneur qui produit des fichiers SAM/BAM ; J'ai utilisé bwa lors du développement de MetaPhas ; si vous utilisez bwa, assurez-vous d'utiliser bwa aln et bwa sampe, et non bwa mem, qui génère chaque lecture plusieurs fois !)
Les lectures Hi-C sont uniques : elles sont délibérément chimériques, avec un site de ligature chimérique dont la séquence est connue de l'enzyme de restriction (par exemple, HindIII coupe au niveau de l'AAGCTT et produit AAGCTAGCTT lors de la re-ligature.) Pour cette raison, une approche d'alignement simple sera manque de nombreux appariements Hi-C utiles. Vous souhaiterez peut-être concevoir un pipeline d'alignement personnalisé pour maximiser votre rendement ; si tel est le cas, jetez un œil au script align.iter.interactive.sh
, que j'ai utilisé dans mon propre développement et qui peut vous donner des idées pour votre pipeline personnalisé.
Fournir des génomes de référence à MetaPhase est entièrement facultatif, mais très utile. MetaPhase peut aligner les contigs du projet d'assemblage afin d'avoir une idée de l'espèce dont ils sont susceptibles de provenir. Il existe deux manières de procéder : s'aligner sur une base de données BLAST contenant toutes les séquences connues ; et alignement sur un fichier fasta local contenant un seul assemblage de génome de référence. La première méthode est utile pour explorer la question de savoir quels taxons composent votre échantillon ; cette dernière méthode est utile pour se concentrer sur des espèces individuelles que vous savez être dans votre échantillon (ou liées à des éléments de votre échantillon) et pour créer la carte thermique et les images du réseau de clusters (voir section E2, « Images »). Vous pouvez commencer avec un alignement BLAST uniquement, puis utiliser les résultats obtenus à partir de là pour déterminer les espèces que vous êtes susceptible de rencontrer, puis télécharger ces références et les introduire dans MetaPhase. La liste des assemblages du génome de référence est fournie à MetaPhase dans le fichier <scenario>.refs.tsv
.
MetaPhase effectuera tous les alignements avec la base de données BLAST et avec les génomes de référence. MetaPhase peut appeler les commandes BLAST blastn
, tblastx
et makeblastdb
, qui font toutes partie du package de code de ligne de commande BLAST ; assurez-vous que ces commandes sont dans votre $PATH
. Notez que BLAST peut utiliser beaucoup de temps d'exécution, surtout si vous définissez --use-tblastx
. Cependant, MetaPhase met en cache les résultats des exécutions BLAST dans <out_dir>/cached_data
afin de sauvegarder le temps d'exécution ultérieurement.
MetaPhase nécessite deux fichiers d'entrée TSV (valeurs séparées par des tabulations) : un pour lui donner l'ensemble des fichiers d'alignement SAM/BAM et un pour lui donner l'ensemble des assemblages du génome de référence. Ces fichiers sont petits et vous souhaiterez les créer à la main, notamment parce qu'ils pourraient nécessiter une modification manuelle ultérieurement. Le plus simple est de suivre l'exemple des fichiers TSV dans test_case/tsvs
.
Pour obtenir un résumé rapide de tous les arguments de ligne de commande de MetaPhase, exécutez MetaPhase -help
. Une explication plus détaillée est ici.
-s
<string>
: Nom du scénario. Ceci est utilisé par MetaPhase pour nommer votre course. Il est utilisé comme début du nom des fichiers tsv (voir -i
ci-dessous) et également comme nom du répertoire de sortie (voir -o
ci-dessous). Enfin, vous pouvez l'ignorer, mais certains noms de scénarios ont des options de ligne de commande câblées que j'ai utilisées en développement (c'est, par exemple, pourquoi -a
n'est pas répertorié comme argument "obligatoire" dans MetaPhase -help
commande MetaPhase -help
.)
-a
<string>
: L'emplacement du projet de fichier fasta de l'assemblage du métagénome de novo . Il doit s'agir d'un chemin absolu et non relatif - c'est-à-dire qu'il doit commencer par /
.
-N
<integer>
: Le nombre de clusters à créer. Si vous définissez sur 1, MetaPhase regroupera tout dans un seul cluster et calculera E(N), l'enrichissement des liens intra-cluster, en cours de route, puis écrira un fichier enrichment_curve.jpg
qui pourra vous donner une estimation du nombre de espèces dans votre échantillon. Ne définissez pas sur 0 ou sur un nombre supérieur au nombre de contigs.
Certains de ces arguments incluent $HOME
dans leurs valeurs par défaut. Il s'agit de votre répertoire personnel UNIX (l'endroit où vous allez lorsque vous tapez cd ~
ou cd $HOME
.)
-i
<string>
: Répertoire d'entrée. Il s'agit du répertoire contenant les fichiers tsv, <scenario>.HiC_libs.tsv
et <scenario>.refs.tsv
. Par défaut : ./input
.
-o
<string>
: Répertoire racine de sortie. Les fichiers de sortie de cette exécution seront placés dans <out_dir>/<scenario>
. Par défaut : $HOME/MP/out
.
--blast_dir
<string>
: Répertoire contenant les bases de données BLAST ( nt.*
et nr.*
) que MetaPhase utilise pour les alignements. Vous pouvez télécharger ces fichiers depuis le site Web BLAST. Par défaut : $HOME/extern/blast
.
--refs_dir
<string>
: Répertoire contenant les assemblages du génome de référence répertoriés dans le fichier refs.tsv
. Les fichiers de sortie de cette exécution seront placés dans <out_dir>/<scenario>
. Par défaut : $HOME/MP/refs
.
--use_tblastx
: Basculer. S'il est défini, MetaPhase effectuera ses alignements BLAST en utilisant tblastx
au lieu de blastn
- qui, au lieu d'aligner les séquences nucléotidiques des contigs sur une base de données de nucléotides, traduit les nucléotides en acides aminés et les aligne sur une base de données de protéines. Parce que les séquences protéiques sont mieux conservées que les séquences nucléotidiques, tblastx
détecte des relations phylogénétiques plus lointaines - c'est-à -dire au niveau de la famille ou du genre plutôt qu'au niveau de l'espèce - que vous pouvez ou non vouloir. tblastx
est également beaucoup plus lent que blastn
.
--force_blast_realign
: Basculer. S'il est défini, MetaPhase ignorera et écrasera tous les fichiers mis en cache décrivant les alignements BLAST.
-b
: Basculer. Appliquez un bootstrap statistique à la matrice de liens. En d'autres termes, une fois la matrice de liens Hi-C créée (et avant qu'elle ne soit normalisée), rééchantillonnez la matrice avec remplacement, créant ainsi une nouvelle matrice avec le même nombre total de liens mais une variation aléatoire dans l'emplacement exact des liens. Si vous souhaitez tester la robustesse de votre résultat de clustering, exécutez MetaPhase avec -b
plusieurs fois et comparez les résultats, qui doivent être stochastiquement différents.
--isolated_component_size <integer>
: Après avoir créé le graphe de connectivité contig à partir de la matrice de liens, supprimez tout composant du graphe avec moins de ce nombre de contigs. Dans la plupart des ensembles de données, ces composants sont constitués de bruit qui ne peut être placé de manière fiable dans aucune espèce, et comme ces composants ne peuvent jamais être combinés avec d'autres composants, ils peuvent perturber le nombre apparent de clusters. Cependant, si les données de votre liaison Hi-C sont rares, vous devrez peut-être les réduire afin d'éviter de jeter de vrais clusters. Par défaut : 100
.
--jarvis_patrick_K <integer>
: La valeur de K utilisée dans l'étape de pré-clustering Jarvis-Patrick. Des valeurs plus élevées augmentent la durée d'exécution mais peuvent augmenter la précision. Pour comprendre ce nombre en détail, consultez Jarvis et Patrick, "Clustering Using a Similarity Measure Based on Shared Near Neighbours", 1973. Valeur par défaut : 100
.
--min_cluster_norm <integer>
: La norme minimale d'un cluster autorisé. La « norme » d'un contig est le nombre de sites d'enzymes de restriction (RE) qu'il contient, et la norme d'un cluster est la somme des normes de ses contigs. Ce paramètre peut avoir un effet important sur le résultat : augmenter min_cluster_norm
augmentera la taille minimale possible d'un cluster, détruisant potentiellement les clusters qui représentent de petites espèces ; mais cela évite également la formation de petits mini-clusters gênants ne contenant qu'un petit nombre de contigs (2-3) qui résultent souvent du bruit dans les données et/ou de contigs répétitifs. Si vous obtenez un énorme cluster avec la plupart de vos contigs et que tous les autres clusters sont minuscules, vous devez l'augmenter. Gardez à l’esprit que la norme d’un cluster est à peu près égale à sa longueur en pb divisée par la fréquence du site RE, de sorte que le nombre optimal peut être différent pour différents types de RE. Par défaut : 25
.
-merge
: basculer. Appliquez des algorithmes de clustering expérimentaux pour fusionner plusieurs clusterings indépendants issus de différentes bibliothèques Hi-C. Non recommandé.
--load_cached_clusters
: basculer. S'il est défini, au lieu d'effectuer le clustering, MetaPhase recherchera un fichier mis en cache dans <out_dir>/<scenario>.cached_data
qui contient les résultats de clustering précédemment calculés. Ce fichier existera si MetaPhase a déjà été exécuté sur ce scénario avec la même valeur de -N
que maintenant et sans l'indicateur --dont_output_cache
. C'est un moyen de gagner du temps si vous souhaitez analyser les résultats du clustering sans réexécuter le clustering.
--dont_output_cache
: basculer. Ne créez pas (ni n'écrasez) un fichier de cache de cluster qui pourra être chargé ultérieurement avec --load_cached_clusters
. Cette option est remplacée par --load_cached_clusters
.
--report_unclustered
: basculer. S'il est défini, MetaPhase produit un rapport final sur les contigs qu'il n'a pas regroupés : sur quelles espèces ils s'alignent, combien d'entre eux ne sont pas regroupés car ils ne sont pas du tout liés, etc.
--output_cluster_fastas
: basculer. S'il est défini, écrivez les fichiers cluster.*.fasta
et unclustered.fasta
dans <out_dir>/<scenario>/
. Ce sont des fichiers fasta qui indiquent comment MetaPhase a regroupé les contigs.
--output_network_image
: Basculer. S'il est défini, exécutez le script Fig2a.R
et créez une image réseau de cluster comme celle qui apparaît dans la figure 2A de l'article MetaPhase.
--output_heatmaps
: basculer. S'il est défini, exécutez le script MakeClusteringResultHeatmap.R
et créez des images de carte thermique comme celles qui apparaissent dans la figure 2B et la figure S5 de l'article MetaPhase.
--reorder_clusters_by_refs
: basculer. S'il est défini, réorganise les clusters afin de maximiser le signal sur les diagonales des cartes thermiques créées avec --output_heatmaps
. Notez que cela dépendra des génomes de référence qui se trouvent dans votre fichier refs.tsv
et de l'ordre dans lequel ils apparaissent dans le fichier. Si vous souhaitez avoir des numéros de cluster cohérents, ne définissez pas cette option.
La sortie la plus basique de MetaPhase est l’écran. MetaPhase fournira des rapports détaillés sur ses progrès au fur et à mesure qu'il effectuera le prétraitement, les alignements BLAST, le clustering et l'analyse post-clustering. En supposant qu'il ne plante pas, MetaPhase produit un joli graphique pratique de ses résultats de clustering. Les colonnes de ce graphique sont :
Numéro de cluster
Nombre de contigs dans ce cluster
Longueur totale de tous les contigs de ce cluster
Abondance : une estimation de l'abondance de l'ADN (et non de l'abondance de l'espèce) de ce groupe. Défini comme le pourcentage de lectures de fusil de chasse qui s’alignent sur les contigs de ce cluster. Nécessite un fichier SAM/BAM d'abondance de fusil de chasse, qui nécessite actuellement un piratage.
Référence de pluralité : l'assemblage du génome de référence (parmi ceux répertoriés dans le fichier refs.tsv
) sur lequel s'aligne une pluralité de séquences
%eucaryote, %rDNA, %tRNA, %mtDNA : annotations prédites du contenu de la séquence dans ce cluster. Basé sur les alignements BLAST avec la base de données BLAST.
Taxonomie de pluralité : emplacements taxonomiques les plus courants du contenu de la séquence dans ce cluster. Basé sur les alignements BLAST avec la base de données BLAST.
Si vous définissez --report_unclustered
, MetaPhase créera également un graphique beaucoup plus petit et plus simple décrivant les contigs non clusterisés.
Vous pouvez créer de jolies images comme celles des figures 2A et 2B du document MetaPhase. Pour créer l'image réseau ou la carte thermique, définissez respectivement --output_network_image
ou --output_heatmap
. Les fichiers sont créés respectivement par les scripts Fig2a.R
et MakeClusteringResultHeatmap.R
. Ce sont des scripts R assez simples utilisant ggplot2 ; si vous souhaitez modifier l'apparence des images, modifiez simplement les scripts. Ces fichiers, par défaut, sont créés dans $HOME/public_html
; vous devrez peut-être créer ce répertoire pour que les fichiers apparaissent.
MetaPhase créera les fichiers suivants dans <out_dir>/<scenario>
:
assembly.blastn_report
: un fichier lisible par l'homme résumant de manière pratique les alignements BLAST du projet d'assemblage sur la base de données nt.
result.human_readable.txt
: un fichier lisible par l'homme répertoriant chaque contig du projet d'assemblage du métagénome et indiquant comment il a été regroupé.
cluster.*.fasta
et unclustered.fasta
: Fichiers Fasta contenant les contigs dans chaque cluster. Créé uniquement si vous exécutez avec --output_cluster_fastas
.
Sous-répertoire cached_data
: Contient les fichiers cache décrivant les alignements BLAST sur les génomes de référence (MapToRefs.txt*) ; Alignements BLAST sur la base de données nt (assembly. _blast); et les résultats de regroupement (clusters. ). Ces fichiers peuvent ne pas être particulièrement lisibles par l'homme.
Sous-répertoire LACHESIS
: Vide sauf si vous exécutez Lachesis après avoir exécuté MetaPhase (voir section suivante).
Comme démontré dans l'article MetaPhase, il est possible d'exécuter MetaPhase pour créer des clusters séparés pour chaque espèce, puis d'exécuter LACHESIS pour créer des échafaudages à l'échelle chromosomique des contigs de ce cluster, générant ainsi un assemblage mono-espèce de haute qualité à partir de rien. mais des données métagénomiques. Cependant, plusieurs mises en garde s'appliquent :
Cela ne fonctionnera probablement que pour les eucaryotes, car la méthode de LACHESIS ne s'applique pas vraiment aux génomes procaryotes.
Vous devrez connaître le numéro de chromosome de votre espèce, car LACHESIS ne peut pas prédire le nombre de chromosomes avec autant de précision que MetaPhase peut prédire le nombre d'espèces.
Vous devrez réaligner vos lectures Hi-C sur les contigs du cluster que vous étudiez.
Chez les espèces de levure, veillez à ne pas regrouper tous les contigs contenant des centromères en un seul chromosome. Vous devrez utiliser l'option CLUSTER_CONTIGS_WITH_CENS
de LACHESIS.
Il devrait y avoir un fichier exécutable appelé MetaPhase
. Tapez MetaPhase
sur la ligne de commande. Si vous obtenez une erreur du type « commande introuvable », soit vous n'êtes pas dans le bon répertoire MetaPhase, soit vous n'avez pas terminé la compilation avec succès. Si MetaPhase est prêt à être exécuté, alors taper MetaPhase
produira une PARSE ERROR
et MetaPhase vous décrira les arguments de ligne de commande dont il a besoin.
Si vous obtenez l'erreur suivante : MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
, vous devez alors ajouter le répertoire contenant libboost_filesystem.so.1.47.0
à votre variable d'environnement $LD_LIBRARY_PATH
. Tapez cette commande : LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
Si MetaPhase plante, la première chose à faire est d’examiner attentivement sa sortie. Cela pourrait donner une explication détaillée de ce qui n’a pas fonctionné et vous donner une bonne idée sur la façon de le résoudre. Le problème le plus courant est que l'un des fichiers d'entrée est introuvable ou contient des données absurdes.
Vous pouvez également recevoir une « erreur d’assertion », qui ressemble à ceci : Assertion ... failed.
Cela signifie qu'à un moment donné de l'algorithme, MetaPhase a rencontré quelque chose de spécifique auquel il ne s'attendait pas. Une erreur d'assertion sera accompagnée d'une référence au fichier ( *.cc
ou *.h
) et du numéro de ligne où l'erreur s'est produite. Essayez de regarder cette ligne dans le fichier, qui devrait contenir la fonction assert()
. Il devrait y avoir des commentaires autour de cette ligne qui expliquent ce qui pourrait être à l'origine de l'erreur d'assertion.
En général, nous avons fait de gros efforts pour faire de MetaPhase un morceau de code bien conçu et bien commenté. Si vous êtes familier avec le C++, vous devriez pouvoir fouiller dans le code source et avoir une idée de ce qui se passe. Nous vous recommandons de commencer par le module de niveau supérieur, MetaPhase.cc
, et de travailler à partir de là.
Une fois que MetaPhase fonctionne correctement, examinez attentivement les résultats, en particulier le graphique du rapport. Si vous obtenez un résultat étrange - par exemple, très peu de séquences sont assemblées ou la majeure partie de la séquence est regroupée en un seul cluster (un problème courant) - vous devrez peut-être ajuster les performances de MetaPhase. Jetez un œil attentif à la section D2, « Arguments de ligne de commande facultatifs ».
Le progiciel MetaPhase ainsi que tous les logiciels et la documentation qu'il contient sont protégés par copyright © 2013-2014 par Josh Burton et l'Université de Washington. Tous les droits sont réservés.
Ce logiciel est fourni « tel quel », sans aucune garantie ni garantie de support. L'Université de Washington n'est pas responsable de son utilisation, de sa mauvaise utilisation ou de sa fonctionnalité. En aucun cas, les auteurs ou détenteurs de droits d'auteur ne pourront être tenus responsables de toute réclamation, dommage ou autre responsabilité découlant de, hors ou en relation avec ce logiciel.
Merci à Ivan Liachko d'avoir rendu le projet MetaPhase possible et d'avoir généré toutes les données Hi-C utilisées par le logiciel MetaPhase.
Merci à Maitreya Dunham et Jay Shendure pour leur leadership, leur gestion et leurs idées.
Merci à Kathryn Bushley, David Fredricks, Steve Salipante, Laura Sycuro et Andrew Wiser de m'avoir patiemment aidé à tester et à dépanner MetaPhase.
Merci à Aaron McKenna d'avoir contribué à rendre MetaPhase disponible sur GitHub.
(d'Andrew) vous offrez aux utilisateurs une nouvelle installation BOOST limitée qu'ils ne voudront peut-être pas interagir avec le reste de leur système en l'ajoutant à leur LD_LIBRARY_PATH. Ma suggestion serait de recommander à l'utilisateur d'ajouter le répertoire include/boost_1_47_0/stage/lib à son LD_LIBRARY_PATH si possible, mais de fournir également un script wrapper qui définira la variable d'environnement au moment de l'exécution. Un programme Python qui vérifie si le chemin correct se trouve dans l'utilisateur LD_LIBRARY_PATH, le définit s'il n'est pas trouvé, puis exécute le programme serait très facile à préparer rapidement.