https://github.com/cbg-ethz/viloca

VILOCA: VIral LOcal haplotype reconstruction and mutation CAlling for short and long read data

https://github.com/cbg-ethz/viloca

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    7 of 13 committers (53.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

VILOCA: VIral LOcal haplotype reconstruction and mutation CAlling for short and long read data

Basic Info
  • Host: GitHub
  • Owner: cbg-ethz
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 6.78 MB
Statistics
  • Stars: 21
  • Watchers: 2
  • Forks: 1
  • Open Issues: 8
  • Releases: 4
Created over 4 years ago · Last pushed 12 months ago
Metadata Files
Readme License

README.md

VILOCA: VIral LOcal haplotype reconstruction and mutation CAlling for short and long read data

VILOCA is an open source project for the analysis of next generation sequencing data. It is designed to analyse genetically heterogeneous samples. Its tools are written in different programming languages and provide error correction, haplotype reconstruction and estimation of the frequency of the different genetic variants present in a mixed sample. VILOCA takes an alignment file as input, and subsequently generates mutation calls and local haplotypes.

The corresponding manuscript can be found at: https://academic.oup.com/nargab/article/6/4/lqae152/7912062

Fuhrmann L, Langer B, Topolsky I, Beerenwinkel N. VILOCA: sequencing quality-aware viral haplotype reconstruction and mutation calling for short-read and long-read data. NAR Genomics and Bioinformatics. 2024 Dec;6(4):lqae152.


Installation

For installation miniconda is recommended: https://docs.conda.io/en/latest/miniconda.html. We recommend to install VILOCA in a clean conda environment: conda create --name env_viloca --channel conda-forge --channel bioconda viloca conda activate env_viloca

If you want to install the master branch use: conda create --name env_viloca --channel conda-forge --channel bioconda libshorah conda activate env_viloca pip install git+https://github.com/cbg-ethz/VILOCA@master

Example

To test your installation run VILOCA tests/data_1: viloca run -b test_aln.cram -f test_ref.fasta --mode use_quality_scores

Another example can be found in tests/data_6: If the sequencing amplicon strategy is known, we recommend using the amplicon-mode of the program, which takes as input the <smth>.insert.bed - file: viloca run -f reference.fasta -b reads.shotgun.bam -w 90 --mode use_quality_scores -z scheme.insert.bed

If there is no information on the sequencing amplicon strategy available, run: viloca run -f reference.fasta -b reads.shotgun.bam -w 90 --mode use_quality_scores

If the sequencing quality scores are not trustable, the sequencing error parameters can also be learned: viloca run -f reference.fasta -b reads.shotgun.bam -w 90 --mode learn_error_params.

Parameters

There are several parameters available:
-b [mandatory] Input alignment file in sorted BAM format. The file must contain only primary alignments. Consider using a processing pipeline that filters out secondary and supplementary alignments.

-f [mandatory] Reference genome in fasta format for mutation calling.

--mode mode to use:
- learn_error_params: model learning the error rate from the data
- use_quality_scores: model incorporating the sequencing quality scores that are passed through the alignment file [recommend option] - shorah: use the tool ShoRAH (https://github.com/cbg-ethz/shorah)

--windowsize In case no insert file is provided, the genome is tiled into uniform local regions. windowsize determines the length of those local regions. It should be of roughly the length of the reads. This is also the length of the haplotypes that are produced. Any read that covers less than the minimum percentage of the local region—defined by the --win_min_ext parameter — will be excluded from the analysis.

-z Path to an file that defines the local regions used to segment the alignment (e.g.,tests/data_1/scheme.insert.bed). If this file is not specified, the alignment will be segmented into uniform regions of length defined by the --windowsize parameter. Any read that covers less than the minimum percentage of the local region—defined by the --win_min_ext parameter — will be excluded from the analysis.

--win_min_ext Minimum percentage of bases to overlap between reference and read to be considered in a window (default: 0.85). The rest (i.e. non-overlapping part) will be filled with Ns.

-p: Posterior threshold (default: 0.9) when calling variants from haplotypes.

--extended_window_mode Flag to call insertions (default: this flag is turned off)

--exclude_non_var_pos_threshold Percentage threshold for positions exclusion. Positions with base variations below this threshold will be excluded from the analysis, instead this position will be treated as if it only contains the reference base. This means that mutations of frequency < exclude_non_var_pos_threshold will not be called.

Output

haplotypes This directory contains the reconstructed local haplotypes as separate fasta files per local region.

coverage.txt List of each local region with start and end positions, and number of reads considered in the region.

cooccurring_mutations.csv The file contains one row per occurrence of a mutation in each haplotype, listing all haplotypes where a mutation is present. Note that the posterior threshold is not applied here.

Development/CI with Docker

The following command in the root directory will let you interact with the project locally through Docker. bash docker run --name viloca --rm -w="/usr/app" -it $(docker build -q .) bash Run the following commands to copy the contents into the container and install VILOCA inside Docker. bash docker cp . viloca:/usr/app # run outside Docker poetry install --only-root # run inside Docker

This is the same setup as used in the CI at .github/workflows/test.yaml.

Profiling

bash poetry run python3 -m cProfile -m viloca run ...

Applications

You can find several applications of VILOCA at: - https://github.com/cbg-ethz/viloca_applications - https://github.com/cbg-ethz/DCV-CrPV-cGAS-STING-pathway-data-analysis

Owner

  • Name: Computational Biology Group (CBG)
  • Login: cbg-ethz
  • Kind: organization
  • Location: Basel, Switzerland

Beerenwinkel Lab at ETH Zurich

GitHub Events

Total
  • Create event: 4
  • Issues event: 8
  • Release event: 3
  • Watch event: 5
  • Delete event: 8
  • Issue comment event: 11
  • Push event: 70
  • Pull request event: 9
  • Fork event: 1
Last Year
  • Create event: 4
  • Issues event: 8
  • Release event: 3
  • Watch event: 5
  • Delete event: 8
  • Issue comment event: 11
  • Push event: 70
  • Pull request event: 9
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 432
  • Total Committers: 13
  • Avg Commits per committer: 33.231
  • Development Distribution Score (DDS): 0.755
Past Year
  • Commits: 22
  • Committers: 1
  • Avg Commits per committer: 22.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Lara Fuhrmann l****n@e****h 106
ozagordi o****t@g****m 86
LaraFuhrmann 5****n 53
Lara Fuhrmann l****n@b****h 37
Ivan Blagoev Topolsky i****y@b****h 35
Susana Posada-Cespedes s****a@b****h 31
Osvaldo Zagordi z****o@v****h 29
Benjamin Langer b****r@s****h 26
David Seifert S****A 19
NBMueller n****r@w****e 6
George Kettleborough (TGAC) g****h@t****k 2
kpj k****j@g****m 1
Manuel Holtgrewe m****e@f****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 9
  • Total pull requests: 42
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 11 days
  • Total issue authors: 7
  • Total pull request authors: 3
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.33
  • Merged pull requests: 35
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 6
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 days
  • Issue authors: 7
  • Pull request authors: 1
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • LaraFuhrmann (3)
  • MTDouglas (1)
  • alexandreflageul (1)
  • Krannich479 (1)
  • kartikchandran (1)
  • danhes11 (1)
Pull Request Authors
  • LaraFuhrmann (40)
  • spaceben (9)
  • DrYak (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/tests.yaml actions
  • ./ * composite
  • actions/checkout v3 composite
action.yaml actions
  • Dockerfile * docker
Dockerfile docker
  • python 3.10 build
docs/requirements.txt pypi
  • pysam ==0.17.0
  • sphinx-autodoc-typehints ==1.12.0
poetry.lock pypi
  • atomicwrites 1.4.1 develop
  • attrs 22.1.0 develop
  • cigar 0.1.3 develop
  • iniconfig 1.1.1 develop
  • packaging 21.3 develop
  • pluggy 1.0.0 develop
  • py 1.11.0 develop
  • pyparsing 3.0.9 develop
  • pytest 6.2.5 develop
  • pytest-mock 3.10.0 develop
  • toml 0.10.2 develop
  • bio 1.4.0
  • biopython 1.79
  • biothings-client 0.2.6
  • certifi 2022.6.15
  • charset-normalizer 2.1.1
  • colorama 0.4.5
  • idna 3.3
  • mygene 3.2.2
  • numpy 1.23.2
  • pandas 1.4.3
  • pybind11 2.10.0
  • pysam 0.18.0
  • python-dateutil 2.8.2
  • pytz 2022.2.1
  • pyyaml 6.0
  • requests 2.28.1
  • scipy 1.9.0
  • six 1.16.0
  • tqdm 4.64.0
  • urllib3 1.26.12
pyproject.toml pypi
  • cigar ^0.1.3 develop
  • pandas ^1.3.5 develop
  • pytest ^6.2.5 develop
  • pytest-mock ^3.10.0 develop
  • PyYAML ^6.0
  • bio ^1.3.3
  • biopython ^1.79
  • numpy ^1.21.4
  • pandas ^1.3.5
  • pybind11 ^2.9.0
  • pysam ^0.18.0
  • python >=3.9,<3.11
  • scipy ^1.7.3
environment.yml conda
  • boost-cpp >=1.56
  • htslib >=1.9
  • pip