跳转至

alnkit short scan

一条跨越“参考基因组 <-> 外源插入序列”的嵌合比对可定位断点;本命令按断点聚合证据(SR / PESR / DUP)。

用法

alnkit short scan [全局选项] [--bam …] [--bam-dir …] [--bam-glob …] [--out-dir …] [--sample-name …] [--query-chr …] [--insert-chrs …] [--insert-origin-policy …] [--merge-window-bp …] [--min-mapq …] [--max-mismatch …] [--max-softclip-blocks …] [--min-clip-length …] [--mismatch-source …] [--on-missing-tag …] [--min-sr-support …] [--interference-scope …] [--reference-fasta …] [--homology-bed …] [--homology-window-bp …] [--homology-min-identity …] [--homology-min-length …] [--bam-threads …] [--no-recursive] [--keep-secondary] [--no-split-match] [--no-candidate-gate] [--no-duplicate-filter] [--check-markdup] [--require-dup-flags] [--legacy-coordinates] [--legacy-profile] [--self-test]

参数

参数 必填 默认 说明
--bam PATH 否 — 直接指定 BAM(可重复)。与 --bam-dir 二选一
--bam-dir DIR 否 当前目录 扫描 BAM 的目录,默认当前目录
--bam-glob PATTERN 否 *.sorted.bam 在 --bam-dir 下匹配 BAM 的通配符,默认 *.sorted.bam
--no-recursive 否 关 不递归子目录(默认递归)
--out-dir DIR 否 当前目录 结果输出目录,默认当前目录
--sample-name NAME 否 — 输出前缀(所有产物文件名的开头),默认取 BAM 文件名首个 . 之前的部分
--query-chr NAME 否 — 本次要出结果的外源插入序列名(必填,除非 --self-test)
--insert-chrs NAME1,NAME2,... 否 — 参考序列里全部外源/同源序列名,逗号分隔;默认只含 --query-chr
--insert-origin-policy 否 owned 共有 read 的区分策略:owned(默认)/owned-strict/lenient/consensus/legacy(可选:owned, owned-strict, lenient, consensus, legacy)
--merge-window-bp INT 否 0 位点窗口合并:相距 <= 该值的断点合并为一个位点,0=不合并(默认);推荐 10
--min-mapq INT 否 20 比对质量 <= 该值则丢弃,默认 20
--max-mismatch INT 否 3 错配数 > 该值则丢弃,默认 3
--max-softclip-blocks INT 否 1 soft clip 段数 > 该值则丢弃,默认 1
--min-clip-length INT 否 0 作为断点证据时要求的最小 soft clip 长度,默认 0(不限制)
--keep-secondary 否 关 保留 secondary 比对(默认丢弃)
--mismatch-source 否 nm 错配数来源:nm=NM 标签(默认);md=由 MD 推导(历史行为)。两者都不自动回退:选 nm 却没有 NM 时按 --on-missing-tag 丢弃或报错(可选:nm, md)
--on-missing-tag 否 skip 缺少 NM/MD 标签时:skip=丢弃该比对(默认);error=报错(可选:skip, error)
--no-split-match 否 关 关闭「目标序列上要求存在等长 split 比对」的校验(默认开启)
--no-candidate-gate 否 关 关闭候选 read 闸门(等价 2.4.0 全量逐条处理);legacy 策略下自动关闭
--no-duplicate-filter 否 关 保留被 markdup 标记为重复的 read 作为证据(默认剔除,只写 dup 列)
--min-sr-support INT 否 1 位点至少要有多少条支持 read(SR+PESR)才输出,默认 1(不过滤,保持历史行为);设 2–3 可去掉单 read 噪声位点
--interference-scope 否 all 同源干扰的判据范围:all=支持 read 命中任何插入序列都算干扰(默认,历史口径,多外源面板下偏灵敏);other=只算 query 之外的插入(多外源面板更精确)。注意:两者都只比较“插入之间”,无法识别“外源与基因组同源”造成的干扰(可选:all, other)
--reference-fasta 否 — 含插入序列与基因组的参考 FASTA;给了它就把插入序列回比基因组,自动找出“外源同源区”并标注位点(需要 minimap2)
--homology-bed BED 否 — 已知的内源同源基因/区域(BED,0-based 半开,可给多次);与 --reference-fasta 可并用
--homology-window-bp INT 否 50000 局部回比时位点两侧各取多长(默认 50000 bp);cDNA 样插入的外显子分散在几十 kb 里,窗口太小只能比到单个外显子
--homology-min-identity FLOAT 否 0.9 回比时认定的最小一致率,默认 0.90
--homology-min-length INT 否 200 回比时认定的最小比对长度(bp),默认 200(过滤偶然的短命中)
--check-markdup 否 关 核对 markdup 标记是否可信:把 read 按「比对坐标 + 错配数」分组,报告全未标记组(markdup 没做/不完整)、标记不一致组、以及单条被标 dup 的 read
--require-dup-flags 否 关 BAM 里没有任何 FLAG 0x400(未做 markdup)时报错退出(退出码 2)
--bam-threads INT 否 1 BAM 解压线程数,默认 1;大文件可调到 2-4
--legacy-coordinates 否 关 使用历史的 M 块选取规则(取最后一个 M 块)
--legacy-profile 否 关 一键复现历史结果(= legacy 坐标 + legacy 归属 + 由 MD 推导错配)
--self-test 否 关 只跑内置自检(不读 BAM)

全局选项(每个子命令都有)

参数 必填 默认 说明
--log-level LEVEL 否 INFO 日志级别:DEBUG / INFO / WARNING / ERROR
--quiet 否 关 只输出错误(等价 --log-level ERROR)

例子

上游 BAM 的比对要求(详见原脚本 README):
  必须 -Y(补充比对用 soft clip,只从 CIGAR 的 S 取断点);
  禁止 -M(会把补充比对标成 secondary,证据变少);
  建议 -a -h 20;比对后不要用 samtools -F 2048 / -F 256 / -q 过滤。
示例:
  alnkit short scan --bam-dir ./bam --query-chr target_ref \
      --insert-chrs decoy_ref,homolog_ref,target_ref \
      --merge-window-bp 10 --out-dir out
  alnkit short scan --self-test
产物:
  三张 legacy .xls(列名与旧脚本一致)+ <sample>.sites.canonical.tsv(机器接口)。
  注意: reads_info 的 legacy 表头把 stand 与 mapping_quality 合并成一列(11 列),
  数据行其实是 12 列——按表头名解析会错位,按位置或用 canonical 表。
错配来源与 markdup:
  --mismatch-source nm(默认)读 NM;md 用 MD 推导(历史口径)。都不自动回退,
  标签缺失时按 --on-missing-tag 丢弃或报错;--legacy-profile 隐含 md。
  markdup 的 FLAG 0x400 与错配统计无关,只决定 dup 两列;用 --check-markdup 核对
  标记是否可信(按两端 5' 坐标分组,再用 MD 判断被标 dup 的 read 是否真同序列)。

退出码

0 成功(可有警告)/ 1 运行期错误 / 2 参数或前置校验失败。