{"id":19154509,"url":"https://github.com/bcgsc/dida","last_synced_at":"2025-07-05T08:35:41.519Z","repository":{"id":76973348,"uuid":"11748890","full_name":"bcgsc/dida","owner":"bcgsc","description":"DIDA Project","archived":false,"fork":false,"pushed_at":"2017-03-07T18:54:17.000Z","size":706,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-02-22T21:27:45.986Z","etag":null,"topics":["alignments","distributed-indexing","indexing","large-scale-indexing","mpi"],"latest_commit_sha":null,"homepage":"http://www.bcgsc.ca/platform/bioinfo/software/dida","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcgsc.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-07-29T20:19:33.000Z","updated_at":"2017-03-08T20:08:08.000Z","dependencies_parsed_at":"2023-03-08T04:15:11.059Z","dependency_job_id":null,"html_url":"https://github.com/bcgsc/dida","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bcgsc/dida","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgsc%2Fdida","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgsc%2Fdida/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgsc%2Fdida/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgsc%2Fdida/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcgsc","download_url":"https://codeload.github.com/bcgsc/dida/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcgsc%2Fdida/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263711004,"owners_count":23499807,"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":["alignments","distributed-indexing","indexing","large-scale-indexing","mpi"],"created_at":"2024-11-09T08:27:10.319Z","updated_at":"2025-07-05T08:35:41.496Z","avatar_url":"https://github.com/bcgsc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Compiling DIDA from source\n\nTo compile and install DIDA in /usr/local:\n\n```\n$ ./configure\n$ make \n$ sudo make install \n```\n\nTo install DIDA in a specified directory:\n\n```\n$ ./configure --prefix=/opt/dida\n$ make \n$ sudo make install \n```\n\nDIDA uses OpenMP for parallelization, which requires a modern compiler such as GCC 4.2 or greater. If you have an older compiler, it is best to upgrade your compiler if possible. If you have multiple versions of GCC installed, you can specify a different compiler:\n\n```\n$ ./configure CC=gcc-4.9 CXX=g++-4.9 \n```\n\nIf you wish to build the DIDA with MPI support, MPI should be found in /usr/include and /usr/lib or its location specified to configure:\n\n```\n$ ./configure --with-mpi=/usr/lib/openmpi \n```\n\nTo run DIDA, its executables should be found in your PATH. If you installed DIDA in /opt/DIDA, add /opt/DIDA/bin to your PATH:\n\n```\n$ PATH=/opt/dida/bin:$PATH\n```\n\nTo run DIDA, its executables should be found in your PATH. If you installed DIDA in /opt/DIDA, add /opt/DIDA/bin to your PATH:\n\n```\n$ PATH=/opt/dida/bin:$PATH\n```\n\n# Distribute Indexing and Alignment \n\nTo align a library of paired reads named \u003cquery\u003e against the target named \u003ctarget\u003e using the batch version of DIDA, run the set of following commands:\n\n* `prt –p \u003cpartition\u003e \u003ctarget\u003e`\n* `index \u003csub-target\u003e`\n* `dsp –p \u003cpartition\u003e -b \u003cbmer\u003e \u003cquery\u003e`\n* `map \u003csub-query\u003e \u003csub-target\u003e`\n* `mrg –p \u003cpartition\u003e -a \u003caligner\u003e -m \u003cmode\u003e`\n\nExample of aligning a subset of chromosome 14 reads, chr14.in, against its draft assembly, CHR14.fa,CHR14.adj on 4 nodes using DIDA+ABySS-map. To install ABySS-map from ABySS Package:\thttp://www.bcgsc.ca/platform/bioinfo/software/abyss \n\n```bash\n#!/bin/bash\n\n# step 1: partition target\nprt –p4 CHR14.fa\n\n# step 2: index target partitions\nfor i in {1..4}\ndo\n\tabyss-index mref-$i.fa\ndone\n\n# step 3: dispatch reads to target partitions\ndsp -p4 -b28 chr14.in\n\n# step 4: align reads against target partitions\nfor i in {1..4}\ndo\n\tabyss-map -l28 –j12 --order mreads-$i.fa mref-$i.fa \u003e aln-$i.sam\ndone\n\n# step 5: merge alignments against target partitions\nmrg -p4 -a abyss-map -m ord \u003e output.sam\n```\n\n\nIf we want to use bwa-mem instead of ABySS-map, we would use the same script with changes to steps 2, 4 and 5:\n\n```bash\n#!/bin/bash\n\n# step 1: partition target\nprt –p4 CHR14.fa\n\n# step 2: index target partitions\nfor i in {1..4}\ndo\n\t\tbwa index mref-$i.fa\ndone\n\n# step 3: dispatch reads to target partitions\ndsp -p4 -b28 chr14.in\n\n# step 4: align reads against target partitions\nfor i in {1..4}\ndo\n\t\tbwa mem –t12 –k28 mref-$i.fa mreads-$i.fa \u003e aln-$i.sam\ndone\n\n# step 5: merge alignments against target partitions\nmrg -p4 -a bwa-mem -m ord \u003e output.sam\n```\n\n# Running DIDA on a cluster\n\nDIDA integrates well with cluster job schedulers, such as:\n\tSGE (Sun Grid Engine)\n\tPortable Batch System (PBS)\n\tLoad Sharing Facility (LSF)\n\tIBM LoadLeveler\n\nFor example, to submit the above DIDA job for aligning a subset of chromosome 14 reads, chr14.in, against its draft assembly, CHR14.fa,CHR14.adj on 4 nodes using DIDA+ABySS-map:\n\n```\n$ qsub -N dida-chr14 -pe openmpi 5 \u003c\u003c\u003c 'mpirun –np 5 dida-wrapper –b28 –l28 –a abyss-map –m ord chr14.in CHR14.fa \u003e output.sam'\n```\n\nDIDA has a fully streamlined version, which performs the dispatch, align, and merge steps over MPI communications. To run that version, run the command:\n\n```\n$ qsub -N dida-chr14 -pe openmpi 6 \u003c\u003c\u003c 'mpirun –np 5 dida-mpi –l28 frag_1.fastq frag_2.fastq CHR14.fa \u003e res-chr14.sam \u003e output.sam'\n```\n\n# Compatibility\n\nBoth `dida-wrapper` and `dida-mpi` require MPI libraries with support for multithreading.\n\n`dida-wrapper` is known to work well with:\n\n* MPICH 3.1.3, with configure option `--enable-threads=funneled`\n\n`dida-wrapper` has known issues with:\n\n* Open MPI 1.8.4, with configure option `--enable-mpi-thread-multiple` (deadlock issues)\n\n# Acknowledgements\n\nThis project uses the [gzstream](http://www.cs.unc.edu/Research/compgeom/gzstream) library written by Deepak Bandyopadhyay and Lutz Kettner at the Computational Geometry Group at UNC Chapel Hill (LGPL license). \n\nPublications\n============\n\n## [DIDA](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0126409)\n\nHamid Mohamadi, Benjamin P Vandervalk, Anthony Raymond, Shaun D Jackman, Justin Chu, Clay P Breshears, Inanc Birol.\n**DIDA: Distributed Indexing Dispatched Alignment**.\n*PLOS ONE* (2015) 10(4): e0126409.\n[10.1371/journal.pone.0126409 ](http://dx.doi.org/10.1371/journal.pone.0126409)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcgsc%2Fdida","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcgsc%2Fdida","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcgsc%2Fdida/lists"}