{"id":38675563,"url":"https://github.com/wglab/pipevar","last_synced_at":"2026-01-17T10:00:59.039Z","repository":{"id":317727554,"uuid":"1029106443","full_name":"WGLab/PipeVar","owner":"WGLab","description":"Pipeline to call phenotype variant","archived":false,"fork":false,"pushed_at":"2025-10-02T16:16:22.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-02T18:21:30.964Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nextflow","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WGLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-30T14:29:09.000Z","updated_at":"2025-10-02T16:16:26.000Z","dependencies_parsed_at":"2025-10-07T17:01:38.010Z","dependency_job_id":null,"html_url":"https://github.com/WGLab/PipeVar","commit_stats":null,"previous_names":["wglab/pipevar"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/WGLab/PipeVar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPipeVar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPipeVar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPipeVar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPipeVar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WGLab","download_url":"https://codeload.github.com/WGLab/PipeVar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WGLab%2FPipeVar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-17T10:00:37.795Z","updated_at":"2026-01-17T10:00:58.972Z","avatar_url":"https://github.com/WGLab.png","language":"Nextflow","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PipeVar\n\nPipeVar is a pathogenic variant prioritization workflow for undiagnosed, rare diseases. It utilizes various tools developed from WGLab and other softwares to call structural variants, singule-nucleotide variants, indels and repeat expansions, and prioritize potential pathogenic variants and existing pathogenic variants as well.\n\nPipeVar is implenmetned in Nextflow, and can be ran using Docker or Singularity. We are in the development of utilizing Conda for running, but for the best consistency, use either Docker or Singularity for running PipeVar. We currently only have support for Slurm, but are working on other cluster system as well.\n\n\u003cimg width=\"3840\" height=\"2182\" alt=\"Untitled diagram _ Mermaid Chart-2025-08-29-153706\" src=\"https://github.com/user-attachments/assets/d0c1b7d2-0dc8-49ef-8da5-b86b3b51aa01\" /\u003e\n\n\n# Requirements\n\nPipeVar requires either Docker or Singularity to run. If your system do not have Singularity installed as a module, you can try to install Singularity using conda with\n\n```\nconda create -n singularity singularity\n```\n  or install singualrity in your conda environment by\n```\nconda install conda-forge::singularity\n```\n\nCurrently, PipeVar is only tested to run in SLURM environment. It can be ran in other environment by changing executor paramemter in nextflow.config, but it has not been tested yet. We plan to test PipeVar in different environments.\n\n# Set up\n\nFirst, download the git repo using:\n\n```\n#Download PipeVar\ngit clone https://github.com/WGLab/PipeVar.git\n```\n\nTo use PipeVar, there is a set up stage required for two software, ANNOVAR and PhenoSV.\n\nTo download ANNOVAR, go to this link https://www.openbioinformatics.org/annovar/annovar_download_form.php , and follow the instruction in the format. Make sure to have ANNOVAR in the PipeVar folder for setup script to run properly.\n\nOnce ANNOVAR is downloaded, run setup.sh in the directory you cloned PipeVar to download the necessary files for ANNOVAR and PhenoSV using\n```\n#Install full PhenoSV.\n./setup.sh \n```\nor\n```\n#Install lighter version of PhenoSV.\n./setup.sh light\n```\nIf you want to download a lighter version of PhenoSV. PhenoSV light is about ~50GB in size, while full PhenoSV is about ~150GB in size. The setup script will also modify the nextflow.config to annovar/PhenoSV directory location to necessary location to run the pipeline.\n\n# Usage\n```\n#BAM version.\nnextflow run main.nf --bam \u003cFILE\u003e --ref_fa \u003cFILE\u003e --out_prefix \u003cFOLDER\u003e --note \u003cFILE\u003e or hpo \u003cFILE\u003e\n\n#VCF version. Requires either SV or SNV option.\nnextflow run main.nf --vcf \u003cFILE\u003e --mode sv or snv --ref_fa \u003cFILE\u003e --out_prefix \u003cFOLDER\u003e --note \u003cFILE\u003e or hpo \u003cFILE\u003e \n```\n\n```\nREQUIRED PARAMETERS:\n  \n  --bam \u003cFILE\u003e Path to input BAM file. Cannot be used with VCF option. Must be full path. Requires .bai index file.\n  \n  --vcf \u003cFILE\u003e Path to input VCF file. Cannot be used with BAM option. Must be full path.\n  \n  --ref_fa \u003cFILE\u003e Reference genome in FASTA format. Must be full path.\n  \n  --out_prefix \u003cSTRING\u003e Prefix for output files\n  \n  --note \u003cFILE\u003e Clinical note text file, in a format of VCF. used for HPO term extraction. Only neded if HPO terms are not available.\n  \n  --hpo \u003cFILE\u003e HPO ID file; note file can be used instead.\n\n  --mode \u003csv|snv\u003e. Option run either SV mode or SNV mode. Required for VCF mode. Optional for BAM.\n\nOPTIONAL PARAMETERS:\n    --output_directory \u003cDIR\u003e  Path to output directory (default: current directory)\n    --type \u003cont|pacbio|short\u003e       Input data type: short/long reads(either Pac-Bio or ONT) (default is ONT).\n    --light \u003cyes|no\u003e          Use lightweight PhenoSV model, NanoCaller (faster, lower memory, but with lower accuracy)\n    --gq \u003cINT\u003e                Minimum genotype quality [default: 20] used for filtering for RankVar and RankScore analysis.\n    --ad \u003cINT\u003e                Minimum allelic depth [default: 15] used for filtering for RankVar and RankScore analysis.\n    --gnomad \u003cFLOAT\u003e          Max gnomAD allele frequency [default: 0.0001] used for filtering for RankVar and RankScore analysis.\n    --help                    Print this help message and exit\n```\n\nEXAMPLES:\n\n```\n    1. Long-read full pipeline (SV + SNP + STR):\n        nextflow run main.nf \\\n          --bam /data/sample.bam \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient1 \\\n          --hpo /data/hpo.txt \\\n          --type long\n\n    2. Short-read full pipeline:\n        nextflow run main.nf \\\n          --bam /data/sample.bam \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient1 \\\n          --hpo /data/hpo.txt \\\n          --type short\n\n    3. Short-read with lightweight model:\n        nextflow run main.nf \\\n          --bam /data/sample.bam \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient1 \\\n          --hpo /data/hpo.txt \\\n          --type short \\\n          --light yes\n\n    4. Variant re-annotation using VCF (SV mode):\n        nextflow run main.nf \\\n          --vcf /data/sample.vcf \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient_sv \\\n          --hpo /data/hpo.txt \\\n          --mode sv\n\n    5. Auto-extract HPO from clinical notes:\n        nextflow run main.nf \\\n          --bam /data/sample.bam \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient1 \\\n          --note /data/note.txt \\\n          --type ont\n```\n\nIdeally, the job would be the best ran using the job submission since variant calling process can take long depending on your job. Following is aa simple example for SLURM job submission for default setting for 48 hour job submission.\n\n```\n\n#!/bin/bash\n\n#SBATCH --time=47:59:59\n#SBATCH --cpus-per-task=1\n#SBATCH --mem=4G\n\nnextflow run main.nf \\\n          --bam /data/sample.bam \\\n          --ref_fa /refs/hg38.fa \\\n          --out_prefix patient1 \\\n          --note /data/note.txt \\\n\n\n\n```\n\n\nNOTES:\n\n    - At least one of `--hpo` or `--note` must be provided.\n    \n    - If `--note` is used, `--hpo` is auto-generated via phenotagger.\n    \n    - `--mode` must be specified for VCF input, and helps direct SNV vs SV flow.\n    \n    - `--type` is required for BAM input to specify sequencing technology.\n    \n    - All file paths must be absolute or relative to `--input_directory`.\n    \n    - `--light yes` uses faster, resource-friendly software such as haplotypecaller, NanoCaller and PhenoSV-light.\n\n# Parameter details\n\n\n***Reference genome***\n```\n--ref_fa\n```\n\nUsed to specifcy the reference genome FASTA file. It must be indexed.\n\nFASTA file can be indexed using samtools with following command if needed:\n\n```\nsamtools faidx file.fa\n``` \n\n\n***BAM file***\n```\n--bam\n```\n\nBAM file needed to run the workflow. Must be indexed and sorted. SAM/CRAM are not accepted for now, but will be in future. If bam files is not indexed or sorted, use following example command\n\n```\n#Sorting bam\nsamtools sort -o your.sorted.bam your.bam\n\n#Index bam\nsamtools index -b your.bam (or your.sorted.bam if you sorted).\n```\n\n***VCF file***\n```\n--vcf\n```\nVCF file can be used if you want to run PipeVar on SV or SNV. Does not require indexing or sorting.\n\n***Out prefix***\n\n```\n--out_prefix\n```\nString for the prefix for the output and processing. Makes sure to not include any special characters or space in between.\n\n***Medical Note***\n```\n--note\n```\nMedical notes that can be in csv, tsv or txt format. Make sure to input one medical not for one patient.\n\n***HPO file***\n```\n--hpo\n\n#Example\nHP:0031647\nHP:0031647\n\n```\nText file with list of HPO terms. Make sure each HPO term is in new line, and only contain HPO terms. \n\n***Mode selection***\n\n```\n--mode\n```\n\nOption for either SV or SNV. Required for VCF option, but optional for BAM option. Only 'sv' or 'snv' is accepted.\n\n***Sequencing type***\n\n```\n--type\n```\n\nOption for sequencing type. The default is 'ONT' for now, and has 'short' for NGS and 'pacbio' for Pac-Bio option. For long-read sequencing, they are used in repeat and SV process.\n\n***Output direcrtory***\n```\n--output_directory\n```\nOption for output directory location. Must provide full path. The default is current directory where the script is submitted.\n\n\n***Gnomad frequency***\n```\n---gnomad\n```\nOption for gnomad allele frequency filtering for SNV Rankscore and SV score. The default is 0.0001, but may be lowered for autosomal recessive variant priortization. SV filtering in progress.\n\n\n# Output\n\nAll the output will be stored in output directory, or the launch folder based on --output_directory parameter. The list of outputs are as followed:\n\nFor Long-read sequencing option (pacbio/ont) -\n\n***SNV analysis output***\n```\nout_prefix.clair.vcf.gz - Clair3 output in VCF format for SNV variant calling. Available when used with default option.\nout_prefix.nanocaller.vcf.gz - NanoCaller output in VCF for SNV variant calling. Available when used with light option\n__out_prefix.clinvar.txt__ - List of variants that are listed as pathogenic by ClinVar and has a related phenotype gene based on Phen2Gene score. Threshold is top 500.\nout_prefix.rank_var.tsv - List of variants that are scored using RankVar. The usual filter is 0.1 for pathogenicity score.\nout_prefix.rankscore_filtered.tsv - List of variants that are scored as pathogenic based on RankScore analysis (takes average of 10 different popular software). 0.50 as a filter, and filtered based on top 500 genes that are related with phenotype based on Phen2Gene.\nout_prefix.(ref_genome)_multianno.txt/vcf- Temp output file from ANNOVAR with annotations on SNV variant calling files.\n```\n\n***SV analaysis output***\n```\nout_prefix.cutesv.vcf.gz - CuteSV output in VCF format for SV calling.\nout_prefix.sniffles.vcf.gz - Sniffles output in VCF format for SV calling.\nout_preifx_truvari* - Filtering process using cuteSV and Sniffles, only using common SVs found in cuteSV and Sniffles.\nout_prefix.bed - Bed file used as the input for PhenoSV with information of exnoic SVs.\nout_prefix.phenosv.filtered.tsv - List of SVs that are scored as pathogenic based on PhenoSV results, with pathogenicty score higher than 0.5.\n```\n\n***Repeat expansion analysis output***\n```\nout_prefix_nanoRepeat_output.tsv - Summary of all repeat expansion analysis, includes ~60 known repeat regions that are known to cause diseases.\nout_prefix_nanorepeat_result.tsv - Summary results that show repeat regions that are greater than disease threshold.\n```\n\nFor Short-Read sequencing option\n\n\n***SNV analysis output***\n```\nout_prefix.deepvariant.vcf.gz - Deepvariant output in VCF format for SNV variant calling. Available when used with default option.\nout_prefix.recal.vcf.gz - HaplotypeCaller output in VCF for SNV variant calling. Available when used with light option.\nout_prefix.clinvar.txt - List of variants that are listed as pathogenic by ClinVar and has a related phenotype gene based on Phen2Gene score. Threshold is top 500.\nout_prefix.rank_var.tsv - List of variants that are scored using RankVar. The usual filter is 0.1 for pathogenicity score.\nout_prefix.rankscore_filtered.tsv - List of variants that are scored as pathogenic based on RankScore analysis (takes average of 10 different popular software). 0.50 as a filter, and filtered based on top 500 genes that are related with phenotype based on Phen2Gene.\nout_prefix.(ref_genome)_multianno.txt/vcf- Temp output file from ANNOVAR with annotations on SNV variant calling files.\n```\n\n\n***SV analaysis output***\n```\nout_prefix.manta.vcf.gz - Manta output in VCF format for SV calling.\nout_prefix.bed - Bed file used as the input for PhenoSV with information of exnoic SVs.\nout_prefix.phenosv.filtered.tsv - List of SVs that are scored as pathogenic based on PhenoSV results, with pathogenicty score higher than 0.5.\n```\n***Repeat expansion analysis output***\n```\nout_prefix.json - ExpansionHunter result including repeat expansion information in selected regions.\nout_prefix.eh.tsv - Output results including repeats that passes diseases threshold. \n```\n\nIn both analysis :\n\n***Phenotype analysis ouptut***\n\nThese outputs are mostly temp outputs that are used to process the downstream analysis for SV/SNV, but are kept for the record keeping.\n```\nout_prefix_phenotagger_patient_hpo.txt - Resulting HPO ID term based on patient medical notes.\nout_prefix_phen2gene - Phen2Gene results converitng HPO ID term into score, showing how much gene is related with phenotype.\n```\n\nThe output will be cleaned up for better readability as the pipeline gets updated.\n\n\n\n# Softwares used\n\nPIPELINE MODULES:\n\n    SNV CALLING\n      - clair3         : Deep learning SNP caller (long-read)\n      - nanocaller     : Lightweight long-read SNP caller\n      - haplotypecaller: Short-read SNP caller (GATK)\n      - deepvariant    : Deep learning short-read SNP caller\n\n    SV CALLING\n      - cuteSV         : Long-read SV caller\n      - sniffles       : Long-read SV caller\n      - Manta          : Short-read SV caller\n      - truvari        : SV comparison/benchmarking\n      - SURVIVOR       : SV merging\n\n    STR DETECTION\n      - NanoRepeat     : Long-read STR caller\n      - ExpansionHunter: Short-read STR detection\n\n    PHENOTYPING\n      - Phen2gene      : HPO-to-gene mapping\n      - phenotagger    : NLP-based clinical note to HPO term conversion\n      - PhenoGpt2      : To be implemented\n\n    VARIANT RANKING\n      - ANNOVAR        : SNV/SV annotation\n      - RankVar        : Final SNV ranking\n      - Rankscore_analysis: Additional ranking analysis\n\n\n\n# Update that needs to be done.\n\nAdd LongPhase process, and ACMG Guideline, and PhenoGPT2 for note direction. Clean up the output results as well.\n\nWe are also working on version so reference genome may not be previously downloaded, but can be ran with hg38 or grch38 option.\n\nSAM/CRAM support will be included in future as well. Add parallel processing to allow multi-sample option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fpipevar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwglab%2Fpipevar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwglab%2Fpipevar/lists"}