CATATAN: Ini adalah LUMPY 0.2.13 dengan perubahan tambahan untuk memungkinkan lumpyexpress berfungsi ketika file utama adalah CRAM, bukan BAM. Pemisah dan sumbang tetap harus berupa file BAM karena LUMPY sendiri belum mendukung CRAM sebagai input. Ini memerlukan perintah hexdump tersedia.
Untuk pertanyaan dan diskusi mengenai LUMPY silakan kunjungi forum di:
https://groups.google.com/forum/#!forum/lumpy-discuss
Kerangka probabilistik untuk penemuan varian struktural.
Ryan M Layer, Colby Chiang, Aaron R Quinlan, dan Ira M Hall. 2014. "LUMPY: Kerangka Probabilistik untuk Penemuan Varian Struktural." Biologi Genom 15 (6): R84. doi:10.1186/gb-2014-15-6-r84.
Perhatikan bahwa smoove adalah cara yang direkomendasikan untuk menjalankan lumpy
karena ia mengumpulkan praktik terbaik dari alat lumpy
dan terkait serta akan memiliki waktu proses yang lebih singkat dan tingkat positif palsu yang lebih rendah daripada lumpyexpress
yang dijelaskan di bawah.
Unduh dan instal
git clone --recursive https://github.com/arq5x/lumpy-sv.git
cd lumpy-sv
make
cp bin/* /usr/local/bin/.
Jalankan LUMPY Ekspres
lumpyexpress
-B my.bam
-S my.splitters.bam
-D my.discordants.bam
-o output.vcf
Metode default untuk menginstal:
git clone --recursive [email protected]:arq5x/lumpy-sv.git
cd lumpy-sv
make
cp bin/* /usr/local/bin/.
Menginstal dengan costom zlib (kesalahan kompilasi gzopen64):
git clone --recursive [email protected]:arq5x/lumpy-sv.git
cd lumpy-sv
export ZLIB_PATH="/usr/lib/x86_64-linux-gnu/"; #when /usr/lib/x86_64-linux-gnu/libz.so
make
cp bin/* /usr/local/bin/.
Deteksi breakpoint otomatis untuk analisis standar.
usage: lumpyexpress [options]
Argumen yang diperlukan
-B FILE coordinate-sorted BAM file(s) (comma separated)
-S FILE split reads BAM file(s) (comma separated)
-D FILE discordant reads BAM files(s) (comma separated)
Argumen opsional
-o STR output [fullBam.bam.vcf]
-x FILE BED file to exclude
-P output probability curves for each variant
-m INT minimum sample weight for a call [4]
-r FLOAT trim threshold [0]
-T DIR temp directory [./output_prefix.XXXXXXXXXXXX]
-k keep temporary files
-K FILE path to lumpyexpress.config file
(default: same directory as lumpyexpress)
-v verbose
-h show this message
LUMPY Express menjalankan beberapa program eksternal yang jalurnya ditentukan di scripts/lumpyexpress.config. Konfigurasi ini harus berada di direktori yang sama dengan lumpyexpress, atau ditentukan secara eksplisit dengan flag -K.
Instalasi Makefile secara otomatis menghasilkan file lumpyexpress.config dan menempatkannya di direktori "bin".
LUMPY Express mengharapkan file BAM yang selaras dengan BWA-MEM sebagai masukan. Secara otomatis mem-parsing informasi sampel, perpustakaan, dan membaca grup menggunakan tag @RG di header BAM. Setiap file BAM diharapkan berisi tepat satu sampel.
Input minimum adalah file BAM yang diurutkan secara koordinat (-B), dari mana LUMPY Express mengekstrak splitter dan sumbang menggunakan SAMBLASTER sebelum menjalankan LUMPY. Secara opsional, pengguna dapat menyediakan file BAM pemisah yang diurutkan secara koordinat (-S) dan sumbang (-D) yang akan melewati ekstraksi SAMBLASTER untuk analisis yang lebih cepat.
LUMPY Express menghasilkan file VCF sesuai dengan spesifikasi VCF 4.2.
Deteksi breakpoint yang fleksibel dan dapat disesuaikan untuk pengguna tingkat lanjut.
usage: lumpy [options]
Pilihan
-g Genome file (defines chromosome order)
-e Show evidence for each call
-w File read windows size (default 1000000)
-mw minimum weight across all samples for a call
-msw minimum per-sample weight for a call
-tt trim threshold
-x exclude file bed file
-t temp file prefix, must be to a writeable directory
-P output probability curve for each variant
-b output as BEDPE instead of VCF
-sr bam_file:,
id:,
back_distance:,
min_mapping_threshold:,
weight:,
min_clip:,
read_group:
-pe bam_file:,
id:,
histo_file:,
mean:,
stdev:,
read_length:,
min_non_overlap:,
discordant_z:,
back_distance:,
min_mapping_threshold:,
weight:,
read_group:
-bedpe bedpe_file:,
id:,
weight:
Kami merekomendasikan menyelaraskan data dengan SpeedSeq, yang melakukan penyelarasan BWA-MEM, menandai duplikat dan mengekstrak pasangan baca yang terpisah dan sumbang.
speedseq align -R "@RGtID:idtSM:sampletLB:lib"
human_g1k_v37.fasta
sample.1.fq
sample.2.fq
Jika tidak, data mungkin selaras dengan BWA-MEM.
# Align the data
bwa mem -R "@RGtID:idtSM:sampletLB:lib" human_g1k_v37.fasta sample.1.fq sample.2.fq
| samblaster --excludeDups --addMateTags --maxSplitCount 2 --minNonOverlap 20
| samtools view -S -b -
> sample.bam
# Extract the discordant paired-end alignments.
samtools view -b -F 1294 sample.bam > sample.discordants.unsorted.bam
# Extract the split-read alignments
samtools view -h sample.bam
| scripts/extractSplitReads_BwaMem -i stdin
| samtools view -Sb -
> sample.splitters.unsorted.bam
# Sort both alignments
samtools sort sample.discordants.unsorted.bam sample.discordants
samtools sort sample.splitters.unsorted.bam sample.splitters
LUMPY memiliki dua alternatif eksekusi yang berbeda. LUMPY Express adalah pembungkus yang disederhanakan untuk analisis standar. LUMPY (tradisional) lebih dapat disesuaikan, untuk pengguna tingkat lanjut dan eksperimen khusus.
Jalankan LUMPY Express pada satu sampel dengan splitter dan sumbang yang telah diekstraksi sebelumnya
lumpyexpress
-B sample.bam
-S sample.splitters.bam
-D sample.discordants.bam
-o sample.vcf
Jalankan LUMPY Express secara bersamaan pada beberapa sampel dengan splitter dan sumbang yang telah diekstraksi sebelumnya
lumpyexpress
-B sample1.bam,sample2.bam,sample3.bam
-S sample1.splitters.bam,sample2.splitters.bam,sample3.splitters.bam
-D sample1.discordants.bam,sample2.discordants.bam,sample3.discordants.bam
-o multi_sample.vcf
Jalankan LUMPY Express pada pasangan yang tumornya normal
lumpyexpress
-B tumor.bam,normal.bam
-S tumor.splitters.bam,normal.splitters.bam
-D tumor.discordants.bam,normal.discordants.bam
-o tumor_normal.vcf
Pertama, buat statistik ukuran penyisipan empiris pada setiap perpustakaan di file BAM
samtools view -r readgroup1 sample.bam
| tail -n+100000
| scripts/pairend_distro.py
-r 101
-X 4
-N 10000
-o sample.lib1.histo
Script di atas (scripts/pairend_distro.py) akan menampilkan mean dan stdev ke layar. Untuk contoh ini kita asumsikan meannya adalah 500 dan stdevnya adalah 50.
Jalankan LUMPY dengan pembacaan berpasangan dan pembacaan terpisah.
lumpy
-mw 4
-tt 0
-pe id:sample,bam_file:sample.discordants.bam,histo_file:sample.lib1.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-sr id:sample,bam_file:sample.splitters.bam,back_distance:10,weight:1,min_mapping_threshold:20
> sample.vcf
Jalankan LUMPY pada file BAM dengan banyak perpustakaan.
lumpy
-mw 4
-tt 0
-pe id:sample,read_group:rg1,bam_file:sample.discordants.bam,histo_file:sample.lib1.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-pe id:sample,read_group:rg2,bam_file:sample.discordants.bam,histo_file:sample.lib2.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-sr id:sample,bam_file:sample.splitters.bam,back_distance:10,weight:1,min_mapping_threshold:20
> sample.vcf
Jalankan LUMPY pada banyak sampel dengan banyak perpustakaan.
lumpy
-mw 4
-tt 0
-pe id:sample1,bam_file:sample1.discordants.bam,read_group:rg1,read_group:rg2,histo_file:sample1.lib1.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-pe id:sample1,bam_file:sample1.discordants.bam,read_group:rg3,histo_file:sample1.lib2.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-pe id:sample2,bam_file:sample2.discordants.bam,read_group:rg4,histo_file:sample2.lib1.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,min_mapping_threshold:20
-sr id:sample1,bam_file:sample1.splitters.bam,back_distance:10,weight:1,min_mapping_threshold:20
-sr id:sample2,bam_file:sample2.splitters.bam,back_distance:10,weight:1,min_mapping_threshold:20
> multi_sample.vcf
Jalankan LUMPY dengan mengecualikan wilayah dengan kompleksitas rendah.
Heng Li memberikan serangkaian wilayah dengan kompleksitas rendah dalam informasi tambahan makalahnya, "Menuju pemahaman yang lebih baik tentang artefak dalam pemanggilan varian dari sampel dengan cakupan tinggi" di https://doi.org/10.1093/bioinformatics/btu356.
unzip btu356_Supplementary_Data.zip
unzip btu356-suppl_data.zip
lumpy
-mw 4
-tt 0.0
-x btu356_LCR-hs37d5.bed/btu356_LCR-hs37d5.bed
-pe bam_file:sample.discordants.bam,histo_file:sample.pe.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,id:sample,min_mapping_threshold:1
-sr bam_file:sample.sr.sort.bam,back_distance:10,weight:1,id:sample,min_mapping_threshold:1
> sample.exclude.vcf
Jalankan LUMPY dengan mengecualikan wilayah dengan cakupan yang sangat tinggi.
Kita dapat mengarahkan lumpy untuk mengabaikan wilayah tertentu dengan menggunakan opsi kecualikan wilayah. Dalam contoh ini kami menemukan dan kemudian mengecualikan wilayah yang memiliki cakupan sangat tinggi. Pertama kita menggunakan skrip get_coverages.py untuk menemukan cakupan min, maks, dan rata-rata dari file sr dan pe bam, dan untuk membuat profil cakupan untuk kedua file.
python ../scripts/get_coverages.py
sample.pe.sort.bam
sample.sr.sort.bam
# sample.pe.sort.bam.coverage min:1 max:14 mean(non-zero):2.35557521272
# sample.sr.sort.bam.coverage min:1 max:7 mean(non-zero):1.08945936729
Dari keluaran ini, kami akan memilih untuk mengecualikan wilayah yang memiliki cakupan lebih dari 10x. Untuk membuat file pengecualian kita akan menggunakan skrip get_exclude_regions.py untuk membuat file pengecualian.bed
python ../scripts/get_exclude_regions.py
10
exclude.bed
sample.pe.sort.bam
sample.sr.sort.bam
Kami sekarang menjalankan kembali lumpy dengan opsi kecualikan (-x).
lumpy
-mw 4
-tt 0.0
-x exclude.bed
-pe bam_file:sample.discordants.bam,histo_file:sample.pe.histo,mean:500,stdev:50,read_length:101,min_non_overlap:101,discordant_z:5,back_distance:10,weight:1,id:sample,min_mapping_threshold:1
-sr bam_file:sample.sr.sort.bam,back_distance:10,weight:1,id:sample,min_mapping_threshold:1
> sample.exclude.vcf
SVTyper dapat memanggil genotipe pada file VCF keluaran LUMPY menggunakan algoritma kemungkinan maksimum Bayesian.
svtyper
-B sample.bam
-S sample.splitters.bam
-i sample.vcf
> sample.gt.vcf
Skrip test/test.sh
dijalankan secara bersamaan terhadap beberapa kumpulan data simulasi dan membandingkan hasilnya dengan hasil benar yang diketahui. Contoh kumpulan data dapat ditemukan di http://layerlab.org/lumpy/data.tar.gz. Bola tar ini harus diekstraksi ke direktori kental tingkat atas. Skrip test/test.sh
memeriksa keberadaan direktori ini sebelum menjalankan LUMPY.
Semua file bam yang proses kentalnya harus diurutkan posisinya. Untuk memeriksa apakah bams Anda diurutkan dengan benar, gunakan skrip check_sorting.py
python ../scripts/check_sorting.py
pe.pos_sorted.bam
sr.pos_sorted.bam
pe.name_sorted.bam
# pe.pos_sorted.bam
# in order
# sr.pos_sorted.bam
# in order
# pe.name_sorted.bam
# out of order: chr10 102292476 occurred after chr10 102292893