กราฟการเปลี่ยนแปลง ให้การเข้ารหัสแบบย่อของลำดับของจีโนมจำนวนมาก กราฟรูปแบบ (โดยเฉพาะอย่างยิ่งที่ใช้ใน 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 คุณสามารถสร้างได้จากแหล่งที่มาแทน
ก่อนอื่นรับ repo และ submodules:
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
ใน distros อื่น ๆ หรือถ้าคุณไม่มีการเข้าถึงรูทคุณจะต้องดำเนินการเทียบเท่า:
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 ไม่ได้จัดส่ง protobuf ใหม่เพียงพอ VG ต้องการ Protobuf 3 ซึ่งจะต้องติดตั้งด้วยตนเอง
ในปัจจุบันคุณจะต้องใช้ GCC เวอร์ชัน 4.9 หรือมากกว่าโดยรองรับ C ++ 14 เพื่อรวบรวม VG (ตรวจสอบเวอร์ชันของคุณด้วย gcc --version
) รองรับ GCC สูงสุด 11.2.0
อาจจำเป็นต้องใช้ห้องสมุดอื่น ๆ โปรดรายงานปัญหาการสร้างใด ๆ
โปรดทราบว่าจำเป็นต้องใช้ระบบปฏิบัติการ 64 บิต Ubuntu 20.04 ควรทำงาน
เมื่อคุณพร้อมให้สร้างด้วย make
คุณสามารถใช้ make -j16
เพื่อเรียกใช้เธรด 16 ครั้งในแต่ละครั้งซึ่งเร่งกระบวนการอย่างมาก หากคุณมีคอร์ CPU มากขึ้นคุณสามารถใช้ตัวเลขที่สูงขึ้น
โปรดทราบว่า VG สามารถใช้เวลาได้ทุกที่จาก 10 นาทีถึงมากกว่าหนึ่งชั่วโมงเพื่อรวบรวมขึ้นอยู่กับเครื่องของคุณและจำนวนเธรดที่ใช้
นอกจากนี้คุณยังสามารถผลิตไบนารีแบบคงที่ด้วย make static
โดยสมมติว่าคุณมีรุ่นคงที่ของการพึ่งพาทั้งหมดที่ติดตั้งในระบบของคุณ
เมื่อ VG ถูกสร้างขึ้นไบนารีจะอยู่ที่ bin/vg
ภายในไดเรกทอรีที่เก็บ VG คุณสามารถเรียกใช้ด้วย:
./bin/vg
นอกจากนี้คุณยังสามารถเพิ่มไดเรกทอรีลงในตัวแปร PATH
Enviornment ของคุณเพื่อให้คุณสามารถเรียกใช้ vg
จากไดเรกทอรีใด ๆ ในการทำเช่นนั้นบน Bash ให้ใช้คำสั่งนี้จากไดเรกทอรีที่เก็บ 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
ที่อธิบายถึงการพึ่งพา homebrew ดังนั้นจากไดเรกทอรีรูท 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 ของเรา หากเสียงดังของคุณทันสมัยและ VG ไม่ได้สร้างให้คุณโปรดเปิดปัญหา
เมื่อ VG ถูกสร้างขึ้นไบนารีจะอยู่ที่ bin/vg
ภายในไดเรกทอรีที่เก็บ VG คุณสามารถเรียกใช้ด้วย:
./bin/vg
นอกจากนี้คุณยังสามารถเพิ่มไดเรกทอรีลงในตัวแปร PATH
Enviornment ของคุณเพื่อให้คุณสามารถเรียกใช้ vg
จากไดเรกทอรีใด ๆ ในการทำเช่นนั้นบนเชลล์ zsh
Mac เริ่มต้นใช้คำสั่งนี้จากไดเรกทอรีที่เก็บ VG:
echo 'export PATH="${PATH}:'"$(pwd)"'/bin"' >>~/.zshrc
จากนั้นปิดเทอร์มินัลของคุณและเปิดใหม่ เรียกใช้ vg
เพื่อให้แน่ใจว่ามันใช้งานได้
แพลตฟอร์ม Mac กำลังเคลื่อนที่ไปที่แขนด้วย M1, M1 Pro, M1 Max และการออกแบบชิปที่ตามมา VG Codebase รองรับ ARM บน Mac เช่นเดียวกับ Linux คำแนะนำการติดตั้งปกติทำงานบน Mac แขนสดจากโรงงาน
อย่างไรก็ตามมันเป็นเรื่องง่ายที่จะพบปัญหาเมื่อ ย้ายสภาพแวดล้อมการสร้าง VG ที่ใช้งานได้ หรือ ย้าย MacPorts หรือ Homebrew จาก X86_64 ไปยังแขน เครื่องแขนสามารถเรียกใช้เครื่องมือ x86_64 ได้สำเร็จซึ่งติดตั้งผ่าน MacPorts หรือ Homebrew บนเครื่องเก่า แต่ VG สามารถสร้างได้อย่างถูกต้องบนแขนหากคุณใช้เครื่องมือสร้างรุ่น ARM เช่น make
and CMake
ดังนั้นหลังจากย้ายไปยังแขน Mac โดยใช้เครื่องมือการย้ายถิ่นของ 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) จากชุดของชุดประกอบจีโนม (FASTA) ซึ่งตรงข้ามกับการโทรที่แตกต่างกันตามที่อธิบายไว้ข้างต้นโดยใช้ 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-LINES หากต้องการใช้ 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-LINES หรือ W-LINE ที่มีชื่อตัวอย่างถูกตั้งค่าสถานะในส่วนหัว W-lines ที่ไม่มีชื่อที่ไม่ได้ตั้งค่าสถานะในส่วนหัวคือเส้นทาง HAPLOTYPE
ใน .vg
พวกเขาแสดงโดยใช้การตั้งชื่อการประชุม
ดู Metadata Wiki สำหรับรายละเอียดเพิ่มเติม
คำเตือน
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
ได้รับการออกแบบให้รวดเร็วสำหรับการอ่านระยะสั้นที่แม่นยำสูงเทียบกับกราฟที่มีข้อมูล haplotypevg map
เป็นแผนที่อ่านอเนกประสงค์ทั่วไปvg mpmap
ทำการแมป "หลายเส้นทาง" เพื่อให้สามารถอธิบายความไม่แน่นอนของการจัดตำแหน่งในท้องถิ่นได้ สิ่งนี้มีประโยชน์สำหรับ transcriptomics vg giraffe
ในการใช้ vg giraffe
เพื่อแมปอ่านคุณจะต้องเตรียมดัชนีก่อน สิ่งนี้ทำได้ดีที่สุดโดยใช้ vg autoindex
เพื่อให้ vg autoindex
ใช้ข้อมูล haplotype จากไฟล์ 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
การเปลี่ยนแปลงจากการจัดตำแหน่งสามารถฝังกลับเข้าไปในกราฟ กระบวนการนี้เรียกว่าการเพิ่มและสามารถใช้สำหรับการโทรแบบ เดอโนโว ตัวอย่างเช่น (ดูด้านล่าง)
คำเตือน โดยใช้
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
อยู่ที่นี่โดยเรียกทุก SNARL โดยใช้พิกัดเดียวกันและรวมถึงการโทรอ้างอิง เอาต์พุตสำหรับตัวอย่างที่แตกต่างกันสามารถรวมกับ bcftools merge -m all
vg call x.xg -k aln.pack -a > snarl_genotypes.vcf
เพื่อที่จะพิจารณาตัวแปร นวนิยาย จากการอ่านให้ใช้กราฟและ GAM ที่เพิ่มขึ้น (ตามที่สร้างขึ้นในตัวอย่าง "Augmentation" โดยใช้ 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
การกรองเกมก่อนการสนับสนุนการคำนวณสามารถปรับปรุงความแม่นยำของการโทร 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 call
และ vg snarls
สามารถทำงานได้โดยตรงในรูปแบบกราฟใด ๆ (ex '.gbz', '.gfa', .vg
, .xg
(ยกเว้น augment
) หรือ vg convert
ก็ตาม vg convert
). การใช้งานบน .vg
หรือ '.gfa' ใช้หน่วยความจำมากที่สุดและไม่แนะนำสำหรับกราฟขนาดใหญ่ เอาต์พุต vg call x.xg -k x.pack
vg pack x.vg -g aln.gam -o x.pack
vg 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
เส้นทาง Haplotype จาก .gbz
หรือ .gbwt
ดัชนีอินพุตสามารถพิจารณาได้โดยใช้ -z
และ `-G 'ตามลำดับ
เช่นเดียวกับ vg call
มันเป็นการดีที่สุดที่จะคำนวณคำรามแยกกันและส่งผ่านด้วย -r
เมื่อทำงานกับกราฟขนาดใหญ่
vg
มีเครื่องมือจำนวนมากที่สนับสนุนการวิเคราะห์ transcriptomic ด้วยกราฟ spliced (เช่นกราฟที่มีการแยกการประกบกันเพิ่มเป็นขอบลงในกราฟ) ขอบเหล่านี้สามารถเพิ่มลงในกราฟที่มีอยู่โดยใช้ vg rna
จากนั้นเราสามารถทำการแมปที่รับรู้การประกบกับกราฟเหล่านี้โดยใช้ vg mpmap
นักพัฒนา vg
ยังได้สร้างเครื่องมือสำหรับการวัดปริมาณการถอดเสียงแบบ haplotype ที่รับรู้ตามเครื่องมือเหล่านี้ใน rpvg
วิธีที่ง่ายที่สุดในการเริ่มต้นไปป์ไลน์นี้คือการใช้คำสั่งย่อย vg autoindex
เพื่อสร้างดัชนีสำหรับ vg mpmap
vg autoindex
สร้างดัชนีสำหรับการแมปจากรูปแบบการแลกเปลี่ยนทั่วไปเช่น FASTA, VCF และ GTF
ข้อมูลเพิ่มเติมมีอยู่ในหน้า wiki บน transcriptomics
การทำงานจาก test/
ไดเรกทอรีตัวอย่างต่อไปนี้แสดงวิธีสร้างกราฟ pangenome spliced และดัชนีโดยใช้ 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 spliced โดยใช้ 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 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการจัดตำแหน่งแบบมัลติพา ธ และ 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
เป็นชุดของเครื่องมือที่ใช้โมเดลข้อมูลทั่วไป (กราฟการเปลี่ยนแปลง) ที่อธิบายโดย schema protobuf (vg.proto) วัตถุข้อมูลที่กำหนดไว้ใน vg.proto อาจถูกทำให้เป็นอนุกรมผ่านรูปแบบสตรีมที่กำหนดไว้ใน stream.hpp ไม่จำเป็นต้องเขียนโค้ดใน VG เพื่อเชื่อมต่อกับอัลกอริทึมที่กำหนดไว้ที่นี่ แต่บางครั้งก็ง่ายกว่าที่จะเขียนอัลกอริทึมภายนอกที่อ่านและเขียนรูปแบบข้อมูลเดียวกัน
มิกซ์