MetaPhase: Ein Softwaretool für die metagenomische Entfaltung mit Hi-C.
Erstellt von Josh Burton ( jnburton at uw.edu
) im Department of Genome Sciences der University of Washington, Seattle, WA, USA
Veröffentlichung in in G3: Genes | Genome | Genetik (bitte zitieren) finden Sie hier: http://dx.doi.org/10.1534/g3.114.011825
Was ist MetaPhase und warum interessiert es mich?
Was benötige ich, um MetaPhase nutzen zu können?
Systemanforderungen
Herunterladen des MetaPhase-Pakets
Kompilieren des MetaPhase-Pakets
Exemplarische Vorgehensweise: Probieren Sie MetaPhase an einem Beispieldatensatz aus
Liste der Eingabedateien
Erstellen des Entwurfs der Metagenom-Assemblierung
Ausrichten der Hi-C-Reads an der Entwurfs-Metagenom-Assemblierung
Bereitstellung von Referenzgenomen
TSV-Dateien erstellen
Erforderliche Befehlszeilenargumente
Optionale Befehlszeilenargumente
Befehlszeilenargumente ausgeben (alle optionalen Umschalter)
Diagramme
Bilder
Dateien im Ausgabeverzeichnis
LACHESIS ausführen
MetaPhase läuft nicht!
MetaPhase stürzt ab!
MetaPhase liefert ein seltsames Ergebnis!
MetaPhase ist ein Softwaretool zur Durchführung der metagenomischen Entfaltung. Das heißt, es gibt eine Metagenom-Anordnung ein – eine Ansammlung, die aus einer gemischten Genomprobe, normalerweise aus vielen verschiedenen Mikrobenarten, erstellt wurde – und bestimmt, welche Contigs in dieser Ansammlung in denselben Genomen zusammengehören. Eine Metagenom-Anordnung enthält nicht die vollständigen Genome einer einzelnen Art in der gemischten Probe, aber die entfaltete Anordnung kann nahezu vollständige Genome vieler einzelner Arten enthalten. MetaPhase stützt sich auf Daten, die mit Hi-C generiert wurden, einer etablierten molekularen Technik zur Untersuchung der Chromatinkonformation (Papier).
Sie möchten MetaPhase verwenden, wenn Sie eine mikrobielle Gemeinschaft untersuchen und die Genome einzelner mikrobieller Arten kennen möchten. MetaPhase eignet sich gut für relativ komplexe Gemeinschaften und kann Eukaryoten und Prokaryoten gleichermaßen gut untersuchen. MetaPhase kann eng verwandte Stämme derselben Art nicht entfalten; Dadurch werden alle diese Stämme in einem einzigen Cluster zusammengefasst. MetaPhase wurde weder an Gemeinschaften mit Tausenden von Arten, wie etwa dem menschlichen Darmmikrobiom, getestet, noch kann es Arten mit einer Häufigkeit deutlich unter 1 % zuverlässig erkennen. (Beachten Sie, dass die Einschränkung hier in der Unfähigkeit der standardmäßigen De-novo -Metagenom-Assemblierungssoftware liegt, einen Entwurf einer Metagenom-Assemblierung zu erstellen, die Contigs von seltenen Arten enthält, und nicht in der Fähigkeit von MetaPhase, diese Contigs zu entfalten.)
Sie möchten MetaPhase nicht verwenden, wenn Sie Stammvariationen innerhalb einer einzelnen Art untersuchen. Oder wenn Sie genomische Umlagerungen in menschlichen Krebsgenomen untersuchen. Sie möchten MetaPhase auch nicht verwenden, es sei denn, Sie verfügen über einen metagenomischen Hi-C-Datensatz oder sind bereit, einen zu erstellen; Hi-C ist keine triviale Technik zum Erlernen. Eine rein rechnerische (und nicht molekulare) metagenomische Entfaltung ist schwierig, aber nicht unmöglich: siehe die in der Einleitung zum MetaPhase-Artikel zitierten Artikel.
Auf hoher Ebene benötigen Sie nur zwei Dinge, um MetaPhase auszuführen:
„Ein Entwurf einer De-novo -Metagenom-Assemblierung“ . Dies kann aus einer Shotgun-Metagenom-Sequenzierungsbibliothek mit einer beliebigen Anzahl von Assemblierungstools wie Velvet, IDBA-UD, ABySS oder SPAdes erstellt werden.
Eine Hi-C-Sequenzierungsbibliothek, die aus einer Metagenomprobe erstellt wurde – vorzugsweise derselben Probe, die zur Erstellung der De-novo -Metagenomassemblierung verwendet wurde, oder einer sehr ähnlichen Probe.
Auf einer niedrigen Ebene erfordert MetaPhase mehrere verschiedene Eingabedateien sowie einige optionale Eingaben. Weitere Einzelheiten zu den Eingabedateien finden Sie im Abschnitt C1, „Liste der Eingabedateien“.
Um MetaPhase einzurichten und auszuführen, benötigen Sie einen Computer in einer UNIX-Umgebung mit mindestens 16 GB Arbeitsspeicher und der folgenden installierten Software:
gcc, der C++-Compiler (http://gcc.gnu.org/)
Die zlib-Komprimierungsbibliothek (http://www.zlib.net/)
Möglicherweise benötigen Sie außerdem die folgende Software:
Der Short-Read-Aligner BWA (http://bio-bwa.sourceforge.net/) oder ein anderer solcher Aligner
Der BLAST-Aligner in Befehlszeilenform (http://www.ncbi.nlm.nih.gov/books/NBK1763/), einschließlich der Befehle blastn
, tblastx
und makeblastdb
Die bmtagger-Software zum Entfernen menschlicher Lesevorgänge aus Metagenomik-Datensätzen (http://biowulf.nih.gov/apps/bmtagger.html)
MetaPhase erfordert außerdem die Boost-C++-Bibliotheken (http://www.boost.org/) und das SAMtools-Toolkit (http://samtools.sourceforge.net/), diese sind jedoch im MetaPhase-Installationspaket enthalten.
Laden Sie das MetaPhase-Paket von https://github.com/shendurelab/MetaPhase/archive/master.zip in ein UNIX-Dateisystem herunter. Wenn Sie den Tarball ( MetaPhase.tar.gz
) herunterladen, entpacken Sie ihn mit den folgenden UNIX-Befehlen:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
Von hier an bezeichne ich das Hauptverzeichnis von MetaPhase als <MetaPhase>
.
Um MetaPhase zu kompilieren, geben Sie einfach make
im Verzeichnis <MetaPhase>
ein. Um MetaPhase auszuführen, müssen Sie möglicherweise auch <MetaPhase>/include/boost_1_47_0/stage/lib
zu Ihrem $LD_LIBRARY_PATH
hinzufügen (um ein Problem zu vermeiden: cannot open shared object file...
) Stellen Sie abschließend sicher, dass beides ausgeführt wird MetaPhase aus dem Verzeichnis <MetaPhase>
oder fügen Sie dieses Verzeichnis zu Ihrem $PATH
hinzu. Dies ist wichtig, da einige MetaPhase-Module auf die ausführbaren Skripte FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
und MakeClusteringResultHeatmap.R
zugreifen müssen, die im MetaPhase-Paket enthalten sind.
Das MetaPhase-Paket enthält einen kleinen Testfall, den Sie ausführen können, um ein Gefühl dafür zu bekommen, wie MetaPhase funktioniert. Es ist im Verzeichnis test_case
enthalten, das die folgenden Unterverzeichnisse hat:
<MetaPhase>/test_case/assembly/
: Enthält einen Entwurf einer De-novo -Metagenom-Assembly, assembly.fasta
“. Diese Zusammenstellung besteht aus 20 Contigs, die aus einer viel größeren Zusammenstellung einer bakteriellen Vaginoseprobe entnommen wurden. Es dient hier als Spielzeugbeispiel für einen Metagenomaufbau.
<MetaPhase>/test_case/HiC/
: Enthält 2 Fastq-Dateien, BV.H3.head.bmt.1.fq und BV.H3.head.bmt.2.fq. Diese Messwerte sind eine Teilmenge eines viel größeren Hi-C-Datensatzes, der aus einer bakteriellen Vaginoseprobe sequenziert wurde. Sie wurden bereits mit bmtagger gefiltert, um menschliche Lesevorgänge zu entfernen.
<MetaPhase>/test_case/refs/
: Enthält ein öffentlich verfügbares Referenzgenom, LI.fasta
, für das Bakterium Lactobacillus iners . Dies ist eine optionale Eingabe, die MetaPhase verwendet, um zu sehen, ob seine Cluster mit dem L. iners -Genom übereinstimmen.
<MetaPhase>/test_case/tsvs/
: Enthält zwei TSV-Dateien, die den Speicherort anderer Eingabedateien beschreiben und von MetaPhase verwendet werden.
<MetaPhase>/test_case/out/
: Dieses Verzeichnis existiert zunächst nicht. Wenn MetaPhase für den Testfall ausgeführt wird, wird dieses Verzeichnis erstellt und seine Ausgabe hier abgelegt.
Die einzige (optionale) Eingabe, die im test_case fehlt, ist eine BLAST-Datenbank mit Nukleotidsequenzen. Diese Datenbank, mit der Sie die Contigs der Metagenom-Assembly anhand aller bekannten Sequenzen abfragen können, ist viel zu groß für ein Testpaket, kann aber von der BLAST-Website heruntergeladen werden. Um diese Datenbank verwenden zu können, müssen Sie das Befehlszeilenargument --blast_dir
festlegen.
Um MetaPhase auf test_case anzuwenden, führen Sie die folgenden Befehle aus:
Bereiten Sie den Entwurf der De-novo -Metagenomanordnung für die Ausrichtung mit BWA vor. Beachten Sie, dass bwa
in Ihrem $PATH
enthalten sein muss. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Richten Sie die Hi-C-Messwerte an der Entwurfsbaugruppe aus. Dabei wird align.sh
verwendet, ein bereits bereitgestelltes Skript, das bwa aln
und bwa sampe
ausführt und eine BAM-Datei erstellt, die von MetaPhase verwendet wird. Beachten Sie, dass Sie bwa aln
und bwa sampe
verwenden müssen, nicht bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
Untersuchen Sie die TSV-Dateien, um sicherzustellen, dass Sie verstehen, was sie tun. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
Führen Sie nun den MetaPhase-Testfall mit einem grundlegenden Satz von Befehlszeilenargumenten aus. Der Zweck all dieser Befehlszeilenargumente wird weiter unten in Abschnitt D, „Ausführen von MetaPhase“ erläutert. 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
Das erste, was MetaPhase tun wird, ist, die Contigs der Draft-Assembly mit dem Referenzgenom LI.fasta abzugleichen. Dies kann mehrere Minuten dauern, ist aber eine einmalige Wartezeit: Die Ergebnisse werden in einer speziellen Datei zwischengespeichert. Als nächstes gruppiert MetaPhase die 20 Contigs in der Entwurfsassembly anhand ihrer Hi-C-Verknüpfungen und erstellt 3 Cluster (aufgrund von -N 3
). Zuletzt meldet MetaPhase grundlegende Statistiken über die erstellten Cluster.
Versuchen Sie nun erneut, MetaPhase auszuführen, und fügen Sie dabei eines oder mehrere der folgenden Befehlszeilenargumente hinzu: --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
. Jede dieser Optionen führt dazu, dass mehr Informationen in verschiedenen Formen ausgegeben werden: entweder auf dem Bildschirm, in Dateien oder in Bildern. Weitere Informationen finden Sie in Abschnitt D2, „Optionale Befehlszeilenargumente“.
Schauen Sie nun in test_case/out/test_case
. Dies ist das Ausgabeverzeichnis, das von Ihrem MetaPhase-Lauf erstellt wurde. Es enthält mehrere Ausgabedateien. Die Dateien cluster.*.fasta
sind Ihre Cluster-Fastas (sie existieren nur, wenn Sie mit --output_cluster_fastas
ausgeführt haben). Das Unterverzeichnis cached_data
enthält zwischengespeicherte Datendateien, einschließlich der Ergebnisse von BLAST-Läufen und MetaPhase-Clusterings.
Beachten Sie, dass es sich bei test_case um einen sehr kleinen Datensatz handelt und seine Ergebnisse weder biologisch nützlich noch typisch sind. Es gibt beispielsweise so wenige Hi-C-Lesepaare, dass 10 von 20 Contigs völlig unverknüpft sind und die verknüpften Contigs sich in drei separaten Clustern befinden (es ist also unmöglich, weniger als 3 Cluster zu erzeugen). Dies hindert uns daran, einen weiteren nützlichen Beitrag zu veranschaulichen Die Besonderheit von MetaPhase besteht darin, dass wir damit die Anzahl der Cluster vorhersagen können. Auf Ihrer Probe (allerdings leider nicht auf dem Testfall) können Sie MetaPhase mit -N 1
ausführen und es wird eine E(N) -Anreicherungskurve generiert, genau wie die in Abbildung S4 des MetaPhase-Papiers. Auf diese Weise können Sie die ungefähre Anzahl der Arten in Ihrer Metagenom-Anordnung und damit die optimale Anzahl an Clustern bestimmen.
MetaPhase verwendet die folgenden Eingabedateien direkt. Eine Veranschaulichung, wie alle diese Dateien aussehen, finden Sie im test_case.
Erforderliche Dateien:
Ein Entwurf einer Metagenom-Assemblierung im Fasta-Format
Eine oder mehrere SAM/BAM-Dateien, die die Ausrichtung von Hi-C-Lesevorgängen auf einen Entwurf einer Metagenomassemblierung beschreiben. Beachten Sie, dass bei diesen SAM/BAM-Dateien jeder Lesevorgang nur einmal aufgeführt sein darf, was bedeutet, dass sie mit bwa aln und bwa sampe generiert werden müssen, NICHT mit bwa mem.
Zwei TSV-Dateien, <scenario>.HiC_libs.tsv
und <scenario>.refs.tsv
, die den Satz von BAM-Eingabedateien bzw. den Satz von Referenzgenomen beschreiben. Optionale Dateien:
Eine BLAST-Datenbank, die alle bekannten Nukleotid- ( nt
) und/oder Proteinsequenzen ( nr
) beschreibt. Eine aktualisierte Version dieser Datenbank kann von der BLAST-Website heruntergeladen werden. Dort finden Sie auch Anweisungen zur Installation der benötigten Befehlszeilendienstprogramme blastn
und tblastx
. Beachten Sie, dass diese Datenbanken groß sind (Stand 2015 beträgt nt
etwa 25 GB und nr
etwa 50 GB).
Eine Reihe von Referenzgenomen im Fasta-Format, die Arten beschreiben, von denen Sie glauben, dass sie in Ihrer Probe vorkommen oder die mit Dingen in Ihrer Probe in Zusammenhang stehen. Wenn Sie nicht alles in Ihrer Probe wissen (und wahrscheinlich auch nicht), können Sie warten, bis Sie Ihre Metagenom-Assemblierung bereits mit einer BLAST-Suche abgeglichen haben, und dann Vorschläge aus diesen Suchergebnissen übernehmen. Um eine Referenzgenomassemblierung für eine Art zu finden, durchsuchen Sie die NCBI-Assembly-Datenbank.
Eine SAM/BAM-Datei, die die Ausrichtung von Shotgun-Lesevorgängen zu einem Entwurf einer Metagenomassemblierung beschreibt. Bei den Shotgun-Lesevorgängen handelt es sich um dieselben Lesevorgänge, die zum Erstellen der Baugruppe verwendet wurden. MetaPhase kann diese Datei verwenden, um die Häufigkeit jedes Contigs und damit jedes Clusters in Ihrer Stichprobe abzuschätzen. Derzeit nicht verfügbar, ohne MetaPhase.cc ein wenig zu hacken (sorry).
Einer der wichtigsten Inputs für MetaPhase ist der Entwurf der De-novo -Metagenom-Assemblierung. Sie müssen diese Baugruppe mithilfe von Shotgun-Reads aus Ihrem Beispiel selbst erstellen. Es gibt viele öffentlich verfügbare De-novo -Metagenom-Assemblierungstools, die recht gut funktionieren, darunter Velvet, IDBA-UD, ABySS und SPAdes. Ich habe IDBA-UD bei der Entwicklung von MetaPhase verwendet.
Es ist wichtig zu wissen, dass MetaPhase keine neue Sequenz erzeugt; Es gruppiert nur Sequenzen, die bereits in der Baugruppe vorhanden sind. Wenn eine Sequenz aus Ihrer Probe es nicht in die Entwurfsassembly schafft – weil sie zu selten, zu GC-unausgeglichen, zu repetitiv oder aus einem anderen Grund ist –, kann MetaPhase sie unmöglich in einem Genom gruppieren. Es kann sich lohnen, viele verschiedene Optionen in Ihrem Metagenom-Assembler oder viele verschiedene Metagenom-Assemblierungstools auszuprobieren, um eine Assemblierung mit der größten Sequenzmenge und dem längsten Contig-N50 zu erhalten.
MetaPhase schneidet viel besser ab, wenn die Eingabe-Contigs länger sind, da ein deutlicheres Signal für die Hi-C-Verknüpfung vorhanden ist. Insbesondere kann MetaPhase kein Contig gruppieren, das keine Restriktionsenzymstellen enthält , da ein Hi-C-Read nicht zuverlässig darauf ausgerichtet werden kann. Berücksichtigen Sie diese Tatsache, wenn Sie auswählen, welches Restriktionsenzym Sie für Ihr Hi-C-Experiment verwenden möchten. Wenn Ihre Metagenomanordnung ein kleines N50 aufweist, möchten Sie möglicherweise ein Restriktionsenzym mit 4 Schneiden anstelle eines Restriktionsenzyms mit 6 Schneiden verwenden. (Wenn Ihr Metagenom-Assembly beispielsweise einen N50-Wert von nur 4 Kb hat, dann ist eine Hi-C-Bibliothek, die mit einem 6-Cutter erstellt wurde – der etwa alle 4 Kb schneidet – überhaupt nicht in der Lage, 50 % der Sequenz des Assemblys zu Clustern.)
Zusätzlich zur Metagenom-Assembly selbst gibt MetaPhase eine Ausrichtung der Hi-C-Reads in die Metagenom-Assembly ein. Diese Datei muss im SAM- oder BAM-Format vorliegen und darf jeden Hi-C-Lesevorgang nur einmal enthalten. Sie können jeden Aligner verwenden, der SAM/BAM-Dateien erstellt; Ich habe bwa bei der Entwicklung von MetaPhas verwendet; Wenn Sie BWA verwenden, stellen Sie sicher, dass Sie BWA Aln und BWA Sampe verwenden, nicht BWA Mem, das jeden Lesevorgang mehrmals ausgibt!)
Hi-C-Reads sind einzigartig: Sie sind bewusst chimär und verfügen über eine chimäre Ligationsstelle, deren Sequenz aus dem Restriktionsenzym bekannt ist (z. B. HindIII schneidet an AAGCTT und erzeugt bei erneuter Ligation AAGCTAGCTT). Aus diesem Grund ist ein einfacher Alignment-Ansatz erforderlich Ich vermisse viele nützliche Hi-C-Paarungen. Möglicherweise möchten Sie eine benutzerdefinierte Ausrichtungspipeline entwerfen, um Ihren Ertrag zu maximieren. Wenn ja, schauen Sie sich das Skript align.iter.interactive.sh
an, das ich in meiner eigenen Entwicklung verwendet habe und das Ihnen möglicherweise Ideen für Ihre benutzerdefinierte Pipeline liefert.
Die Bereitstellung von Referenzgenomen für MetaPhase ist völlig optional, aber sehr nützlich. MetaPhase kann die Contigs der Draft-Assembly ausrichten, um einen Hinweis darauf zu erhalten, von welchen Arten sie wahrscheinlich stammen. Dafür gibt es zwei Möglichkeiten: Abgleich mit einer BLAST-Datenbank, die alle bekannten Sequenzen enthält; und Ausrichtung auf eine lokale Fasta-Datei, die eine einzelne Referenzgenomassemblierung enthält. Die erstere Methode ist nützlich, um die Frage zu untersuchen, welche Taxa in Ihrer Probe enthalten sind. Die letztere Methode ist nützlich, um einzelne Arten zu ermitteln, von denen Sie wissen, dass sie in Ihrer Probe vorkommen (oder die mit Dingen in Ihrer Probe in Zusammenhang stehen) und um die Heatmap- und Cluster-Netzwerkbilder zu erstellen (siehe Abschnitt E2, „Bilder“). Sie können nur mit einem BLAST-Alignment beginnen und dann die Treffer von dort verwenden, um zu bestimmen, auf welche Arten Sie wahrscheinlich stoßen, dann diese Referenzen herunterladen und sie in MetaPhase einspeisen. Die Liste der Referenzgenomassemblys wird MetaPhase in der Datei <scenario>.refs.tsv
bereitgestellt.
MetaPhase führt alle Alignments sowohl mit der BLAST-Datenbank als auch mit den Referenzgenomen durch. MetaPhase kann die BLAST-Befehle blastn
, tblastx
und makeblastdb
aufrufen, die alle Teil des BLAST-Befehlszeilencodepakets sind. Stellen Sie sicher, dass sich diese Befehle in Ihrem $PATH
befinden. Beachten Sie, dass BLAST viel Laufzeit beanspruchen kann, insbesondere wenn Sie --use-tblastx
festlegen. Allerdings speichert MetaPhase die Ergebnisse der BLAST-Läufe in <out_dir>/cached_data
zwischen, um später Laufzeit zu sparen.
MetaPhase erfordert zwei Eingabe-TSV-Dateien (durch Tabulatoren getrennte Werte): eine für den Satz von SAM/BAM-Alignment-Dateien und eine für den Satz von Referenzgenomassemblys. Diese Dateien sind klein und Sie sollten sie von Hand erstellen, insbesondere weil sie später möglicherweise manuell geändert werden müssen. Am einfachsten ist es, dem Beispiel der TSV-Dateien in test_case/tsvs
zu folgen.
Um eine schnelle Zusammenfassung aller Befehlszeilenargumente von MetaPhase zu erhalten, führen Sie MetaPhase -help
aus. Eine ausführlichere Erklärung finden Sie hier.
-s
<string>
: Szenarioname. Dies wird von MetaPhase verwendet, um Ihren Lauf zu benennen. Es wird als Anfang des Namens der TSV-Dateien (siehe -i
unten) und auch als Name des Ausgabeverzeichnisses (siehe -o
unten) verwendet. Abschließend können Sie dies ignorieren, aber es gibt einige Szenarionamen, die fest verdrahtete Befehlszeilenoptionen haben, die ich in der Entwicklung verwendet habe (dies ist beispielsweise der Grund, warum -a
im MetaPhase -help
.)
-a
<string>
: Der Speicherort der Fasta-Datei für den De-novo -Metagenom-Assembly-Entwurf. Dies muss ein absoluter Pfad sein, kein relativer Pfad – dh er muss mit /
beginnen.
-N
<integer>
: Die Anzahl der zu erstellenden Cluster. Wenn Sie den Wert auf 1 setzen, gruppiert MetaPhase alles in einem einzigen Cluster und berechnet nebenbei E(N), die Linkanreicherung innerhalb des Clusters, und schreibt dann eine Datei enrichment_curve.jpg
, die Ihnen eine Schätzung der Anzahl geben kann Arten in Ihrer Probe. Nicht auf 0 oder eine Zahl setzen, die größer als die Anzahl der Contigs ist.
Einige dieser Argumente enthalten $HOME
in ihren Standardwerten. Dies bezieht sich auf Ihr UNIX-Home-Verzeichnis (den Ort, an den Sie gehen, wenn Sie cd ~
oder cd $HOME
eingeben).
-i
<string>
: Eingabeverzeichnis. Dies ist das Verzeichnis, das die TSV-Dateien <scenario>.HiC_libs.tsv
und <scenario>.refs.tsv
enthält. Standard: ./input
.
-o
<string>
: Stammverzeichnis ausgeben. Ausgabedateien aus diesem Lauf werden in <out_dir>/<scenario>
abgelegt. Standard: $HOME/MP/out
.
--blast_dir
<string>
: Verzeichnis mit den BLAST-Datenbanken ( nt.*
und nr.*
), die MetaPhase für Alignments verwendet. Sie können diese Dateien von der BLAST-Website herunterladen. Standard: $HOME/extern/blast
.
--refs_dir
<string>
: Verzeichnis mit den Referenzgenomassemblys, die in der Datei refs.tsv
aufgeführt sind. Ausgabedateien aus diesem Lauf werden in <out_dir>/<scenario>
abgelegt. Standard: $HOME/MP/refs
.
--use_tblastx
: Umschalten. Wenn diese Option festgelegt ist, führt MetaPhase ihre BLAST-Alignments mit tblastx
statt mit blastn
durch. Anstatt die Nukleotidsequenzen der Contigs mit einer Nukleotiddatenbank abzugleichen, werden die Nukleotide in Aminosäuren übersetzt und mit einer Proteindatenbank abgeglichen. Da Proteinsequenzen konservierter sind als Nukleotidsequenzen, greift tblastx
weiter entfernte phylogenetische Beziehungen auf – z . B. auf der Ebene der Familie oder Gattung statt auf der Ebene der Arten – was Sie vielleicht möchten oder auch nicht. tblastx
ist auch viel langsamer als blastn
.
--force_blast_realign
: Umschalten. Wenn festgelegt, ignoriert und überschreibt MetaPhase alle zwischengespeicherten Dateien, die BLAST-Ausrichtungen beschreiben.
-b
: Umschalten. Wenden Sie statistisches Bootstrapping auf die Linkmatrix an. Mit anderen Worten: Sobald die Matrix der Hi-C-Links erstellt ist (und bevor sie normalisiert wird), wird die Matrix mit Ersetzung neu abgetastet, wodurch eine neue Matrix mit derselben Gesamtzahl an Links, aber einer zufälligen Variation in der genauen Platzierung der Links erstellt wird. Wenn Sie die Robustheit Ihres Clustering-Ergebnisses testen möchten, führen Sie MetaPhase mehrmals mit -b
aus und vergleichen Sie die Ergebnisse, die stochastisch unterschiedlich sein sollten.
--isolated_component_size <integer>
: Nachdem Sie das Contig-Konnektivitätsdiagramm aus der Linkmatrix erstellt haben, verwerfen Sie alle Komponenten im Diagramm mit weniger als dieser Anzahl von Contigs. In den meisten Datensätzen bestehen solche Komponenten aus Rauschen, das nicht zuverlässig einer Art zugeordnet werden kann, und da diese Komponenten niemals mit anderen Komponenten kombiniert werden können, können sie die scheinbare Clusterzahl verfälschen. Wenn Ihre Hi-C-Link-Daten jedoch spärlich sind, müssen Sie diese möglicherweise reduzieren, um zu vermeiden, dass echte Cluster verschwendet werden. Standard: 100
.
--jarvis_patrick_K <integer>
: Der Wert von K, der im Jarvis-Patrick-Pre-Clustering-Schritt verwendet wird. Höhere Werte verlängern die Laufzeit, können jedoch die Genauigkeit erhöhen. Um diese Zahl im Detail zu verstehen, lesen Sie Jarvis und Patrick, „Clustering Using a Similarity Measure Based on Shared Near Neighbors“, 1973. Standard: 100
.
--min_cluster_norm <integer>
: Die Mindestnorm eines zulässigen Clusters. Die „Norm“ eines Contigs ist die Anzahl der darin enthaltenen Restriktionsenzymstellen (RE), und die Norm eines Clusters ist die Summe der Normen seiner Contigs. Dieser Parameter kann einen großen Einfluss auf die Ausgabe haben: Durch Erhöhen von min_cluster_norm
wird die minimal mögliche Größe eines Clusters erhöht, wodurch möglicherweise Cluster zerstört werden, die kleine Arten darstellen. Es verhindert aber auch die Bildung lästiger kleiner Mini-Cluster mit nur einer kleinen Anzahl von Contigs (2-3), die häufig auf Rauschen in den Daten und/oder sich wiederholende Contigs zurückzuführen sind. Wenn Sie einen großen Cluster mit den meisten Ihrer Contigs erhalten und alle anderen Cluster winzig sind, müssen Sie diesen Wert erhöhen. Beachten Sie, dass die Norm eines Clusters ungefähr seiner Länge in bp geteilt durch die RE-Standortfrequenz entspricht, sodass die optimale Anzahl für verschiedene Arten von REs unterschiedlich sein kann. Standard: 25
.
-merge
: Umschalten. Wenden Sie einige experimentelle Clustering-Algorithmen an, um mehrere unabhängige Clusterings zusammenzuführen, die aus verschiedenen Hi-C-Bibliotheken stammen. Nicht empfohlen.
--load_cached_clusters
: Umschalten. Wenn festgelegt, führt MetaPhase kein Clustering durch, sondern sucht in <out_dir>/<scenario>.cached_data
nach einer zwischengespeicherten Datei, die zuvor berechnete Clustering-Ergebnisse enthält. Diese Datei ist vorhanden, wenn MetaPhase zuvor in diesem Szenario mit demselben Wert von -N
wie jetzt und ohne das Flag --dont_output_cache
ausgeführt wurde. Dies ist eine Möglichkeit, Zeit zu sparen, wenn Sie Clustering-Ergebnisse analysieren möchten, ohne das Clustering erneut ausführen zu müssen.
--dont_output_cache
: Umschalten. Erstellen (oder überschreiben) Sie keine Cluster-Cache-Datei, die später mit --load_cached_clusters
geladen werden kann. Diese Option wird durch --load_cached_clusters
überschrieben.
--report_unclustered
: Umschalten. Wenn diese Option festgelegt ist, erstellt MetaPhase einen Abschlussbericht über die Contigs, die nicht geclustert wurden: zu welchen Arten sie gehören, wie viele von ihnen sind nicht geclustert, weil sie überhaupt nicht verknüpft sind, usw.
--output_cluster_fastas
: Umschalten. Wenn festgelegt, schreiben Sie die Dateien cluster.*.fasta
und unclustered.fasta
in <out_dir>/<scenario>/
. Hierbei handelt es sich um Fasta-Dateien, die angeben, wie MetaPhase die Contigs geclustert hat.
--output_network_image
: Umschalten. Wenn festgelegt, führen Sie das Skript Fig2a.R
aus und erstellen Sie ein Cluster-Netzwerkbild wie das, das in Abbildung 2A des MetaPhase-Papiers angezeigt wird.
--output_heatmaps
: Umschalten. Wenn festgelegt, führen Sie das Skript MakeClusteringResultHeatmap.R
aus und erstellen Sie Heatmap-Bilder wie die, die in Abbildung 2B und Abbildung S5 des MetaPhase-Papiers angezeigt werden.
--reorder_clusters_by_refs
: Umschalten. Wenn festgelegt, werden die Cluster neu angeordnet, um das Signal auf den Diagonalen der mit --output_heatmaps
erstellten Heatmaps zu maximieren. Beachten Sie, dass dies davon abhängt, welche Referenzgenome sich in Ihrer refs.tsv
Datei befinden und in welcher Reihenfolge sie in der Datei erscheinen. Wenn Sie konsistente Clusternummern haben möchten, legen Sie dies nicht fest.
Die grundlegendste Ausgabe von MetaPhase erfolgt auf dem Bildschirm. MetaPhase liefert ausführliche Berichte über den Fortschritt, während es Vorverarbeitung, BLAST-Ausrichtungen, Clustering und Post-Clustering-Analyse durchführt. Vorausgesetzt, dass es nicht abstürzt, erstellt MetaPhase ein schönes, praktisches Diagramm seiner Clustering-Ergebnisse. Die Spalten in diesem Diagramm sind:
Clusternummer
Anzahl der Contigs in diesem Cluster
Gesamtlänge aller Contigs in diesem Cluster
Häufigkeit: eine Schätzung der DNA-Häufigkeit (nicht der Artenhäufigkeit) dieses Clusters. Definiert als der Prozentsatz der Shotgun-Lesevorgänge, die mit den Contigs in diesem Cluster übereinstimmen. Erfordert eine SAM/BAM-Datei mit Schrotflintenfülle, die derzeit gehackt werden muss.
Pluralitätsreferenz: die Referenzgenomassemblierung (unter den in der Datei refs.tsv
aufgeführten), an der eine Pluralität der Sequenz ausgerichtet ist
%eukaryotic, %rDNA, %tRNA, %mtDNA: Vorhergesagte Annotationen des Sequenzinhalts in diesem Cluster. Basierend auf BLAST-Abgleichen mit der BLAST-Datenbank.
Pluralitätstaxonomie: Die häufigsten taxonomischen Platzierungen des Sequenzinhalts in diesem Cluster. Basierend auf BLAST-Abgleichen mit der BLAST-Datenbank.
Wenn Sie --report_unclustered
festlegen, erstellt MetaPhase außerdem ein viel kleineres und einfacheres Diagramm, das die nicht gruppierten Contigs beschreibt.
Sie können hübsche Bilder wie die in Abbildung 2A und 2B des MetaPhase-Papiers erstellen. Um das Netzwerkbild oder die Heatmap zu erstellen, legen Sie --output_network_image
bzw. --output_heatmap
fest. Die Dateien werden von den Skripten Fig2a.R
bzw. MakeClusteringResultHeatmap.R
erstellt. Dies sind ziemlich einfache R-Skripte, die ggplot2 verwenden. Wenn Sie das Erscheinungsbild der Bilder optimieren möchten, passen Sie einfach die Skripte an. Diese Dateien werden standardmäßig in $HOME/public_html
erstellt; Möglicherweise müssen Sie dieses Verzeichnis erstellen, damit die Dateien angezeigt werden.
MetaPhase erstellt die folgenden Dateien in <out_dir>/<scenario>
:
assembly.blastn_report
: Eine für Menschen lesbare Datei, die die BLAST-Ausrichtungen der Entwurfsassembly in der NT-Datenbank bequem zusammenfasst.
result.human_readable.txt
: Eine für Menschen lesbare Datei, die jeden Contig im Entwurf der Metagenom-Assembly auflistet und angibt, wie er geclustert wurde.
cluster.*.fasta
und unclustered.fasta
: Fasta-Dateien, die die Contigs in jedem Cluster enthalten. Wird nur erstellt, wenn Sie mit --output_cluster_fastas
ausführen.
Unterverzeichnis cached_data
: Enthält Cache-Dateien, die BLAST-Alignments zu Referenzgenomen beschreiben (MapToRefs.txt*); BLAST-Ausrichtungen an die NT-Datenbank (assembly. _blast); und Clustering-Ergebnisse (Cluster. ). Diese Dateien sind möglicherweise nicht besonders lesbar.
Unterverzeichnis LACHESIS
: Leer, es sei denn, Sie führen Lachesis nach der Ausführung von MetaPhase aus (siehe nächster Abschnitt).
Wie im MetaPhase-Artikel gezeigt, ist es möglich, MetaPhase auszuführen, um separate Cluster für jede Art zu erstellen, und anschließend LACHESIS auszuführen, um Gerüste der Contigs in diesem Cluster im Chromosomenmaßstab zu erstellen und so aus dem Nichts eine qualitativ hochwertige Zusammenstellung einzelner Arten zu generieren sondern metagenomische Daten. Es gelten jedoch mehrere Einschränkungen:
Dies funktioniert wahrscheinlich nur bei Eukaryoten, da die Methode von LACHESIS nicht wirklich auf prokaryotische Genome anwendbar ist.
Sie müssen die Chromosomenzahl Ihrer Art kennen, da LACHESIS die Chromosomenzahl nicht so genau vorhersagen kann wie MetaPhase die Artenzahl vorhersagen kann.
Sie müssen Ihre Hi-C-Lesevorgänge an die Contigs in dem von Ihnen untersuchten Cluster anpassen.
Achten Sie bei Hefearten darauf, dass nicht alle zentromerhaltigen Contigs in einem einzigen Chromosom zusammengefasst werden. Sie müssen die Option CLUSTER_CONTIGS_WITH_CENS
von LACHESIS verwenden.
Es sollte eine ausführbare Datei namens MetaPhase
vorhanden sein. Geben Sie MetaPhase
in die Befehlszeile ein. Wenn Sie eine Fehlermeldung wie „Befehl nicht gefunden“ erhalten, befinden Sie sich entweder nicht im richtigen MetaPhase-Verzeichnis oder Sie haben die Kompilierung nicht erfolgreich abgeschlossen. Wenn MetaPhase zur Ausführung bereit ist, führt die Eingabe von MetaPhase
zu einem PARSE ERROR
und MetaPhase beschreibt Ihnen die benötigten Befehlszeilenargumente.
Wenn Sie die folgende Fehlermeldung erhalten: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
dann müssen Sie das Verzeichnis mit libboost_filesystem.so.1.47.0
hinzufügen Ihre Umgebungsvariable $LD_LIBRARY_PATH
. Geben Sie diesen Befehl ein: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
Wenn MetaPhase abstürzt, sollten Sie sich als Erstes die Ausgabe genau ansehen. Möglicherweise erhalten Sie eine ausführliche Erklärung, was schief gelaufen ist, und Ihnen eine gute Idee, wie Sie das Problem beheben können. Das häufigste Problem besteht darin, dass eine der Eingabedateien entweder nicht gefunden werden konnte oder unsinnige Daten enthält.
Möglicherweise erhalten Sie auch einen „Assertionsfehler“, der wie folgt aussieht: Assertion ... failed.
Das bedeutet, dass MetaPhase irgendwann im Algorithmus auf etwas Bestimmtes gestoßen ist, das es nicht erwartet hatte. Ein Assertionsfehler enthält einen Verweis auf die Datei ( *.cc
oder *.h
) und die Zeilennummer, in der der Fehler aufgetreten ist. Schauen Sie sich die Zeile in der Datei an, die die Funktion assert()
enthalten sollte. In dieser Zeile sollten einige Kommentare stehen, die erläutern, was den Behauptungsfehler verursachen könnte.
Im Allgemeinen haben wir große Anstrengungen unternommen, um MetaPhase zu einem gut gestalteten und gut kommentierten Codestück zu machen. Wenn Sie mit C++ vertraut sind, sollten Sie in der Lage sein, im Quellcode herumzustöbern und sich ein Bild davon zu machen, was vor sich geht. Wir empfehlen, mit dem Modul der obersten Ebene, MetaPhase.cc
, zu beginnen und von dort aus zu arbeiten.
Nachdem Sie MetaPhase ordnungsgemäß zum Laufen gebracht haben, sehen Sie sich die Ausgaben genau an, insbesondere das Berichtsdiagramm. Wenn Sie ein seltsames Ergebnis erhalten – zum Beispiel, dass nur sehr wenig Sequenz zusammengestellt wird oder der Großteil der Sequenz in einem einzigen Cluster zusammengefasst ist (ein häufiges Problem) – müssen Sie möglicherweise die Leistung von MetaPhase optimieren. Schauen Sie sich Abschnitt D2, „Optionale Befehlszeilenargumente“, genau an.
Das MetaPhase-Softwarepaket sowie die gesamte darin enthaltene Software und Dokumentation unterliegen dem Urheberrecht © 2013–2014 von Josh Burton und der University of Washington. Alle Rechte vorbehalten.
Diese Software wird „wie besehen“ ohne jegliche Gewährleistung oder Supportgarantie geliefert. Die University of Washington übernimmt keine Verantwortung für deren Nutzung, Missbrauch oder Funktionalität. In keinem Fall haften die Autoren oder Urheberrechtsinhaber für Ansprüche, Schäden oder sonstige Haftung, die sich aus, aus oder im Zusammenhang mit dieser Software ergeben.
Vielen Dank an Ivan Liachko, der das MetaPhase-Projekt ermöglicht und alle von der MetaPhase-Software verwendeten Hi-C-Daten generiert hat.
Vielen Dank an Maitreya Dunham und Jay Shendure für Führung, Management und Ideen.
Vielen Dank an Kathryn Bushley, David Fredricks, Steve Salipante, Laura Sycuro und Andrew Wiser für ihre geduldige Unterstützung beim Testen und bei der Fehlerbehebung von MetaPhase.
Vielen Dank an Aaron McKenna für seine Hilfe bei der Bereitstellung von MetaPhase über GitHub.
(von Andrew) Sie geben Benutzern eine neue, begrenzte BOOST-Installation, die sie möglicherweise nicht mit dem Rest ihres Systems interagieren möchten, indem Sie sie zu ihrem LD_LIBRARY_PATH hinzufügen. Mein Vorschlag wäre, dem Benutzer zu empfehlen, wenn möglich das Verzeichnis include/boost_1_47_0/stage/lib zu seinem LD_LIBRARY_PATH hinzuzufügen, aber stattdessen auch ein Wrapper-Skript bereitzustellen, das die Umgebungsvariable zur Laufzeit festlegt. Ein Python-Programm, das prüft, ob sich der richtige Pfad im Benutzer-LD_LIBRARY_PATH befindet, ihn festlegt, wenn er nicht gefunden wird, und dann das Programm ausführt, wäre wirklich einfach und schnell zu kochen.