Skip to main content

A beginner friendly TUI tool for variant calling

Project description

VarCall

License PyPI - Version PyPI - Python Version

A modern, user-friendly Text-based User Interface (TUI) for genomic variant calling workflows. VarCall simplifies bioinformatics analysis by providing an intuitive interface to popular variant calling tools, making genomic analysis accessible to researchers without extensive command-line experience.

๐Ÿ“‹ Table of Contents

๐ŸŒŸ Features

  • Intuitive TUI Interface: Navigate through genomic analysis workflows with ease
  • Multi-tool Integration: Access FastQC, MultiQC, BWA, Samtools, Bcftools, and GATK from a single interface
  • Workflow Automation: Execute complex pipelines with simple inputs
  • Real-time Notifications: Get immediate feedback on process status
  • Organized Output: Results automatically saved in a structured directory hierarchy
  • Customizable: Extend functionality by adding new tools or modifying existing ones
  • Comprehensive Logging: Detailed logs for troubleshooting and tracking analysis history

๐Ÿ”ง Installation

[!NOTE] v2.0.0 is available for use.
v2.0.0 can create widgets in runtime, using config dictionaries, making it maintainable and customizable
YAML file configuration coming soon!!!

Prerequisites

VarCall requires Python 3.7+ and works best in a conda environment with bioinformatics tools pre-installed.

  1. Install Miniconda (if not already installed): Visit Miniconda for installation instructions.

  2. Create a conda environment with required tools:

    conda create -n varcall -y
    conda activate varcall
    conda install -c bioconda fastqc multiqc bwa samtools bcftools
    
  3. For GATK functionality (optional):

    conda install -c bioconda gatk4
    

Install VarCall

pip install varcall

๐Ÿš€ Usage

Starting VarCall

After installation, simply run:

varcall

Keyboard Navigation

  • Tab: Navigate between tabs
  • Arrow Keys: Navigate within a tab
  • Enter: Select/Execute
  • F1: Access Help
  • Q: Quit application
  • T: Toggle theme

Basic Workflow

  1. Prepare your data following the recommended project structure
  2. Quality control your sequence data using FastQC and MultiQC
  3. Index your reference genome with BWA Index
  4. Align your reads using BWA mem
  5. Process alignments with Samtools (convert, sort, index)
  6. Call variants using Bcftools or GATK
  7. Filter and analyze your variants

Project Structure

VarCall works best with the following project structure:

Project_Directory/
โ”œโ”€โ”€ Data/
โ”‚   โ”œโ”€โ”€ Reference_Genome/
โ”‚   โ”œโ”€โ”€ Reads/
โ”‚   โ”‚   โ”œโ”€โ”€ Sample_1_1.fastq
โ”‚   โ”‚   โ”œโ”€โ”€ Sample_1_2.fastq
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ BED/
โ””โ”€โ”€ Results/
    โ”œโ”€โ”€ FastQC/
    โ”œโ”€โ”€ MultiQC/
    โ”œโ”€โ”€ Samfile/
    โ”œโ”€โ”€ Bamfile/
    โ”œโ”€โ”€ VCF/
    โ””โ”€โ”€ BCF/

๐Ÿ“Š Screenshots

Home Tab

Home tab image

Samtools Tab

Samtools tab image

Bcftools Tab

Bcftools tab image

GATK Tab

GATK tab image

Pipeline Tab

Pipeline tab image

Help Tab

Help tab image

๐Ÿ”ง Customization

VarCall is designed to be extensible and adaptable to various bioinformatics workflows:

Current Customization

You can customize VarCall by modifying the process dictionary source code in process_dict.py. This allows you to:

  • Add new bioinformatics tools with custom parameters
  • Modify existing tool configurations
  • Create specialized pipelines for your specific workflows

Each tool is defined using a ProcessConfig object that specifies command templates, required fields, descriptions, and more.

Upcoming Features

  • YAML Configuration: Define tools and workflows through YAML files without modifying source code
  • Custom Widgets: Additional UI components for enhanced user experience
  • Pipeline Builder: Visual interface for connecting tools into complex workflows

๐Ÿค Contributing

Contributions to VarCall are welcome and appreciated! Here are ways you can contribute:

  • Report Bugs: Submit issues for any bugs you encounter
  • Feature Requests: Suggest new features or improvements
  • Code Contributions: Submit pull requests with bug fixes or new features
  • Documentation: Help improve documentation or add tutorials
  • Tool Integration: Add configurations for additional bioinformatics tools

Please follow standard GitHub workflow for contributions:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

๐Ÿ“œ License

varcall is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

varcall-2.0.0.tar.gz (282.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

varcall-2.0.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file varcall-2.0.0.tar.gz.

File metadata

  • Download URL: varcall-2.0.0.tar.gz
  • Upload date:
  • Size: 282.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for varcall-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3db4c44bb0a71857fc0afe82dea2b8313f685a35dcb80c2b0091037d00986994
MD5 ad6dafcdd800f5ff03c81ce0e1850897
BLAKE2b-256 15d86ee7f2493672ed8c84e54242e512c6cc7c69fdacdcb8942b79ba18b9cc76

See more details on using hashes here.

Provenance

The following attestation bundles were made for varcall-2.0.0.tar.gz:

Publisher: python-publish.yml on vidyasagar0405/varcall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file varcall-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: varcall-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for varcall-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39cce8afab8a6ccdb1f9746af628d57fdc3ea78b8c03df8bb5b36c86cac95303
MD5 03b5a60d0a8fb7314981ed14657e31c1
BLAKE2b-256 61e433ef8faf3ef4ae6a90441bacbde52a97c38196c852fbdc916379ff25fbd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for varcall-2.0.0-py3-none-any.whl:

Publisher: python-publish.yml on vidyasagar0405/varcall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page