本文へ移動
cccskills
無料GitHub で公開

bio-long-read-sequencing-haplotype-phasing

Phases small variants, SVs, and methylation from Oxford Nanopore and PacBio long reads (read-backed/physical phasing) with WhatsHap, LongPhase, or HiPhase, and haplotags the BAM (HP/PS tags) for allele-resolved downstream analysis. Covers why phase blocks break at het-sparse gaps (read length x heterozygosity), why phasing the VCF is useless until the BAM is haplotagged, the GT-pipe/PS and read HP/PS tag spec, reporting block N50 with switch error, the diploid-assumption/CNV/haploid-region traps, trio phasing as the gold standard, and the boundary to statistical panel phasing. Use when phasing long-read variants, haplotagging reads for allele-specific methylation/expression or phased SVs, choosing WhatsHap vs LongPhase vs HiPhase, trio phasing, or assessing phasing quality.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md12.1 KB
  • examples/longphase_sv_cophasing.sh1.5 KB
  • examples/phase_and_haplotag.sh1.7 KB
  • usage-guide.md4.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Version Compatibility

Reference examples tested with: whatshap 2.3+, longphase 1.7+, samtools 1.19+, tabix/htslib 1.19+.

Before using code patterns, verify installed versions match. If versions differ:

  • CLI: <tool> --version then <tool> --help to confirm flags

Behavior to record:

  • whatshap phase --reference enables realignment mode (rescues indel phasing on error-prone long reads); omitting it falls back to lower-quality genotype-only phasing.
  • Phasing the VCF and haplotagging the BAM are SEPARATE steps; downstream read-level tools need the BAM HP tag.
  • --max-coverage 15 (WhatsHap) is a runtime downsampling cap, not a minimum-depth requirement.

If code throws an error, introspect the installed tool (whatshap phase --help, longphase --help) and adapt the example to the actual API rather than retrying.

Read-Backed Haplotype Phasing

"Phase my long-read variants" -> Reconstruct haplotypes directly from reads that span heterozygous sites, then haplotag the BAM so downstream tools can see the phase.

  • CLI: whatshap phase -o phased.vcf.gz --reference ref.fa --indels variants.vcf.gz aln.bam then whatshap haplotag -o haplotagged.bam --reference ref.fa phased.vcf.gz aln.bam

This is read-backed (physical, panel-free) phasing of a single sample. Statistical/reference-panel phasing for imputation lives in phasing-imputation/haplotype-phasing; building phased haplotype contigs lives in genome-assembly/hifi-assembly.

The Single Most Important Modern Insight -- Phasing the VCF Is Useless Until the BAM Is Haplotagged, and Blocks Break Where No Read Spans Two Hets

