AutoCNV

#software

AutoCNV是华大开发的CNV注释软件,按照同事的说法,在ClinGen评分上比ClassifyCNVAnnotSV(个人建议用这个,更新勤快,数据库新)准确一点,但只能用于hg19。

目前提供了线上注释版本,也可以通过构建request url达成使用线上系统进行注释的效果。但如果生产流程使用这个方案,就会受限于网络,一旦华大拉闸就会失灵。

软件安装

项目的原Repo中没有提供数据库,但提供了数据的准备方案,我根据这个方案进行部署,发现最终产出的某些库内容较少。另外,缺失了cnv-syndrome-del.bed.gz和cnv-syndrome-dup.bed.gz库,估计是内部积累?后面为了流程顺畅,我直接构建了空的文件替代了,最终产生结果会cnv-syndrome字段会缺失信息。

我构建的库可以从这里下载

AutoCNV依赖华大的另外一个项目AutoPVS1来计算PVS1。而AutoPVS1又依赖于VEP进行注释。

镜像

因此,踩完一些坑后,我构建了一个镜像,可以直接运行。

docker pull ghcr.io/pzweuj/autocnv:vep112_4

这个镜像基于VEP 112版本制作,如果你的VEP数据库基于其他版本,强烈建议自行构建,点击这里查看dockerfile

使用

实际上我对源码进行了一些修改,可以指定AutoPVS1的config路径,但是使用时并不方便。因此,最后还是通过镜像mount数据库到指定的路径。AutoPVS1必须所有数据库存在才能运行,但AutoCNV只适用于hg19,所以在运行AutoCNV时,随便绑定文件来填充hg38的内容即可。

当然,更建议在构建镜像时就将自己的config配置好

docker run --rm \
    -v <运行目录>:<运行目录> \
    -v hg19.fa:/opt/autopvs1/autopvs1/data/hg19.fa \
    -v hg19.fa.fai:/opt/autopvs1/autopvs1/data/hg19.fa.fai \
    -v hg38.fa:/opt/autopvs1/autopvs1/data/hg38.fa \
    -v hg38.fa.fai:/opt/autopvs1/autopvs1/data/hg38.fa.fai \
    ghcr.io/pzweuj/autocnv:vep112_4 \
    python3 /opt/autocnv/autocnv_anno.py -i <运行目录>/input.txt -o <运行目录>/output.xlsx

input.txt格式

chr start end type
2 200000 400000 del
5 555555 666666 dup

AutoPVS1

是的,这个镜像包含了AutoPVS1,你可以参照**/opt/autocnv/autocnv_anno.py**来调用AutoPVS1,我进行了一点魔改

import sys
import argparse

# 环境变量
sys.path.insert(0, '/opt/autopvs1/autopvs1')
from autopvs1 import AutoPVS1

# 你可以指定VEP的cache是merged还是refseq了
demo = AutoPVS1('13-113803407-G-A', 'GRCh37', vep_mode='merged')

# 你可以指定使用的配置文件了
demo = AutoPVS1('13-113803407-G-A', 'GRCh37', config_path='/path/to/config.ini')