Variationsdiagramme liefern eine prägnante Kodierung der Sequenzen vieler Genome. Ein Variationsdiagramm (insbesondere in VG implementiert) besteht aus:
Dieses Modell ähnelt Sequenzdiagramme, die in der Montage- und Mehrfachsequenzausrichtung verwendet wurden.
Pfade liefern Koordinatensysteme relativ zu Genomen, die im Diagramm codiert sind und es ermöglichen, stabile Zuordnungen zu erzeugen, auch wenn die Struktur des Diagramms geändert wird. Das Variationsgraphenmodell macht dieses Einbetten explizit und wesentlich. Tools in VG halten Pfade bei, die während der Transformationen der Grafik als unveränderlich sind. Sie verwenden Pfade, um graph-relative Daten in referenzbezogene Koordinatenräume zu projizieren. Pfade liefern stabile Koordinaten für Grafiken, die auf unterschiedliche Weise von denselben Eingabemöglichkeiten integriert sind.
Bitte zitieren:
vg
vg giraffe
vg call
vg deconstruct
vg snarls
vg haplotypes
und/oder vg giraffe --haplotype-name
Wir unterhalten ein Support -Forum für Biostars: https://www.biostars.org/tag/vg/
Der einfachste Weg, VG zu erhalten, besteht darin, einen unserer Veröffentlichungsbaufe für Linux herunterzuladen. Wir haben eine Kadenz von 6 Wochen, daher sind unsere Builds nie zu weit veraltet.
Laden Sie die neueste VG -Version für Linux herunter
Für macOS siehe Gebäude auf MacOS.
Wenn Sie keine vorgefertigte Version von VG verwenden möchten oder nicht verwenden können oder wenn Sie VG-Entwickler werden möchten, können Sie sie stattdessen aus der Quelle aus erstellen.
Erhalten Sie zunächst das Repo und seine Submodule:
git clone --recursive https://github.com/vgteam/vg.git
cd vg
Installieren Sie dann die Abhängigkeiten von VG. Sie benötigen die Installation der Protobuf- und Jansson -Entwicklungsbibliotheken und um die Tests auszuführen, die Sie benötigen:
jq
, bc
, rs
und parallel
hexdump
und column
von bsdmainutils
npm
zum Testen von Dokumentationsbeispielen).Auf Ubuntu sollten Sie in der Lage sein:
make get-deps
Wenn Sie Beschwerden erhalten, dass sudo
nicht gefunden wird, installieren Sie es:
apt update
apt install sudo
Wenn Sie eine Reihe von Fehlern wie E: Unable to locate package build-essential
, stellen Sie sicher, dass Ihre Paket-Indexdateien auf dem neuesten Stand sind, indem Sie ausgeführt werden:
sudo apt update
Bei anderen Distributionen oder wenn Sie keinen Root -Zugriff haben, müssen Sie das Äquivalent von:
sudo apt-get install build-essential git cmake pkg-config libncurses-dev libbz2-dev
protobuf-compiler libprotoc-dev libprotobuf-dev libjansson-dev
automake gettext autopoint libtool jq bsdmainutils bc rs parallel
npm curl unzip redland-utils librdf-dev bison flex gawk lzma-dev
liblzma-dev liblz4-dev libffi-dev libcairo-dev libboost-all-dev
libzstd-dev pybind11-dev python3-pybind11
Beachten Sie, dass Ubuntu 16.04 keinen ausreichend neuen Protobuf versendet; VG erfordert Protobuf 3 , das manuell installiert werden muss.
Gegenwärtig benötigen Sie GCC Version 4.9 oder höher, um C ++ 14 zu unterstützen, um VG zu kompilieren. (Überprüfen Sie Ihre Version mit gcc --version
.) GCC bis 11.2.0 wird unterstützt.
Andere Bibliotheken können erforderlich sein. Bitte melden Sie alle Build -Schwierigkeiten.
Beachten Sie, dass ein 64-Bit-Betriebssystem erforderlich ist. Ubuntu 20.04 sollte funktionieren.
Wenn Sie bereit sind, bauen Sie mit make
. Sie können make -j16
verwenden, um 16 Build -Threads gleichzeitig auszuführen, was den Prozess stark beschleunigt. Wenn Sie mehr CPU -Kerne haben, können Sie höhere Zahlen verwenden.
Beachten Sie, dass VG je nach Maschine und Anzahl der verwendeten Threads zwischen 10 Minuten und mehr als eine Stunde dauern kann, um zu kompilieren.
Sie können auch eine statische Binärdatei mit make static
produzieren, vorausgesetzt, Sie haben statische Versionen aller auf Ihrem System installierten Abhängigkeiten.
Sobald VG erstellt wurde, befindet sich die Binärdatei in bin/vg
im VG -Repository -Verzeichnis. Sie können es mit:
./bin/vg
Sie können Ihr Verzeichnis auch zu Ihrer PATH
hinzufügen, damit Sie vg
aus jedem Verzeichnis aufrufen können. Verwenden Sie diesen Befehl diesen Befehl aus dem VG -Repository -Verzeichnis: Verwenden Sie diesen Befehl:
echo 'export PATH="${PATH}:'"$(pwd)"'/bin"' >>~/.bashrc
Schließen Sie dann Ihr Terminal und öffnen Sie einen neuen. Führen Sie vg
aus, um sicherzustellen, dass es funktioniert.
Wenn es nicht funktioniert hat, stellen Sie sicher, dass Sie eine .bash_profile
-Datei in Ihrem Heimverzeichnis haben, in der Ihr .bashrc
ausgeführt wird:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Der erste Schritt besteht darin, das VG -Repository zu klonen:
git clone --recursive https://github.com/vgteam/vg.git
cd vg
VG hängt von einer Reihe von Paketen ab, die auf dem System installiert werden, in dem es gebaut wird. Abhängigkeiten können entweder mit Macports oder Homebrew installiert werden.
Sie können Macports verwenden, um die Abhängigkeiten von VG zu installieren:
sudo port install libtool protobuf3-cpp jansson jq cmake pkgconfig autoconf automake libtool coreutils samtools redland bison gperftools md5sha1sum rasqal gmake autogen cairo libomp boost zstd pybind11
Homebrew bietet eine weitere Paketverwaltungslösung für OSX und kann einigen Benutzern gegenüber MacPorts vorzuziehen sein. VG versendet eine Brewfile
, die seine homebrewischen Abhängigkeiten beschreibt. Aus dem Root VG -Verzeichnis können Sie also Abhängigkeiten installieren und VG wie folgt aussetzen:
# Install all the dependencies in the Brewfile
brew bundle
Mit installierten Abhängigkeiten kann VG jetzt erstellt werden:
make
Wie bei Linux können Sie am Ende -j16
oder andere Zahlen hinzufügen, um mehrere Build -Aufgaben gleichzeitig auszuführen, wenn Ihr Computer sie verarbeiten kann.
Beachten Sie, dass statische Binärdateien für MAC noch nicht erstellt werden können.
Der VG MAC Build zielt auf egal auf welche aktuelle Version von Apple Clang, und die Version von Apple Clang wird von unserem GitHub -Aktionen Mac CI -System bereitgestellt. Wenn Ihr Klang auf dem neuesten Stand ist und VG nicht für Sie erstellt wird, öffnen Sie bitte ein Problem.
Sobald VG erstellt wurde, befindet sich die Binärdatei in bin/vg
im VG -Repository -Verzeichnis. Sie können es mit:
./bin/vg
Sie können Ihr Verzeichnis auch zu Ihrer PATH
hinzufügen, damit Sie vg
aus jedem Verzeichnis aufrufen können. Verwenden Sie diesen Befehl diesen Befehl aus dem VG -Repository -Verzeichnis, um dies auf der Standard zsh
-Mac -Shell zu tun:
echo 'export PATH="${PATH}:'"$(pwd)"'/bin"' >>~/.zshrc
Schließen Sie dann Ihr Terminal und öffnen Sie einen neuen. Führen Sie vg
aus, um sicherzustellen, dass es funktioniert.
Die Mac -Plattform bewegt sich mit dem M1-, M1 Pro-, M1 MAX- und nachfolgenden Chip -Designs von Apple nach Arm. Die VG -Codebasis unterstützt ARM auf Mac sowie unter Linux. Die normalen Installationsanweisungen funktionieren auf einem fabrisch-frischen Arm Mac .
Es ist jedoch einfach, Probleme bei der Migration einer funktionierenden VG -Build -Umgebung oder bei der Migration von Macports oder Homebrew von x86_64 nach ARM zu begegnen. Die ARM -Maschine kann erfolgreich X86_64 -Tools ausführen, die über MacPorts oder Homebrew auf der alten Maschine installiert sind. VG kann jedoch nur dann richtig auf ARM bauen, wenn Sie Armversionen der Build -Tools wie make
und CMake verwenden.
Nach dem Migrieren zu einem Arm -Mac mit der Migrationstools von EG Apple:
make clean
. Dies sollte alle Build -Artefakte entfernen.make
. Wenn Sie danach noch Probleme aufbauen, löschen Sie die gesamte Kasse und überprüfen Sie den Code erneut. make clean
steht nicht unter CI -Test und ist mit dem Rest des Build -Systems nicht immer auf dem neuesten Stand.
Unabhängig davon, ob das hilft oder nicht, öffnen Sie bitte ein Problem, damit wir helfen können, den Build oder die Fixierung zu make clean
.
HINWEIS Die folgenden Beispiele
vg autoindex
finden Sie in der Verwendung dieses Tools anstelle desvg construct
um Diagramme in einem einzigen Schritt zu erstellen und zu indexieren.
Eine Möglichkeit, ein Diagramm mit vg
zu erstellen, besteht darin, es aus Variantenaufrufen mithilfe einer Referenz -Fasta -Datei und einer VCF -Datei zu construct
. Wenn Sie im test/
Verzeichnis von VG arbeiten:
vg construct -r small/x.fa -v small/x.vcf.gz > x.vg
Beachten Sie, dass zum Erstellen eines Diagramms ein Index der VCF -Datei erforderlich ist. Die VCF -Indexdatei kann mit dem von SAMTOOLS angegebenen tabix
-Befehl (z. B. tabix -p vcf x.vcf.gz
in der Befehlszeile) generiert werden.
Sie können auch ein Diagramm (und Indizes für die Zuordnung von VG) aus einer Reihe von Genomanordnungen (FASTA) erstellen, im Gegensatz zu Variantenaufrufen wie oben beschrieben unter Verwendung von Minigraph-Cactus.
vg
unterstützt viele Formate, die drei wichtigsten sind:
PackedGraph (.vg)
: Dies ist das native Format vg's
. Es unterstützt Änderungen aller Art (zu Topologie und Wegen), kann jedoch auf großen Skalen ineffizient sein, insbesondere mit vielen Wegen.GFA (.gfa)
: GFA ist ein Standard-Text-basierter Format und in der Regel der beste Weg, um Grafiken zwischen vg
und anderen Pangenom-Tools auszutauschen. vg
kann auch auf ( unkomprimierte ) GFA-Dateien direkt arbeiten, indem eine PackedGraph
Grafikdarstellung im Speicher verwendet wird (und daher die Skalierungsbedenken und Bearbeitungsfähigkeit des Formats).GBZ (.gbz)
: GBZ ist ein hochkomprimiertes Format, das viel weniger Platz zum Speichern von Pfaden als die oben genannten Formate verwendet, aber auf Kosten, nicht allgemeine Änderungen an der Grafik zuzulassen. Sie können das Format eines jeden Diagramms mit vg stats -F
abfragen.
Im Allgemeinen erstellen Sie vg
Diagramme mit vg autoindex
(von GFA oder VCF) oder Minigraph-Cactus
(Fastas). Sie können auch GFA
-Dateien aus anderen Tools wie ODGI und PGGB mit vg convert -g
importieren.
Sie können jede Grafik mit vg convert -f
in GFA
konvertieren. Standardmäßig verwendet vg
GFA V1.1, wobei Pfade als W-Linien dargestellt werden. Verwenden Sie stattdessen P -Lines (GFA v1.0), um vg convert -fW
zu verwenden.
Das GBZ
-Format unterscheidet die Unterscheidung zwischen REFERENCE
und HAPLOTYPE
. REFERENCE
können als Koordinatensysteme verwendet werden, sind jedoch teurer zu speichern. HAPLOTYPE
sind stark komprimiert, können jedoch nicht für Positionsangaben verwendet werden. In den HPRC -Graphen beispielsweise sind Contigs von GRCh38
und CHM13(T2T)
REFERENCE
und alle anderen Proben HAPLOTYPE
.
Die Unterscheidung zwischen REFERENCE
und HAPLOTYPE
-Pfaden wird in die anderen Formate wie .vg
und .gfa
übertragen, um die Umwandlung und Interoperation zu erleichtern. In .gfa
sind REFERENCE
P-Linien oder W-Linien, deren Stichprobennamen im Kopfzeile markiert sind. W-Linien, deren Namen nicht im Header gekennzeichnet sind, sind HAPLOTYPE
. In .vg
werden sie mit einer Namenskonvention bezeichnet.
Weitere Informationen finden Sie im Pfad -Metadaten -Wiki.
Warning
GBZ
ist das einzige Format, das eine effiziente Belastung einer großen Anzahl vonHAPLOTYPE
invg
unterstützt. Sie können auf Probleme stoßen, um Diagramme mit Tausenden vonHAPLOTYPE
aus.vg
oder.gfa
Dateien zu laden.vg convert -H
kann verwendet werden, umHAPLOTYPE
abzugeben, sodass der Diagramm in anderen Formaten leichter geladen werden kann.
Beachten Sie, dass es am besten ist, das neuere
vg convert
-Tool (oben beschrieben) für die GFA -Konvertierung zu verwenden
vg view
bietet eine Möglichkeit, die Grafik in verschiedene Formate umzuwandeln:
# GFA output
vg view x.vg > x.gfa
# dot output suitable for graphviz
vg view -d x.vg > x.dot
# And if you have a GAM file
cp small/x-s1337-n1.gam x.gam
# json version of binary alignments
vg view -a x.gam > x.json
Wenn Sie mehr als eine Sequenz haben oder an einem großen Diagramm arbeiten, möchten Sie nicht nur ausgerichtet sein, anstatt sie nur auszurichten.
In vg
gibt es mehrere Lektüre Mapper:
vg giraffe
ist so konzipiert, dass sie für hoch genaue kurze Lesevorgänge mit Haplotypinformationen schnell sind.vg map
ist ein allgemeiner Leser-Mapper.vg mpmap
macht "Multi-Pfad" -Kartierung, um die Beschreibung der lokalen Alignment-Unsicherheit zu ermöglichen. Dies ist nützlich für die Transkriptomik. vg giraffe
Um vg giraffe
zum MAP -Lesevorgängen zu verwenden, müssen Sie zunächst Indizes vorbereiten. Dies erfolgt am besten mit vg autoindex
. Um vg autoindex
dazu zu bringen, Haplotyp -Informationen aus einer VCF -Datei zu verwenden, können Sie ihm den VCF und die zugehörige lineare Referenz direkt angeben.
# construct the graph and indexes (paths below assume running from `vg/test` directory)
vg autoindex --workflow giraffe -r small/x.fa -v small/x.vcf.gz -p x
# simulate a bunch of 150bp reads from the graph, into a GAM file of reads aligned to a graph
vg sim -n 1000 -l 150 -x x.giraffe.gbz -a > x.sim.gam
# now re-map these reads against the graph, and get BAM output in linear space
# FASTQ input uses -f instead of -G.
vg giraffe -Z x.giraffe.gbz -G x.sim.gam -o BAM > aln.bam
Weitere Informationen zur Verwendung vg girafe
finden Sie im vg
-Wiki.
vg map
Wenn Ihr Diagramm groß ist, möchten Sie vg index
verwenden, um die Grafik und vg map
zu speichern, um die Lesevorgänge auszurichten. vg map
implementiert ein KMER -Basis -Saatgut- und Erweiterungs -Ausrichtungsmodell, das dem in Aligner wie Novoalign oder Mosaik verwendeten ähnlich ist. Zunächst wird ein On-Disk-Index mit vg index
erstellt, der das Diagramm selbst und Kmer einer bestimmten Größe enthält. Bei der Zuordnung kann jede KMER -Größe kürzer als im Index verwendet werden, und standardmäßig verringert der Mapper die KMER -Größe, um die Empfindlichkeit zu erhöhen, wenn die Ausrichtung bei einem bestimmten k fehlschlägt.
# construct the graph (paths below assume running from `vg/test` directory)
vg construct -r small/x.fa -v small/x.vcf.gz > x.vg
# store the graph in the xg/gcsa index pair
vg index -x x.xg -g x.gcsa -k 16 x.vg
# align a read to the indexed version of the graph
# note that the graph file is not opened, but x.vg.index is assumed
vg map -s CTACTGACAGCAGAAGTTTGCTGTGAAGATTAAATTAGGTGATGCTTG -x x.xg -g x.gcsa > read.gam
# simulate a bunch of 150bp reads from the graph, one per line
vg sim -n 1000 -l 150 -x x.xg > x.sim.txt
# now map these reads against the graph to get a GAM
vg map -T x.sim.txt -x x.xg -g x.gcsa > aln.gam
# surject the alignments back into the reference space of sequence "x", yielding a BAM file
vg surject -x x.xg -b aln.gam > aln.bam
# or alternatively, surject them to BAM in the call to map
vg sim -n 1000 -l 150 -x x.xg > x.sim.txt
vg map -T x.sim.txt -x x.xg -g x.gcsa --surject-to bam > aln.bam
Variationen von Ausrichtungen können wieder in die Grafik eingebettet werden. Dieser Prozess wird als Augmentation bezeichnet und kann beispielsweise für die De -novo -Variante verwendet werden (siehe unten).
Warnung mit
vg augment
für Varianten -Anrufe bleibt sehr experimentell. Es wird für die strukturelle Variante überhaupt nicht empfohlen, und selbst für kleine Varianten erhalten Sie oft viel genauere Ergebnisse (zumindest für Menschen), indem Sie Ihre Ausrichtung aufBAM
projizieren und einen linearen Varianten -Anrufer wie Deepvariante ausführen.
# augment the graph with all variation from the GAM except that implied by soft clips, saving to aug.vg. aug.gam contains the same reads as aln.gam but mapped to aug.vg
vg augment x.vg aln.gam -A aug.gam > aug.vg
# augment the graph with all variation from the GAM, saving each mapping as a path in the graph.
# softclips of alignment paths are preserved (`-S`).
# Note, this can be much less efficient than the above example if there are many alignments in the GAM
vg augment x.vg aln.gam -i -S > aug_with_paths.vg
Hinweis Weitere Informationen finden Sie im Wiki.
Die folgenden Beispiele zeigen, wie ein VCF mit VG unter Verwendung von Read -Unterstützung generiert wird. Sie hängen von den oben genannten Ausgaben aus den Abbildungs- und Augmentationsbeispielen ab. Kleine Varianten und SVs können mit demselben Ansatz bezeichnet werden. Derzeit ist es für SVS mehr Accuracte .
Rufen Sie nur Varianten auf, die in der Grafik vorhanden sind:
# Compute the read support from the gam
# -Q 5: ignore mapping and base qualitiy < 5
vg pack -x x.xg -g aln.gam -Q 5 -o aln.pack
# Generate a VCF from the support.
vg call x.xg -k aln.pack > graph_calls.vcf
Standardmäßig lässt vg call
0/0
Varianten aus und versucht, Allele zu normalisieren, um den VCF kompakter zu gestalten. Beide Schritte können es schwierig machen, die Ausgänge aus verschiedenen Stichproben zu vergleichen, da die VCFs unterschiedliche Koordinaten haben, obwohl sie mit demselben Diagramm erstellt wurden. Die Option -a
befasst sich mit dieser Option, indem Sie jeden Knurren mit denselben Koordinaten und einschließlich Referenzaufrufen aufrufen. Ausgänge für verschiedene Proben können mit bcftools merge -m all
kombiniert werden.
vg call x.xg -k aln.pack -a > snarl_genotypes.vcf
Um auch neuartige Varianten aus den Lesevorgängen zu betrachten, verwenden Sie das Augmented Graph und GAM (wie im Beispiel "Augmentation" mit vg augment -A
erstellt):
Warnung mit
vg augment
für Varianten -Anrufe bleibt sehr experimentell. Es wird für die strukturelle Variante überhaupt nicht empfohlen, und selbst für kleine Varianten erhalten Sie oft viel genauere Ergebnisse (zumindest für Menschen), indem Sie Ihre Ausrichtung aufBAM
projizieren und einen linearen Varianten -Anrufer wie Deepvariante ausführen.
# Index our augmented graph
vg index aug.vg -x aug.xg
# Compute the read support from the augmented gam (ignoring qualitiy < 5, and 1st and last 5bp of each read)
vg pack -x aug.xg -g aug.gam -Q 5 -s 5 -o aln_aug.pack
# Generate a VCF from the support
vg call aug.xg -k aln_aug.pack > calls.vcf
Ein ähnlicher Prozess kann durch Verwendung von genotypen bekannten Varianten aus einem VCF verwendet werden. Dazu muss der Diagramm aus dem VCF mit vg construct -a
konstruiert werden (Diagramme aus anderen Quellen wie vg autoindex
und Minigraph-Cactus
können nicht verwendet werden):
# Re-construct the same graph as before but with `-a`
vg construct -r small/x.fa -v small/x.vcf.gz -a > xa.vg
# Index the graph with `-L' to preserve alt paths in the xg
vg index xa.vg -x xa.xg -L
# Compute the support (we could also reuse aln.pack from above)
vg pack -x xa.xg -g aln.gam -o aln.pack
# Genotype the VCF (use -v)
vg call xa.xg -k aln.pack -v small/x.vcf.gz > genotypes.vcf
Die Vorabsteigerung des GAM vor der Berechnung der Unterstützung kann die Genauigkeit der SNP-Anrufe verbessern:
# filter secondary and ambiguous read mappings out of the gam
vg filter aln.gam -r 0.90 -fu -m 1 -q 15 -D 999 -x x.xg > aln.filtered.gam
# then compute the support from aln.filtered.gam instead of aln.gam in above etc.
vg pack -x xa.xg -g aln.filtered.gam -o aln.pack
vg call xa.xg -k aln.pack -v small/x.vcf.gz > genotypes.vcf
Für größere Grafiken wird empfohlen, Snarls separat zu berechnen:
vg snarls x.xg > x.snarls
# load snarls from a file instead of computing on the fly
vg call x.xg -k aln.pack -r x.snarls > calls.vcf
Hinweis: vg augment
, vg pack
, vg call
und vg snarls
können jetzt alle direkt in jedem Diagrammformat (Ex '.gbz', '.gfa', .vg
, .xg
(außer augment
) oder irgendetwas nach vg convert
ausgeführt werden vg convert
). Der Betrieb auf .vg
oder '.gfa' verwendet den größten Speicher und wird für große Diagramme nicht empfohlen. Die Ausgabe des vg pack x.vg -g aln.gam -o x.pack
vg pack
vg call x.xg -k x.pack
nur in Verbindung mit demselben Diagramm gelesen werden .
Abschlussvarianten aus Ausrichtungen, die durch Pfade im Diagramm impliziert werden. Dies kann beispielsweise verwendet werden, um SVs direkt aus einem Variationsdiagramm aufzurufen, das aus einer Mehrfachausrichtung verschiedener Baugruppen erstellt wurde:
# create a graph from a multiple alignment of HLA haplotypes (from vg/test directory)
vg msga -f GRCh38_alts/FASTA/HLA/V-352962.fa -t 1 -k 16 | vg mod -U 10 - | vg mod -c - > hla.vg
# index it
vg index hla.vg -x hla.xg
# generate a VCF using gi|568815592:29791752-29792749 as the reference contig. The other paths will be considered as haploid samples
vg deconstruct hla.xg -e -p " gi|568815592:29791752-29792749 " > hla_variants.vcf
Haplotypenpfade aus .gbz
oder .gbwt
-Indizes -Eingabe können unter Verwendung von -z
bzw. `-g 'in Betracht gezogen werden.
Wie bei vg call
ist es am besten, Snarls separat zu berechnen und sie mit -r
bei der Arbeit mit großen Diagrammen weiterzugeben.
vg
verfügt über eine Reihe von Tools, um transkriptomische Analysen mit Spleißdiagrammen zu unterstützen (dh Diagramme, die annotierte Spleißübergänge als Kanten in den Diagramm hinzugefügt haben). Diese Kanten können unter Verwendung von vg rna
in ein vorhandenes Graphen hinzugefügt werden. Mit vg mpmap
können wir dann Spleiß-bewusstes Mapping zu diesen Diagrammen durchführen. vg
-Entwickler haben auch ein Tool für die Haplotype-bewusste Transkriptquantifizierung erstellt, die auf diesen Tools in rpvg
basiert. Der einfachste Weg, diese Pipeline zu starten, besteht darin, den vg autoindex
-Unterbefehl zu verwenden, um Indizes für vg mpmap
zu erstellen. vg autoindex
erstellt Indizes für die Zuordnung von gemeinsamen Austauschformaten wie Fasta, VCF und GTF.
Weitere Informationen finden Sie auf der Wiki -Seite zur Transkriptomik.
Arbeiten aus dem test/
Verzeichnis Das folgende Beispiel zeigt, wie ein gespleißtes Pangenom -Diagramm und Indizes mit vg autoindex
mit 4 Threads erstellt werden:
# Create spliced pangenome graph and indexes for vg mpmap
vg autoindex --workflow mpmap -t 4 --prefix vg_rna --ref-fasta small/x.fa --vcf small/x.vcf.gz --tx-gff small/x.gtf
RNA-Seq-Lesevorgänge können mit vg mpmap
mit 4 Threads auf den Spleißpangenom-Diagramm abgebildet werden:
# Map simulated RNA-seq reads using vg mpmap
vg mpmap -n rna -t 4 -x vg_rna.spliced.xg -g vg_rna.spliced.gcsa -d vg_rna.spliced.dist -f small/x_rna_1.fq -f small/x_rna_2.fq > mpmap.gamp
Dies erzeugt Ausrichtungen im Multipath -Format. Weitere Informationen zum Multipath -Ausrichtungsformat und vg mpmap
finden Sie in Wiki -Seite auf MPMAP. Ausführen der beiden Befehle auf den kleinen Beispieldaten mit 4 Threads sollte auf den meisten Maschinen weniger als eine Minute dauern.
Wenn Sie ein kleines Diagramm haben, können Sie eine Sequenz auf das gesamte Diagramm ausrichten, indem Sie eine teilweise Bestellausrichtung in voller Länge verwenden:
vg align -s CTACTGACAGCAGAAGTTTGCTGTGAAGATTAAATTAGGTGATGCTTG x.vg
Beachten Sie, dass Sie das Diagramm auf der Festplatte überhaupt nicht speichern müssen. Sie können es einfach in den lokalen Aligner leiten:
vg construct -r small/x.fa -v small/x.vcf.gz | vg align -s CTACTGACAGCAGAAGTTTGCTGTGAAGATTAAATTAGGTGATGCTTG -
Die meisten Befehle ermöglichen das Streaming von Graphen in und aus vg
.
Es gibt eine Vielzahl von Befehlen:
vg
ist eine Sammlung von Tools basierend auf einem gemeinsamen Datenmodell (dem Variationsdiagramm), das durch ein Protobuf -Schema (VG.Proto) beschrieben wird. In vg.Proto definierte Datenobjekte können über ein in stream.hpp definierter Stream -Muster serialisiert werden. Es ist nicht notwendig, Code in VG zu schreiben, um mit den hier definierten Algorithmen mitzustimmen. Vielmehr ist es manchmal einfacher, einen externen Algorithmus zu schreiben, der dieselben Datenformate liest und schreibt.
MIT