Read-backed phasing is sample-intrinsic and panel-free (the haplotypes are exactly what this individual's reads physically witness), with two load-bearing consequences:

  1. phase writes the VCF; haplotag writes the BAM - they are different products. whatshap phase / longphase phase set GT pipe (0|1) and a PS phase-set in the VCF; they do NOT touch the BAM. Every read-level downstream tool (modkit --partition-tag HP for allele-specific methylation, pb-CpG-tools --hap-tag HP, Severus for phased SVs, IGV color-by-HP, whatshap split) keys on the per-read HP tag that ONLY haplotag writes. A user who runs phase and stops has a phased VCF and an un-haplotagged BAM, and the downstream step silently produces only an ungrouped partition. Triage: samtools view haplotagged.bam | grep -m1 'HP:i:'.
  2. Phase blocks break wherever no single read spans two adjacent hets. Block length is capped by read length x heterozygosity: a long homozygous run (or a coverage/mapping dropout) ends a block no matter how long the reads are. A genome is phased into MANY blocks, not one haplotype per chromosome, and between-block phase is arbitrary until a long-range method (trio, Hi-C) stitches them. So "the genome is phased" is meaningless without block N50 AND switch error together.

Tool Decision Tree

Switch-error accuracy is comparable across read-based tools (~0.1-0.4% on long reads); choose on speed, SV/mod co-phasing, platform, and pedigree.

ScenarioToolWhy
Careful default; indel phasingWhatsHap (--reference --indels)realignment mode rescues indels; widest downstream familiarity
Parents/pedigree sequencedWhatsHap --ped (PedMEC)the gold standard - chromosome-scale, lowest switch error
Whole-genome ONT speedLongPhase (--ont)~10x faster; 30x human in ~1 min
Co-phase SVs / methylation into long blocksLongPhase (--sv-file/--mod-file)a phased SV bridges het-sparse gaps; block N50 ~25 Mbp
PacBio HiFi, joint small+SV+STRHiPhasePacBio-native one-pass phasing
Multi-tech (Hi-C / 10x)HapCUT2models Hi-C/linked-read error
Inside PEPPER-Margin-DeepVariantmarginlegacy embedded haplotagger

Clair3 uses WhatsHap (or LongPhase) internally to phase its het SNPs and haplotag the BAM feeding its full-alignment model - this skill owns that phase->haplotag mechanism (see clair3-variants).

The Tags (the central distinction)

LayerTagMeaning
VCF (per variant)GT with `vs/`
VCF (per variant)FORMAT/PS (Integer)phase-set / block id; variants sharing a PS are phased relative to each other (conventionally the first variant's position)
BAM (per read)HP:i:1 / HP:i:2the haplotype this read was assigned to (written by haplotag)
BAM (per read)PS:i:<int>the phase set the read's assignment belongs to (matches the VCF PS)

Unassigned reads carry NO HP tag (not HP:i:0). Do not confuse the VCF HP FORMAT tag (GATK style) with the BAM HP read tag.

Phasing Quality - Report Block N50 AND Switch Error

MetricToolTrap
phase-block N50/NG50whatshap statscontiguity, not correctness; gameable by over-joining blocks (which raises switch errors)
phased fractionwhatshap statsa tool can phase fewer easy sites to look better
switch error ratewhatshap comparethe primary accuracy number
switch vs flip decompositionwhatshap comparea long switch propagates (damaging); a flip/short switch self-corrects (one wrong variant) - quote the decomposition
Hamming distancewhatshap comparehypersensitive to switch position (a switch near a block start flips half the block)

Long blocks with a high switch rate are worse, not better, than honest short blocks. Benchmark against a trio-/strand-seq-phased GIAB truth.

Core Commands

# WhatsHap: phase (VCF), then haplotag (BAM). --reference enables realignment for indels.
whatshap phase -o phased.vcf.gz --reference ref.fa --indels variants.vcf.gz aln.bam
tabix -p vcf phased.vcf.gz
whatshap haplotag -o haplotagged.bam --reference ref.fa \
    --output-haplotag-list htlist.tsv.gz phased.vcf.gz aln.bam
samtools index haplotagged.bam

# Quality
whatshap stats --gtf blocks.gtf phased.vcf.gz                       # block N50, count, fraction
whatshap compare --names truth,mine truth.vcf.gz phased.vcf.gz      # switch error, flip decomposition

# Trio (gold standard) - --ped takes a PED file, not mother/father/child args
whatshap phase -o trio.vcf.gz --reference ref.fa --ped family.ped joint.vcf.gz mother.bam father.bam child.bam

# LongPhase: faster whole-genome, co-phase SNP+indel+SV(+5mC) into long blocks
longphase phase -s snps.vcf --indels --sv-file svs.vcf -b aln.bam -r ref.fa -o phased -t 16 --ont
longphase haplotag -s phased.vcf --sv-file phased_SV.vcf -b aln.bam -r ref.fa -o haplotagged -t 16

# Downstream consumer example: allele-specific methylation
modkit pileup haplotagged.bam asm/ --ref ref.fa --cpg --combine-strands --partition-tag HP

Per-Method Failure Modes

Phased VCF but no HP tags downstream

Trigger: running phase and pointing a read-level tool at the original BAM. Mechanism: phase writes the VCF only; the BAM HP tag comes from haplotag. Symptom: modkit returns only an ungrouped partition; IGV shows one color; Severus reports no phased SVs - all with no error. Fix: run haplotag; verify samtools view ... | grep HP:i:.

Short blocks blamed on the tool

Trigger: a homozygosity-rich or inbred sample phasing into many short blocks. Mechanism: no intervening hets to link across a long homozygous run - intrinsic, not tool failure. Symptom: low block N50 despite good reads. Fix: expect it; use ultra-long reads or co-phase SVs (LongPhase) to bridge sparse-het gaps; only trio/Hi-C makes it chromosome-scale.

Indels phased poorly

Trigger: whatshap phase without --reference. Mechanism: without realignment, allele support for indels in error-prone reads is noisy. Symptom: low indel phasing / errors. Fix: always pass --reference ref.fa (and --indels) on long reads.

Confident phasing of a haploid/CNV region

Trigger: phasing chrX/Y/MT in an XY sample, or inside a CNV/segdup. Mechanism: the two-haplotype model is false there (hemizygous, >2 or 1 haplotype, or collapsed paralogs). Symptom: spurious micro-blocks, HP counts far from 50/50. Fix: treat phasing there as unreliable; do not interpret it as biology.

Quoting N50 alone

Trigger: comparing phasers on block N50. Mechanism: N50 is inflated by over-joining, which raises switch errors. Symptom: "longer blocks" that are actually worse. Fix: report block N50 AND switch error together; use the flip decomposition.

Quantitative Thresholds

ThresholdSourceRationale
Total depth ~15-20x for confident phasingphasing practiceper-haplotype depth is ~half; below ~10x blocks fragment
--max-coverage 15 is a runtime capWhatsHapwMEC is exponential in per-site coverage; >15x is redundant, not required
long-read switch error ~0.1-0.4%benchmarks vs trio truththe achievable accuracy band
LongPhase SNP+SV block N50 ~25 MbpLin 2022co-phasing SVs bridges het-sparse gaps (vs ~10-15 Mbp SNP-only)
ASM wants ~20x totalmethylation practiceeach haplotype must clear the ~10x per-site floor

Common Errors

Error / symptomCauseSolution
modkit --partition-tag HP has only an ungrouped partitionBAM never haplotaggedrun whatshap haplotag / longphase haplotag
--trio flag not recognizedthe flag is --pedpass a PED file: --ped family.ped
Poor indel phasing--reference omittedadd --reference ref.fa --indels
0 reads usable in phaseBAM @RG sample != VCF sample--ignore-read-groups (or fix sample names)
longphase --platform ont errorsplatform is a bare flaguse --ont or --pb
Spurious phasing on chrX/CNVdiploid assumption violatedtreat as unreliable; exclude haploid/CNV regions

References

  • Patterson M, Marschall T, Pisanti N, et al. 2015. WhatsHap: weighted haplotype assembly for future-generation sequencing reads. J Comput Biol 22(6):498-509.
  • Martin M, Patterson M, Garg S, et al. 2016. WhatsHap: fast and accurate read-based phasing. bioRxiv 085050.
  • Garg S, Martin M, Marschall T. 2016. Read-based phasing of related individuals (PedMEC). Bioinformatics 32(12):i234-i242.
  • Lin JH, Chen LC, Yu SC, Huang YT. 2022. LongPhase: an ultra-fast chromosome-scale phasing algorithm for small and large variants. Bioinformatics 38(7):1816-1822.
  • Holt JM, Saunders CT, Rowell WJ, et al. 2024. HiPhase: jointly phasing small, structural, and tandem repeat variants from HiFi sequencing. Bioinformatics 40(2):btae042.
  • Edge P, Bafna V, Bansal V. 2017. HapCUT2: robust and accurate haplotype assembly for diverse sequencing technologies. Genome Res 27(5):801-812.

Related Skills

  • clair3-variants - Produces the het VCF; Clair3 phases+haplotags internally via this mechanism
  • long-read-alignment - Produces the BAM (keep -Y so supplementaries are taggable)
  • nanopore-methylation - Allele-specific methylation via modkit --partition-tag HP
  • structural-variants - Severus consumes a haplotagged BAM for phased/somatic SVs
  • basecalling - LongPhase can co-phase 5mC from a modBAM
  • phasing-imputation/haplotype-phasing - Statistical/reference-panel phasing for imputation
  • genome-assembly/hifi-assembly - Phased de novo haplotype contigs (trio/Hi-C)
  • hi-c-analysis/contact-pairs - Hi-C long-range phasing (orthogonal)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Predicts ADMET properties using ADMETlab 3.0 (119 platform features, including 77 prediction models with modeled-endpoint uncertainty), ADMET-AI, DeepChem MolNet, and chemprop D-MPNN with explicit handling of OECD QSAR principles, applicability domain assessment, calibration, hERG/CYP/AMES endpoints, and PAINS / Lipinski / Ro5 / Veber / BBB druglikeness filters. Use when filtering compounds for drug-likeness, prioritizing leads by predicted safety, or building an in-house ADMET QSAR model.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

Trim PCR primers from aligned reads in amplicon-panel BAMs using samtools ampliconclip. Use when processing SARS-CoV-2 ARTIC, hereditary cancer panels, ctDNA hot-spot panels, or any amplicon assay where primer-derived bases would falsely confirm reference at primer footprints.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

Filter alignments by flags, mapping quality, and regions using samtools view and pysam. Use when extracting specific reads, removing low-quality alignments, or subsetting to target regions.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam. Use when enabling random access to alignment files or fetching specific genomic regions.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

Parse and analyze multiple sequence alignments using Biopython. Extract sequences, identify conserved regions, analyze gaps, work with annotations, and manipulate alignment data for downstream analysis. Use when parsing or manipulating multiple sequence alignments.

日本語の概要は準備中です。原文の説明を表示しています。

GPTomics/bioSkills1,2192026年8月15日 更新

GPTomics のスキルをすべて見る

このスキルの問題を報告する