{"id":13704016,"url":"https://github.com/dellytools/delly","last_synced_at":"2025-10-21T05:18:22.308Z","repository":{"id":11860379,"uuid":"14419440","full_name":"dellytools/delly","owner":"dellytools","description":"DELLY2: Structural variant discovery by integrated paired-end and split-read analysis","archived":false,"fork":false,"pushed_at":"2024-10-24T09:02:38.000Z","size":39443,"stargazers_count":438,"open_issues_count":47,"forks_count":137,"subscribers_count":34,"default_branch":"main","last_synced_at":"2024-10-25T06:10:12.355Z","etag":null,"topics":["cancer-genomics","delly","delly-users","genomic","germline","rearrangement","structural-variation","sv-discovery","svs","tumor"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dellytools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-15T08:51:49.000Z","updated_at":"2024-10-24T09:02:42.000Z","dependencies_parsed_at":"2023-10-16T23:55:59.126Z","dependency_job_id":"b7b5598c-0a23-4ca9-a759-0bb11257397e","html_url":"https://github.com/dellytools/delly","commit_stats":{"total_commits":1335,"total_committers":12,"mean_commits":111.25,"dds":"0.14007490636704123","last_synced_commit":"9fefdc8127138f6543b86bf850b0850b5bc1d6ee"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellytools%2Fdelly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellytools%2Fdelly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellytools%2Fdelly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellytools%2Fdelly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dellytools","download_url":"https://codeload.github.com/dellytools/delly/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224439660,"owners_count":17311496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cancer-genomics","delly","delly-users","genomic","germline","rearrangement","structural-variation","sv-discovery","svs","tumor"],"created_at":"2024-08-02T21:01:03.035Z","updated_at":"2025-10-21T05:18:17.254Z","avatar_url":"https://github.com/dellytools.png","language":"C++","funding_links":[],"categories":["Next Generation Sequencing"],"sub_categories":["Variant Calling"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://academic.oup.com/bioinformatics/article/28/18/i333/245403/DELLY-structural-variant-discovery-by-integrated\"\u003e\n    \u003cimg height=\"150\" src=\"https://raw.githubusercontent.com/dellytools/assets/main/delly-logo/delly-logo-539x600.png\"\u003e\n  \u003c/a\u003e\n  \u003ch1 align=\"center\"\u003eDelly\u003c/h1\u003e\n\u003c/p\u003e\n\n[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat-square)](http://bioconda.github.io/recipes/delly/README.html)\n[![Anaconda-Server Badge](https://anaconda.org/bioconda/delly/badges/downloads.svg)](https://anaconda.org/bioconda/delly)\n[![C/C++ CI](https://github.com/dellytools/delly/workflows/C/C++%20CI/badge.svg)](https://github.com/dellytools/delly/actions)\n[![Docker CI](https://github.com/dellytools/delly/workflows/Docker%20CI/badge.svg)](https://hub.docker.com/r/dellytools/delly/)\n[![GitHub license](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://github.com/dellytools/delly/blob/main/LICENSE)\n[![GitHub Releases](https://img.shields.io/github/release/dellytools/delly.svg)](https://github.com/dellytools/delly/releases)\n\nDelly is an integrated structural variant (SV) prediction method that can discover, genotype and visualize deletions, tandem duplications, inversions and translocations at single-nucleotide resolution in short-read and long-read massively parallel sequencing data. It uses paired-ends, split-reads and read-depth to sensitively and accurately delineate genomic rearrangements throughout the genome.\n\n# Installing Delly\n\nDelly is available as a [statically linked binary](https://github.com/dellytools/delly/releases/), a [singularity container (SIF file)](https://github.com/dellytools/delly/releases/), a [docker container](https://hub.docker.com/r/dellytools/delly/) or via [Bioconda](https://anaconda.org/bioconda/delly). You can also build Delly from source using a recursive clone and make. \n\n`git clone --recursive https://github.com/dellytools/delly.git`\n\n`cd delly/`\n\n`make all`\n\nThere is a Delly discussion group [delly-users](http://groups.google.com/d/forum/delly-users) for usage and installation questions.\n\n\n# Delly multi-threading mode\n\nDelly supports parallel computing using the OpenMP API (www.openmp.org).\n\n`make PARALLEL=1 src/delly`\n\nYou can set the number of threads using the environment variable OMP_NUM_THREADS.\n\n`export OMP_NUM_THREADS=2`\n\nDelly primarily parallelizes on the sample level. Hence, OMP_NUM_THREADS should be always smaller or equal to the number of input samples. \n\n\n# Running Delly\n\nDelly needs a sorted, indexed and duplicate marked bam file for every input sample.\nAn indexed reference genome is required to identify split-reads.\nCommon workflows for germline and somatic SV calling are outlined below.\n\n`delly call -g hg38.fa input.bam \u003e delly.vcf`\n\nYou can also specify an output file in [BCF](http://samtools.github.io/bcftools/) format.\n\n`delly call -o delly.bcf -g hg38.fa input.bam`\n\n`bcftools view delly.bcf \u003e delly.vcf`\n\n\nExample\n-------\n\nA small example is included for short-read, long-read and copy-number variant calling.\n\n`delly call -g example/ref.fa -o sr.bcf example/sr.bam`\n\n`delly lr -g example/ref.fa -o lr.bcf example/lr.bam`\n\n`delly cnv -g example/ref.fa -m example/map.fa.gz -c out.cov.gz -o cnv.bcf example/sr.bam`\n\nMore in-depth tutorials for SV calling are available here:\n\n* Short-read SV calling: [https://github.com/tobiasrausch/vc](https://github.com/tobiasrausch/vc)\n\n* Long-read SV calling: [https://github.com/tobiasrausch/sv](https://github.com/tobiasrausch/sv)\n\n\nSomatic SV calling\n------------------\n\n* At least one tumor sample and a matched control sample are required for SV discovery\n\n`delly call -x hg38.excl -o t1.bcf -g hg38.fa tumor1.bam control1.bam`\n\n* Somatic pre-filtering requires a tab-delimited sample description file where the first column is the sample id (as in the VCF/BCF file) and the second column is either tumor or control.\n\n`delly filter -f somatic -o t1.pre.bcf -s samples.tsv t1.bcf`\n\n* Genotype pre-filtered somatic sites across a larger panel of control samples to efficiently filter false postives and germline SVs. For performance reasons, this can be run in parallel for each sample of the control panel and you may want to combine multiple pre-filtered somatic site lists from multiple tumor samples.\n\n`delly call -g hg38.fa -v t1.pre.bcf -o geno.bcf -x hg38.excl tumor1.bam control1.bam ... controlN.bam`\n\n* Post-filter for somatic SVs using all control samples.\n\n`delly filter -f somatic -o t1.somatic.bcf -s samples.tsv geno.bcf`\n\n\n\nGermline SV calling\n-------------------\n\n* SV calling is done by sample for high-coverage genomes or in small batches for low-coverage genomes\n\n`delly call -g hg38.fa -o s1.bcf -x hg38.excl sample1.bam`\n\n* Merge SV sites into a unified site list \n\n`delly merge -o sites.bcf s1.bcf s2.bcf ... sN.bcf`\n\n* Genotype this merged SV site list across all samples. This can be run in parallel for each sample.\n\n`delly call -g hg38.fa -v sites.bcf -o s1.geno.bcf -x hg38.excl s1.bam`\n\n`delly call -g hg38.fa -v sites.bcf -o sN.geno.bcf -x hg38.excl sN.bam`\n\n* Merge all genotyped samples to get a single VCF/BCF using bcftools merge\n\n`bcftools merge -m id -O b -o merged.bcf s1.geno.bcf s2.geno.bcf ... sN.geno.bcf`\n\n* Apply the germline SV filter which requires at least 20 unrelated samples\n\n`delly filter -f germline -o germline.bcf merged.bcf`\n\n\nDelly for long reads from PacBio or ONT\n---------------------------------------\n\nDelly also supports long-reads for SV discovery.\n\n`delly lr -y ont -o delly.bcf -g hg38.fa input.bam`\n\n`delly lr -y pb -o delly.bcf -g hg38.fa input.bam`\n\n\nAlternate alignments for genome graphs\n--------------------------------------\n\nInstead of providing only one input alignment, delly supports now multiple alternate alignments on different linear reference genomes using [minimap2](https://github.com/lh3/minimap2) or pan-genome graphs using [minigraph](https://github.com/lh3/minigraph).\n\n```\nminimap2 -ax map-pb -L chm13.fa sample.fq.gz\nminigraph --vc -cx lr pangenome.gfa.gz sample.fq.gz\n```\n\nIf the above alignment files are then stored as `sample.chm13.bam` and `sample.gaf.gz` you can use a simple tab-delimited config file for all alternate alignments with delly.\n\n`cat align.config`\n\n```\nsample.chm13.bam   chm13.fa\nsample.gaf.gz   pangenome.gfa.gz\n```\n\n`delly lr -y pb -o delly.bcf -g hg38.fa -l align.config sample.hg38.bam`\n\nStructural variants are still reported with respect to GRCh38 coordinates but the output will only contain SVs that are not present in any of the alternate alignments. For pangenome graphs you may want to try the [augmented graph](https://ftp.1000genomes.ebi.ac.uk/vol1/ftp/data_collections/1KG_ONT_VIENNA/release/v1.0/augmented_graph/) from this [study](https://www.biorxiv.org/content/10.1101/2024.04.18.590093v1). Please note that this graph contains only SVs greater 50bp so you need to filter the above delly output to match the size range using [bcftools](https://github.com/samtools/bcftools).\n\n`bcftools view -i '(QUAL\u003e=300) \u0026\u0026 ( ((SVTYPE==\"INS\") \u0026\u0026 (INFO/SVLEN\u003e50)) || (SVTYPE=\"BND\") || ((INFO/END - POS)\u003e50) )' delly.bcf`\n\nPlease note that for inter-chromosomal translocations, delly uses `INFO/CHR2` for the second chromosome. You can convert an inter-chromosomal translocation to the two-record breakend format using:\n\n`python scripts/delly2bnd.py -v delly.bcf -r hg38.fa -o delly.bnd.bcf`\n\n\nRead-depth profiles and copy-number variant calling\n---------------------------------------------------\n\nYou can generate read-depth profiles with delly. This requires a mappability map which can be downloaded here:\n\n[Mappability Maps](https://gear-genomics.embl.de/data/delly/)\n\nThe command to count reads in 10kbp mappable windows and normalize the coverage is:\n\n`delly cnv -a -g hg38.fa -m hg38.map -c out.cov.gz -o out.bcf input.bam`\n\nThe output file `out.cov.gz` can be plotted using [R](https://www.r-project.org/) to generate normalized copy-number profiles and segment the read-depth information:\n\n`Rscript R/rd.R out.cov.gz`\n\nInstead of segmenting the read-depth information, you can also visualize the CNV calls.\n\n`bcftools query -f \"%CHROM\\t%POS\\t%INFO/END\\t%ID[\\t%RDCN]\\n\" out.bcf \u003e seg.bed`\n\n`Rscript R/rd.R out.cov.gz seg.bed`\n\nWith `-s` you can output a statistics file with GC bias information.\n\n`delly cnv -g hg38.fa -m hg38.map -c out.cov.gz -o out.bcf -s stats.gz input.bam`\n\n`zcat stats.gz | grep \"^GC\" \u003e gc.bias.tsv`\n\n`Rscript R/gcbias.R gc.bias.tsv`\n\n\nGermline CNV calling\n--------------------\n\nDelly uses GC and mappability fragment correction to call CNVs. This requires a [mappability map](https://gear-genomics.embl.de/data/delly/).\n\n* Call CNVs for each sample and optionally refine breakpoints using delly SV calls\n\n`delly cnv -o c1.bcf -g hg38.fa -m hg38.map -l delly.sv.bcf input.bam`\n\n* Merge CNVs into a unified site list\n\n`delly merge -e -p -o sites.bcf -m 1000 -n 100000 c1.bcf c2.bcf ... cN.bcf`\n\n* Genotype CNVs for each sample\n\n`delly cnv -u -v sites.bcf -g hg38.fa -m hg38.map -o geno1.bcf input.bam`\n\n* Merge genotypes using [bcftools](https://github.com/samtools/bcftools)\n\n`bcftools merge -m id -O b -o merged.bcf geno1.bcf ... genoN.bcf`\n\n* Filter for germline CNVs\n\n`delly classify -f germline -o filtered.bcf merged.bcf`\n\n* Optional: Plot copy-number distribution for large number of samples (\u003e\u003e100)\n\n`bcftools query -f \"%ID[\\t%RDCN]\\n\" filtered.bcf \u003e plot.tsv`\n\n`Rscript R/cnv.R plot.tsv`\n\n\nSomatic copy-number alterations (SCNAs)\n---------------------------------------\n\n* For somatic copy-number alterations, delly first segments the tumor genome (`-u` is required). Depending on the coverage, tumor purity and heterogeneity you can adapt parameters `-z`, `-t` and `-x` which control the sensitivity of SCNA detection.\n\n`delly cnv -u -z 10000 -o tumor.bcf -c tumor.cov.gz -g hg38.fa -m hg38.map tumor.bam`\n\n* Then these tumor SCNAs are genotyped in the control sample (`-u` is required).\n\n`delly cnv -u -v tumor.bcf -o control.bcf -g hg38.fa -m hg38.map control.bam`\n\n* The VCF IDs are matched between tumor and control. Thus, you can merge both files using [bcftools](https://github.com/samtools/bcftools).\n\n`bcftools merge -m id -O b -o tumor_control.bcf tumor.bcf control.bcf`\n\n* Somatic filtering requires a tab-delimited sample description file where the first column is the sample id (as in the VCF/BCF file) and the second column is either tumor or control.\n\n`delly classify -p -f somatic -o somatic.bcf -s samples.tsv tumor_control.bcf`\n\n* Optional: Plot the SCNAs using bcftools and R.\n\n`bcftools query -s tumor -f \"%CHROM\\t%POS\\t%INFO/END\\t%ID[\\t%RDCN]\\n\" somatic.bcf \u003e segmentation.bed`\n\n`Rscript R/rd.R tumor.cov.gz segmentation.bed`\n\n\nFAQ\n---\n* Visualization of SVs      \nYou may want to try out [wally](https://github.com/tobiasrausch/wally) to plot candidate structural variants. The paired-end coloring is explained in [wally's README](https://github.com/tobiasrausch/wally#paired-end-view) file.\n\n* What is the smallest SV size Delly can call?  \nFor short-reads, this depends on the sharpness of the insert size distribution. For an insert size of 200-300bp with a 20-30bp standard deviation, Delly starts to call reliable SVs \u003e=300bp. Delly also supports calling of small InDels using soft-clipped reads only, the smallest SV size called is 15bp. For long-reads, delly calls SVs \u003e=30bp.\n\n* Can Delly be used on a non-diploid genome?  \nYes and no. The SV site discovery works for any ploidy. However, Delly's genotyping model assumes diploidy (hom. reference, het. and hom. alternative). The CNV calling allows to set the baseline ploidy on the command-line.\n\n* Delly is running too slowly what can I do?    \nYou should exclude telomere and centromere regions and also all unplaced contigs (`-x` command-line option). In addition, you can filter input reads more stringently using -q 20 and -s 15. Lastly, `-z` can be set to 5 for high-coverage data.\n\n* Are non-unique alignments, multi-mappings and/or multiple split-read alignments allowed?  \nDelly expects two alignment records in the bam file for every paired-end, one for the first and one for the second read. Multiple split-read alignment records of a given read are allowed if and only if one of them is a primary alignment whereas all others are marked as secondary or supplementary. This is the default for bwa, minimap2 and many other aligners.\n\n* What pre-processing of bam files is required?    \nBam files need to be sorted, indexed and ideally duplicate marked.\n\n* Usage/discussion mailing list?         \nThere is a delly discussion group [delly-users](http://groups.google.com/d/forum/delly-users).\n\n* Docker/Singularity support?            \nThere is a delly [docker container](https://hub.docker.com/r/dellytools/delly/) and [singularity container (*.sif file)](https://github.com/dellytools/delly/releases) available.\n\n* How can I compute a mappability map?               \nA basic mappability map can be built using [dicey](https://github.com/gear-genomics/dicey), [samtools](https://github.com/samtools/samtools) and [bwa](https://github.com/lh3/bwa) with the below commands (as an example for the sacCer3 reference):\n```\ndicey chop sacCer3.fa\nbwa index sacCer3.fa\nbwa mem sacCer3.fa read1.fq.gz read2.fq.gz | samtools sort -@ 8 -o srt.bam -\nsamtools index srt.bam \ndicey mappability2 srt.bam \ngunzip map.fa.gz \u0026\u0026 bgzip map.fa \u0026\u0026 samtools faidx map.fa.gz \n```\n\n* Bioconda support?              \nDelly is available via [bioconda](http://bioconda.github.io/recipes/delly/README.html).\n\n\nCitation\n--------\n\nTobias Rausch, Thomas Zichner, Andreas Schlattl, Adrian M. Stuetz, Vladimir Benes, Jan O. Korbel.      \nDELLY: structural variant discovery by integrated paired-end and split-read analysis.     \nBioinformatics. 2012 Sep 15;28(18):i333-i339.       \n[https://doi.org/10.1093/bioinformatics/bts378](https://doi.org/10.1093/bioinformatics/bts378)\n\nLicense\n-------\nDelly is distributed under the BSD 3-Clause license. Consult the accompanying [LICENSE](https://github.com/dellytools/delly/blob/main/LICENSE) file for more details.\n\nCredits\n-------\n[HTSlib](https://github.com/samtools/htslib) is heavily used for all genomic alignment and variant processing. [Boost](https://www.boost.org/) for various data structures and algorithms and [Edlib](https://github.com/Martinsos/edlib) for pairwise alignments using edit distance.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellytools%2Fdelly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdellytools%2Fdelly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellytools%2Fdelly/lists"}