توفر الرسوم البيانية التباين ترميزًا موجزًا لتسلسلات العديد من الجينومات. يتكون رسم بياني تباين (على وجه الخصوص كما تم تنفيذه في VG) من:
يشبه هذا النموذج الرسوم البيانية المتسلسلة التي تم استخدامها في التجميع ومحاذاة التسلسل المتعددة.
توفر المسارات أنظمة إحداثيات بالنسبة للجينومات المشفرة في الرسم البياني ، مما يسمح بإنتاج التعيينات المستقرة حتى إذا تم تغيير بنية الرسم البياني. نموذج الرسم البياني التباين يجعل هذا التضمين واضحًا وضروريًا. الأدوات في VG تحافظ على مسارات غير قابلة للتغيير أثناء تحويلات الرسم البياني. يستخدمون مسارات لمشاريع بيانات الرسم البياني في مساحات الإحداثيات المرجعية. توفر المسارات إحداثيات مستقرة للرسوم البيانية المبنية بطرق مختلفة من نفس تسلسل الإدخال.
يرجى الاستشهاد:
vg
vg giraffe
vg call
vg deconstruct
vg snarls
vg haplotypes
vg giraffe --haplotype-name
نحافظ على منتدى دعم على Biostars: https://www.biostars.org/tag/vg/
أسهل طريقة للحصول على VG هي تنزيل إحدى عمليات إصدار إصدارنا لـ Linux. لدينا إيقاع من 6 أسابيع ، لذلك فإن بنياتنا ليست بعيدة جدًا عن التاريخ.
قم بتنزيل أحدث إصدار VG لـ Linux
ل macos ، انظر بناء على macos.
إذا كنت لا ترغب في أو لا يمكنك استخدام إصدار مصمم مسبقًا من VG ، أو إذا كنت ترغب في أن تصبح مطور VG ، فيمكنك إنشاءه من Source بدلاً من ذلك.
أولاً ، احصل على الريبو وفيروساتها الفرعية:
git clone --recursive https://github.com/vgteam/vg.git
cd vg
ثم ، قم بتثبيت تبعيات VG. ستحتاج إلى تثبيت مكتبات تطوير Protobuf و Jansson ، ولإجراء الاختبارات التي ستحتاج إليها:
jq
، bc
، rs
، parallel
hexdump
column
من bsdmainutils
npm
لاختبار أمثلة الوثائق).في Ubuntu ، يجب أن تكون قادرًا على القيام:
make get-deps
إذا تلقيت شكاوى من عدم العثور على sudo
، فقم بتثبيته:
apt update
apt install sudo
إذا حصلت على مجموعة من الأخطاء مثل E: Unable to locate package build-essential
، فتأكد من تحديث ملفات فهرس الحزمة الخاصة بك عن طريق التشغيل:
sudo apt update
على توزيعات أخرى ، أو إذا لم يكن لديك وصول جذر ، فستحتاج إلى أداء ما يعادل:
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
لاحظ أن Ubuntu 16.04 لا يشحن بروتوبوف جديد بما فيه الكفاية ؛ يتطلب VG protobuf 3 التي يجب تثبيتها يدويًا.
في الوقت الحاضر ، ستحتاج إلى إصدار GCC 4.9 أو أكثر ، مع دعم C ++ 14 ، لتجميع VG. (تحقق من الإصدار الخاص بك باستخدام gcc --version
.) يتم دعم GCC حتى 11.2.0.
قد تكون هناك حاجة إلى مكتبات أخرى. الرجاء الإبلاغ عن أي صعوبات في البناء.
لاحظ أن نظام التشغيل 64 بت مطلوب. أوبونتو 20.04 يجب أن تعمل.
عندما تكون جاهزًا ، بناء مع make
. يمكنك استخدام make -j16
لتشغيل 16 مؤشر ترابط بناء في وقت واحد ، مما يسرع بشكل كبير من العملية. إذا كان لديك المزيد من نوى وحدة المعالجة المركزية ، فيمكنك استخدام أرقام أعلى.
لاحظ أن VG يمكن أن يستغرق في أي مكان من 10 دقائق إلى أكثر من ساعة لتجميعها اعتمادًا على جهازك وعدد مؤشرات الترابط المستخدمة.
يمكنك أيضًا إنتاج ثنائي ثابت مع make static
، على افتراض أن لديك إصدارات ثابتة من جميع التبعيات المثبتة على نظامك.
بمجرد إنشاء VG ، سيكون الثنائي في bin/vg
داخل دليل مستودع VG. يمكنك تشغيله مع:
./bin/vg
يمكنك أيضًا إضافة دليله إلى متغير PATH
الخاص بك ، بحيث يمكنك استدعاء vg
من أي دليل. للقيام بذلك على باش ، استخدم هذا الأمر من دليل مستودع VG:
echo 'export PATH="${PATH}:'"$(pwd)"'/bin"' >>~/.bashrc
ثم أغلق المحطة الخاصة بك وفتح واحدة جديدة. تشغيل vg
للتأكد من أنها تعمل.
إذا لم ينجح ذلك ، فتأكد من أن لديك ملف .bash_profile
في الدليل المنزلي الخاص بك والذي سيدير .bashrc
:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
الخطوة الأولى هي استنساخ مستودع VG:
git clone --recursive https://github.com/vgteam/vg.git
cd vg
يعتمد VG على عدد من الحزم التي يتم تثبيتها على النظام حيث يتم بناؤه. يمكن تثبيت التبعيات باستخدام Macports أو Homebrew.
يمكنك استخدام Macports لتثبيت تبعيات VG:
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 حلًا آخر لإدارة الحزم لـ OSX ، وقد يكون من الأفضل لبعض المستخدمين على Macports. VG يشحن Brewfile
تصف تبعياتها في البيرة ، لذلك من دليل الجذر VG ، يمكنك تثبيت التبعيات ، وفضحها إلى VG ، مثل هذا:
# Install all the dependencies in the Brewfile
brew bundle
مع تثبيت التبعيات ، يمكن الآن بناء VG:
make
كما هو الحال مع Linux ، يمكنك إضافة -j16
أو أرقام أخرى في النهاية لتشغيل مهام بناء متعددة في وقت واحد ، إذا كان الكمبيوتر الخاص بك يمكنه التعامل معها.
لاحظ أنه لا يمكن بناء الثنائيات الساكنة لنظام التشغيل Mac.
يستهدف VG Mac Build مهما كان الإصدار الحالي من Apple Clang ، وأيًا كان إصدار Apple Clang من خلال نظام GitHub Actions Mac CI. إذا كان Clang محدثًا ولم يتم بناء VG لك ، فيرجى فتح مشكلة.
بمجرد إنشاء VG ، سيكون الثنائي في bin/vg
داخل دليل مستودع VG. يمكنك تشغيله مع:
./bin/vg
يمكنك أيضًا إضافة دليله إلى متغير PATH
الخاص بك ، بحيث يمكنك استدعاء vg
من أي دليل. للقيام بذلك على قذيفة zsh
MAC الافتراضية ، استخدم هذا الأمر من دليل مستودع VG:
echo 'export PATH="${PATH}:'"$(pwd)"'/bin"' >>~/.zshrc
ثم أغلق المحطة الخاصة بك وفتح واحدة جديدة. تشغيل vg
للتأكد من أنها تعمل.
تنتقل منصة MAC إلى الذراع ، مع تصميمات Apple M1 و M1 Pro و M1 Max وتصميمات الرقائق اللاحقة. يدعم قاعدة كود VG ARM على MAC وكذلك على Linux. تعمل إرشادات التثبيت العادية على MAC على ذراع المصنع .
ومع ذلك ، من السهل مواجهة المشكلات عند ترحيل بيئة بناء VG العاملة أو ترحيل macports أو homebrew من x86_64 إلى الذراع. يمكن لآلة ARM بنجاح تشغيل أدوات X86_64 المثبتة عبر macports أو homebrew على الجهاز القديم ، ولكن يمكن لـ VG البناء بشكل صحيح على الذراع فقط إذا كنت تستخدم إصدارات ARM من أدوات البناء ، مثل make
و Cmake.
لذلك ، بعد الترحيل إلى MAC ARM باستخدام أدوات ترحيل Apple على سبيل المثال:
make clean
. هذا يجب أن يزيل جميع القطع الأثرية.make
. إذا كنت لا تزال تواجه مشكلات بعد ذلك ، فقم بحذف الخروج بالكامل وتحقق من الكود مرة أخرى ؛ make clean
ليس قيد اختبار CI وليس دائمًا محدثًا مع بقية نظام الإنشاء.
سواء كان ذلك مفيدًا أم لا ، يرجى فتح مشكلة حتى نتمكن من المساعدة في إصلاح البناء أو make clean
.
ملاحظة ، راجع أمثلة
vg autoindex
أدناه للحصول على كيفية استخدام هذه الأداة بدلاً منvg construct
لإنشاء وفهرسة الرسوم البيانية في خطوة واحدة.
تتمثل إحدى طرق إنشاء رسم بياني مع vg
في construct
من مكالمات متغيرة باستخدام ملف fasta المرجعي وملف VCF. إذا كنت تعمل في test/
دليل VG:
vg construct -r small/x.fa -v small/x.vcf.gz > x.vg
لاحظ أنه لإنشاء رسم بياني ، مطلوب فهرس ملف VCF. يمكن إنشاء ملف فهرس VCF باستخدام الأمر tabix
المقدم من Samtools (مثل tabix -p vcf x.vcf.gz
على سطر الأوامر).
يمكنك أيضًا إنشاء رسم بياني (وفهارس لرسم الخرائط مع VG) من مجموعة من مجموعات الجينوم (FARTA) ، على عكس المكالمات المتغيرة كما هو موضح أعلاه ، باستخدام minigraph-cactus.
يدعم vg
العديد من التنسيقات ، والأهم الثلاثة هي:
PackedGraph (.vg)
: هذا هو التنسيق الأصلي vg's
. وهو يدعم تعديلات من جميع الأنواع (إلى الطوبولوجيا والمسارات) ، ولكن يمكن أن يكون غير فعال على المقاييس الكبيرة ، خاصة مع العديد من المسارات.GFA (.gfa)
: GFA هو تنسيق قياسي على النص وعادة ما يكون أفضل طريقة لتبادل الرسوم البيانية بين vg
وأدوات Pangenome الأخرى. يمكن أن تعمل vg
أيضًا على ملفات GFA ( غير مضغوطة ) مباشرة ، عن طريق استخدام تمثيل PackedGraph
في الذاكرة (وبالتالي يشارك في هذا الشواغل المتعلقة بالتحجيم والتحرير).GBZ (.gbz)
: GBZ هو تنسيق مضغوط للغاية يستخدم مساحة أقل بكثير لتخزين المسارات من التنسيقات المذكورة أعلاه ، ولكن على حساب عدم السماح بتحريرات عامة على الرسم البياني. يمكنك الاستعلام عن تنسيق أي رسم بياني باستخدام vg stats -F
.
بشكل عام ، ستقوم ببناء وفهرس الرسوم البيانية vg
باستخدام vg autoindex
(من GFA أو VCF) أو Minigraph-Cactus
(fastas). يمكنك أيضًا استيراد ملفات GFA
من أدوات أخرى مثل ODGI و PGGB باستخدام vg convert -g
.
يمكنك تحويل أي رسم بياني إلى GFA
باستخدام vg convert -f
. بشكل افتراضي ، يستخدم vg
GFA V1.1 حيث يتم تمثيل المسارات كخطوط W. لاستخدام P -Lines بدلاً من ذلك (GFA V1.0) ، استخدم vg convert -fW
.
تنسيق GBZ
يجعل التمييز بين REFERENCE
ومسارات HAPLOTYPE
. يمكن استخدام المسارات REFERENCE
كنظم إحداثيات ولكنها أكثر تكلفة للتخزين. مسارات HAPLOTYPE
مضغوطة للغاية ولكن لا يمكن استخدامها لبحث الموضع. في الرسوم البيانية لـ HPRC على سبيل المثال ، تعد contigs من GRCh38
و CHM13(T2T)
مسارات REFERENCE
وجميع مسارات HAPLOTYPE
الأخرى.
يتم تنفيذ التمييز بين المسارات REFERENCE
والنمط HAPLOTYPE
في التنسيقات الأخرى مثل .vg
و .gfa
لتسهيل التحويل والتعاون. في .gfa
، المسارات REFERENCE
هي خطوط p ، أو الخطوط w التي يتم وضع علامة على أسماء عيناتها في الرأس. الخطوط W التي لا يتم وضع علامة على أسمائها في الرأس هي مسارات HAPLOTYPE
. في .vg
يتم الإشارة إليها باستخدام اتفاقية التسمية.
انظر المسار البيانات الوصفية ويكي لمزيد من التفاصيل.
تحذير
GBZ
هو التنسيق الوحيد الذي يدعم تحميل أعداد كبيرة من مساراتHAPLOTYPE
فيvg
. قد تواجه مشكلات تحاول تحميل الرسوم البيانية للكاملة مع آلافHAPLOTYPE
الفرداني من ملفات.vg
أو.gfa
. يمكن استخدامvg convert -H
لإسقاط مساراتHAPLOTYPE
، مما يسمح بتحميل الرسم البياني بسهولة أكبر بتنسيقات أخرى.
لاحظ أنه من الأفضل استخدام أداة
vg convert
الأحدث (الموضحة أعلاه) لتحويل GFA
توفر vg view
طريقة لتحويل الرسم البياني إلى تنسيقات مختلفة:
# 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
إذا كان لديك أكثر من تسلسل واحد ، أو كنت تعمل على رسم بياني كبير ، فسترغب في التعيين بدلاً من التوافق فقط.
هناك العديد من محركات القراءة في vg
:
vg giraffe
لتكون سريعًا للقراءة القصيرة الدقيقة للغاية ، مقابل الرسوم البيانية التي تحتوي على معلومات النمط الفرداني.vg map
هي خريطة قراءة للأغراض العامة.vg mpmap
يقوم "Multi-المسار" ، للسماح بوصف عدم اليقين المحاذاة المحلية. هذا مفيد للنسخ. vg giraffe
لاستخدام vg giraffe
لخريطة القراءات ، ستحتاج أولاً إلى إعداد الفهارس. من الأفضل القيام بذلك باستخدام vg autoindex
. من أجل الحصول على vg autoindex
لاستخدام معلومات النمط الفرداني من ملف VCF ، يمكنك إعطائها VCF والمرجع الخطي المرتبط به مباشرة.
# 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
يمكن العثور على مزيد من المعلومات حول استخدام vg girafe
على vg
Wiki.
vg map
إذا كان الرسم البياني الخاص بك كبيرًا ، فأنت تريد استخدام vg index
لتخزين الرسم البياني وخريطة vg map
لمحاذاة القراءات. تقوم vg map
بتنفيذ بذرة قائمة على KMER وتوسع نموذج المحاذاة الذي يشبه تلك المستخدمة في المحاذاة مثل Novoalign أو Mosaik. أولاً ، تم تصميم فهرس على القرص مع vg index
الذي يتضمن الرسم البياني نفسه و Kmers بحجم معين. عند رسم الخرائط ، يمكن استخدام أي حجم kmer أقصر من حجم الفهرس ، وبالفئر ، فإن Mapper سيقلل من حجم Kmer لزيادة الحساسية عند فشل المحاذاة عند K معينة.
# 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
يمكن تضمين التباين من المحاذاة مرة أخرى في الرسم البياني. تسمى هذه العملية زيادة ويمكن استخدامها للاتصال المتغير de novo ، على سبيل المثال (انظر أدناه).
تحذير باستخدام
vg augment
للاتصال البديل لا يزال تجريبي للغاية. لا ينصح على الإطلاق بالاتصال البديل الهيكلي ، وحتى بالنسبة للمتغيرات الصغيرة ، ستحصل غالبًا على نتائج أكثر دقة (على الأقل على الإنسان) من خلال إسقاط محاذاةك إلىBAM
وتشغيل المتصل المتغير الخطي مثل DeepVariant.
# 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
ملاحظة يمكن العثور على مزيد من المعلومات في الويكي.
توضح الأمثلة التالية كيفية إنشاء VCF مع VG باستخدام دعم القراءة. أنها تعتمد على الإخراج من أمثلة التعيين والزيادة أعلاه. يمكن استدعاء المتغيرات الصغيرة و SVs باستخدام نفس النهج. حاليا ، هو أكثر دقة ل SVS .
استدعاء المتغيرات فقط الموجودة في الرسم البياني:
# 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
بشكل افتراضي ، يحذف vg call
المتغيرات 0/0
ويحاول تطبيع الأليلات لجعل VCF أكثر إحكاما. يمكن أن تجعل هاتان الخطوتين من الصعب مقارنة المخرجات من عينات مختلفة لأن VCFs سيكون لها إحداثيات مختلفة على الرغم من أنها تم إنشاؤها باستخدام نفس الرسم البياني. يعالج الخيار -a
هذا عن طريق استدعاء كل زماري باستخدام نفس الإحداثيات وتشمل المكالمات المرجعية. يمكن دمج مخرجات للعينات المختلفة مع bcftools merge -m all
.
vg call x.xg -k aln.pack -a > snarl_genotypes.vcf
من أجل النظر أيضًا في المتغيرات الجديدة من القراءات ، استخدم الرسم البياني المعزز و GAM (كما تم إنشاؤه في مثال "التعزيز" باستخدام vg augment -A
):
تحذير باستخدام
vg augment
للاتصال البديل لا يزال تجريبي للغاية. لا ينصح على الإطلاق بالاتصال البديل الهيكلي ، وحتى بالنسبة للمتغيرات الصغيرة ، ستحصل غالبًا على نتائج أكثر دقة (على الأقل على الإنسان) من خلال إسقاط محاذاةك إلىBAM
وتشغيل المتصل المتغير الخطي مثل DeepVariant.
# 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
يمكن أن تستخدم عملية مماثلة عن طريق استخدام المتغيرات الوراثية المعروفة من VCF. للقيام بذلك ، يجب إنشاء الرسم البياني من VCF مع vg construct -a
(الرسوم البيانية من مصادر أخرى مثل vg autoindex
و Minigraph-Cactus
):
# 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
يمكن لتصفية GAM قبل دعم الحوسبة تحسين دقة استدعاء SNP:
# 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
بالنسبة للرسوم البيانية الأكبر ، يوصى بحساب الزحافات بشكل منفصل:
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
ملاحظة: يمكن الآن تشغيل كل من vg augment
و vg pack
vg convert
augment
vg call
و vg snarls
مباشرةً على أي تنسيق للرسم البياني (Ex ' .vg
"أو .xg
vg convert
). يستخدم التشغيل على .vg
أو '.gfa' أكثر الذاكرة ولا ينصح به للرسوم البيانية الكبيرة. لا يمكن قراءة إخراج vg pack
إلا بالاقتران مع نفس الرسم البياني المستخدم لإنشائها ، لذلك لن تعمل vg pack x.vg -g aln.gam -o x.pack
ثم vg call x.xg -k x.pack
.
استنتاج المتغيرات من من محاذاة ضمنية مسارات في الرسم البياني. يمكن استخدام هذا ، على سبيل المثال ، لاستدعاء SVS مباشرة من رسم بياني تباين تم إنشاؤه من محاذاة متعددة من التجميعات المختلفة:
# 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
يمكن النظر في مسارات النمط الفرداني من .gbz
أو .gbwt
فهارس الإدخال باستخدام -z
و "-G" ، على التوالي.
كما هو الحال مع vg call
، من الأفضل حساب الزماريات بشكل منفصل وتمريرها مع -r
عند العمل مع الرسوم البيانية الكبيرة.
لدى vg
عددًا من الأدوات لدعم التحليلات النصية مع الرسوم البيانية المقسمة (أي الرسوم البيانية التي تحتوي على تقاطعات لصق مشروحة كحواف في الرسم البياني). يمكن إضافة هذه الحواف إلى رسم بياني موجود باستخدام vg rna
. يمكننا بعد ذلك إجراء رسم خرائط لعلاج لصق لهذه الرسوم البيانية باستخدام vg mpmap
. قام مطورو vg
أيضًا بعمل أداة لتقدير النص على النمط الفرداني على أساس هذه الأدوات في rpvg
. أسهل طريقة لبدء خط الأنابيب هذا هي استخدام اللوم الفرعي vg autoindex
لصنع فهارس vg mpmap
. vg autoindex
ينشئ فهارس لرسم الخرائط من تنسيقات التبادل الشائعة مثل Fasta و VCF و GTF.
يتوفر مزيد من المعلومات في صفحة Wiki على Transcriptomics.
العمل من test/
الدليل يوضح المثال التالي كيفية إنشاء رسم بياني وفهارس pangenome المقسوم باستخدام vg autoindex
مع 4 مؤشرات ترابط:
# 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 إلى الرسم البياني pangenome المقسوم باستخدام vg mpmap
مع 4 مؤشرات ترابط:
# 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
هذا سوف ينتج محاذاة في تنسيق multipath. لمزيد من المعلومات حول تنسيق محاذاة multipath و vg mpmap
انظر صفحة wiki على mpMAP. يجب أن يستغرق تشغيل الأوامر على بيانات المثال الصغير باستخدام 4 مؤشرات ترابط على معظم الآلات أقل من دقيقة.
إذا كان لديك رسم بياني صغير ، فيمكنك محاذاة تسلسل إلى الرسم البياني بأكمله ، باستخدام محاذاة ترتيب جزئي كامل الطول:
vg align -s CTACTGACAGCAGAAGTTTGCTGTGAAGATTAAATTAGGTGATGCTTG x.vg
لاحظ أنه لا يتعين عليك تخزين الرسم البياني على القرص على الإطلاق ، يمكنك ببساطة تنشيطه في المحاذاة المحلية:
vg construct -r small/x.fa -v small/x.vcf.gz | vg align -s CTACTGACAGCAGAAGTTTGCTGTGAAGATTAAATTAGGTGATGCTTG -
تسمح معظم الأوامر ببث الرسوم البيانية داخل وخارج vg
.
تتوفر مجموعة متنوعة من الأوامر:
vg
عبارة عن مجموعة من الأدوات تعتمد على نموذج بيانات شائع (الرسم البياني للتغيير) الذي يوصف بواسطة مخطط protobuf (VG.Proto). قد يتم تسلسل كائنات البيانات المحددة في VG.Proto عبر نمط دفق محدد في Stream.hpp. ليس من الضروري كتابة التعليمات البرمجية في VG من أجل الواجهة مع الخوارزميات المحددة هنا. بدلاً من ذلك ، يكون من الأسهل في بعض الأحيان كتابة خوارزمية خارجية تقرأ وتكتب نفس تنسيقات البيانات.
معهد ماساتشوستس للتكنولوجيا