1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env bash
# bedpull benchmark configuration.
#
# Copy this file to config.env (gitignored) and fill in the paths below, then
# `source config.env` before running any script in this directory, or pass
# `--config config.env` to run_all.sh.
#
# Paths already known to be correct for this machine are filled in below;
# everything else is a placeholder you need to update.
# --- Reference genomes (already local per the user) ---
# --- HG002 T2T-Q100 v1.1 diploid assembly (query for PAF mode) ---
# Ships gzipped; bedpull/minimap2/samtools all want an uncompressed or
# bgzip-recompressed FASTA with a .fai index. Decompress once:
# zcat hg002v1.1.fasta.gz > hg002v1.1.fasta && samtools faidx hg002v1.1.fasta
# --- minimap2 PAF alignments: HG002 haplotype contigs -> HS1 ---
# Build with, e.g.:
# samtools faidx "$HG002_ASSEMBLY_FASTA" $(grep '_PATERNAL' "$HG002_ASSEMBLY_FASTA.fai" | cut -f1) > hg002.paternal.fa
# minimap2 -cx asm5 --cs=long -t 16 "$HS1_FASTA" hg002.paternal.fa > hg002pat_to_hs1.paf
# (same for _MATERNAL). Both are needed — see README.md's note on why we try
# both haplotypes per window instead of trusting VCF GT phase to assembly
# haplotype identity.
# --- Official UCSC chain file: hg38<->hs1 confirmation leg ---
# Download from https://hgdownload.soe.ucsc.edu/goldenPath/hg38/liftOver/
# UCSC only publishes this one direction (not hs1ToHg38), so the confirmation
# leg lifts hg38 -> hs1: windows are called directly from the hg38<->hs1 PAF
# alignment (call_alignment_svs.py), lifted onto hs1, sequence extracted from
# hs1. No building required for the chain itself.
# PAF for the confirmation leg: target=hg38 (matches the windows' coordinate
# system and is what call_alignment_svs.py's truth is called from), query=hs1
# (what gets extracted) — see README.md's "hs1<->hg38 confirmation leg"
# section for the exact command.
# --- Self-built chain: hs1<->HG002 leg (see build_chain_from_paf.sh) ---
# --- GIAB HG002 v5.0q structural variant truth set (main leg only — the
# confirmation leg's truth comes from call_alignment_svs.py instead, since
# neither hs1 nor hg38 is HG002's own assembly) ---
# --- Tools (override only if not on PATH) ---
# Only needed for the optional paftools.js liftover extra-tool comparison —
# see README.md's "Optional third tool" section.
# Only needed for the optional pslMap / liftOver-multiple extra-tool
# comparisons — see README.md's "Two more UCSC kent tools" section.
# --- Window selection defaults (accuracy leg) ---
# 0 = no cap, use every qualifying SV
# --- Output directory ---