AutoCNV
AutoCNV是华大开发的CNV注释软件,按照同事的说法,在ClinGen评分上比ClassifyCNV和AnnotSV(个人建议用这个,更新勤快,数据库新)准确一点,但只能用于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')