Many medically relevant genes fall into 'dark' regions where variant calling is limited due to high sequence homology with paralogs or pseudogenes. Paraphase is a Python tool that takes HiFi aligned BAMs as input (whole-genome or enrichment), phases haplotypes for genes of the same family, determines copy numbers and makes phased variant calls.
Paraphase takes all reads from a gene family, realigns to one representative gene of the family and then phases them into haplotypes. This approach bypasses the error-prone process of aligning reads to multiple similar regions and allows us to examine all copies of genes in a gene family. This gene-family-centered approach allows Paraphase to perform well when there is a copy number difference between an individual and the reference, as is often the case in segmental duplications.
Futhermore, this approach also streamlines sequence comparisons between genes within the same family, making it straightforward to conduct analyses such as identifying non-allelic gene conversions.
Paraphase supports 162 segmental duplication regions in GRCh38. Among these, there are 11 regions that are also supported in GRCh37/hg19, and two regions are currently supported in CHM13.
Medically relevant regions include:
For more details about Paraphase, please check out our latest paper and our earlier paper on its application to the gene SMN1.
Chen X, Baker D, Dolzhenko E, et al. Genome-wide profiling of highly similar paralogous genes using HiFi sequencing. Nature Communications. 2025. doi:10.1038/s41467-025-57505-2
Chen X, Harting J, Farrow E, et al. Comprehensive SMN1 and SMN2 profiling for spinal muscular atrophy analysis using long-read PacBio HiFi sequencing. The American Journal of Human Genetics. 2023. doi:10.1016/j.ajhg.2023.01.001
Paraphase supports both whole-genome sequencing (WGS) data and targeted sequencing data, including data generated from PureTarget panels. For whole-genome sequencing (WGS) data, we recommend >20X, ideally 30X, genome coverage. Low coverage or shorter read length could result in less accurate phasing, especially when gene copies are highly similar to each other. See our tutorial for more details on targeted data.
If you have suggestions or need assistance, please don't hesitate to reach out by email or open a GitHub issue.
Xiao Chen: xchen@pacificbiosciences.com
Paraphase can be installed through conda:
conda install -c bioconda paraphase
Alternatively, Paraphase can be installed from GitHub.
# Specify the version
VERSION="v4.0.0"
# Download the release file
wget https://github.com/PacificBiosciences/paraphase/releases/download/${VERSION}/paraphase-${VERSION}-x86_64-unknown-linux-gnu.tar.gz
# Decompress the file
tar -xzvf paraphase-${VERSION}-x86_64-unknown-linux-gnu.tar.gz
cd paraphase-${VERSION}-x86_64-unknown-linux-gnu
# Check the md5 sum (optional)
md5sum -c paraphase.md5
# Execute help instructions
./paraphase -h
paraphase -b input.bam -o output_directory -r genome_fasta
Required parameters:
- -b: Input BAM file (a BAI file needs to exist in the same directory)
- -o: Output directory
- -r: Path to the reference genome fasta file
Please note that the input BAM should be one that's aligned to the ENTIRE reference genome (GRCh38, GRCh37/hg19 or CHM13), and this reference should NOT include ALT contigs. The fasta file of this reference genome should be provided to Paraphase with -r. Recommendations on reference genomes to use are documented here.
Optional parameters:
- -g: Region(s) to analyze, separated by comma. All supported regions will be analyzed if not specified. Please use region name, i.e. first column in the regions file.
- -t: Number of threads.
- -p: Prefix of output files. If not provided, prefix will be extracted from the header of the input BAM.
- --genome: Genome reference build. Default is 38. If 37 or 19 is specified, Paraphase will run the analysis for GRCh37 or hg19, respectively (note that only 11 medically relevant regions are supported now for GRCh37/hg19). chm13 for T2T-CHM13 reference (note that only smn1 and pms2 are currently supported).
- --gene1only: If specified, variants calls will be made against the main gene only for SMN1, PMS2, STRC, NCF1 and IKBKG, see more information here.
- --novcf: If specified, no VCF files will be produced.
- --write-nocalls-in-vcf: If specified, Paraphase will write no-call sites in the VCFs, marked with LowQual filter.
- --targeted: If specified, paraphase will not assume depth is uniform across the genome. See more information on running targeted data here.
- --min-variant-frequency: Minimum frequency for a variant to be used for phasing. The cutoff for variant-supporting reads is determined by max(5, total_depth * min_frequency). Note that total_depth is the combined depth of all paralogs for a paralog group. Default is 0.11.
- --min-haplotype-frequency: Minimum frequency of unique supporting reads for a haplotype. The cutoff for haplotype-supporting reads is determined by max(4, total_depth * min_frequency). Note that total_depth is the combined depth of all paralogs for a paralog group. Default is 0.03.
See demo for a test run.
Paraphase produces a few output files in the directory specified by -o, with the specified or default prefix.
.vcf in ${prefix}_paraphase_vcfs folder. A VCF file is written for each region (gene family). More descriptions on the VCF can be found here.
.paraphase.bam: This BAM file can be loaded into IGV for visualization of haplotypes (group reads by HP tag and color alignments by YC tag). All haplotypes are aligned against the main gene of interest. Tutorials/Examples are provided for medically relevant genes (See below).
.paraphase.json: Output file summarizing copy number and phased halotypes for each region. Details can be found here.
Tutorials/Examples are provided for further interpreting the json output and visualizing haplotypes for medically relevant genes listed below:
- SMN1/SMN2
- RCCX module (CYP21A2)
- PMS2
- STRC
- OPN1LW/OPN1MW
- HBA1/HBA2
- IKBKG
- F8
- NEB
- NCF1
- GBA
- CFH gene cluster
Finally, we have a proof-of-concept script to give an example of how to annotate variants downstream of Paraphase.
THIS WEBSITE AND CONTENT AND ALL SITE-RELATED SERVICES, INCLUDING ANY DATA, ARE PROVIDED "AS IS," WITH ALL FAULTS, WITH NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE. YOU ASSUME TOTAL RESPONSIBILITY AND RISK FOR YOUR USE OF THIS SITE, ALL SITE-RELATED SERVICES, AND ANY THIRD PARTY WEBSITES OR APPLICATIONS. NO ORAL OR WRITTEN INFORMATION OR ADVICE SHALL CREATE A WARRANTY OF ANY KIND. ANY REFERENCES TO SPECIFIC PRODUCTS OR SERVICES ON THE WEBSITES DO NOT CONSTITUTE OR IMPLY A RECOMMENDATION OR ENDORSEMENT BY PACIFIC BIOSCIENCES.
$ claude mcp add paraphase \
-- python -m otcore.mcp_server <graph>