AnnotSV Singularity容器

发布于

更新于

AnnotSV 是一个功能强大的开源软件和在线工具,专门用于对人类基因组中的结构变异进行注释和优先排序。由于 AnnotSV 安装有点麻烦,所以封装了一个包含 AnnotSV 的 Singularity 容器,便于直接使用。Singularity 安装可以参考:Singularity 安装与使用教程:高性能计算环境容器化指南》


容器下载

AnnotSV 3.5.3 (2025.10.31)
Singularity官网
Huggingface仓库


容器介绍

此 Singularity 容器封装了 AnnotSV,以便在 Linux 环境中便捷部署。

AnnotSV原始项目:AnnotSV GitHub
原始项目许可证:GPL-3.0
此容器继承了原项目的 GPL-3.0 许可证。

修改说明

  1. Exomiser 端口分配:
    • AnnotSV 调用 Exomiser 服务时,端口可用性检查与实际端口调用在代码中是分离执行的,在并发调用的情况下容易发生端口冲突,引起报错。具体情况如下:不同任务在检查端口可用性时,由于此时的确没有 Exomiser Server 占用任何端口,所以“端口可用性检查函数”均返回了一个默认端口(10000),当程序真正开始调用Exomiser Server 时,不同任务就会开始争夺相同的端口,最终引起端口冲突。
    • 在本容器中,调整了 Exomiser Server 的端口分配方案,由系统自行分配,我们通过返回的端口号为每个任务分别获取 Exomiser 分析结果。
  2. PhenoGenius 执行选项:
    • PhenoGenius 分析过程耗时较长,因此新增了一个 -PhenoGeniusCli 参数,用于控制是否打开 PhenoGenius 分析。默认值为 False,不进行 PhenoGenius 分析;可以指定为 True,打开 PhenoGenius 分析。
  3. Prioritiser 数据库控制:
    • 新增了一个 -prioritiserParams 参数,允许用户控制 Exomiser 使用哪些数据库。原代码中 Exomiser 默认使用的数据库为:human, mouse, fish, PPI;修改后默认使用的数据库为:human。用户可以提供一个由英文逗号分隔的列表,在这四个数据库中自由组合需要的数据库,如 -prioritiserParams “human,mouse”。

安装位置

AnnotSV 源码及安装位置在容器中的路径为:/opt/software/AnnotSV_3.5.3/AnnotSV/

免责声明:

在容器制作过程中,可能产生了各种错误或警告,并残留了一些日志或记录文件。作者对此类文件不承担责任,因为在安装过程中追踪每一个变更或新增记录是不可能的。如果用户需要根据相关记录学习AnnotSV的安装,务必研究测试一番。

此镜像目前正在被长期使用,期间如果发现任何发现的错误都将积极修复,修复后容器也会被更新到仓库中。

许可证

此代码库及打包软件的分发均遵守 GPL-3.0 条款。


如何使用

下载注释

Bash
#!/usr/bin/env bash
set -e

# 创建安装目录

echo "===== 开始下载所有文件 ====="

# Human
curl -C - -LO "https://www.lbgi.fr/~geoffroy/Annotations/Annotations_Human_3.5.tar.gz"
# Mouse
curl -C - -LO "https://www.lbgi.fr/~geoffroy/Annotations/Annotations_Mouse_3.4.2.tar.gz"
# Exomiser phenotype
curl -C - -LO "https://data.monarchinitiative.org/exomiser/data/2406_phenotype.zip"
# Exomiser JAR
curl -C - -LO "https://github.com/exomiser/Exomiser/releases/download/14.1.0/exomiser-rest-prioritiser-14.1.0.jar"

echo ""
echo "===== 下载完成,开始解压 ====="
mkdir -p ./AnnotSV_3.5.3_anno

# 解压 Human
tar -xf Annotations_Human_3.5.tar.gz -C ./AnnotSV_3.5.3_anno
# 解压 Mouse
tar -xf Annotations_Mouse_3.4.2.tar.gz -C ./AnnotSV_3.5.3_anno
# 解压 Exomiser phenotype
mkdir -p ./AnnotSV_3.5.3_anno/Annotations_Exomiser/2406
unzip -o 2406_phenotype.zip -d ./AnnotSV_3.5.3_anno/Annotations_Exomiser/2406
# 放置 Exomiser JAR
mkdir -p ./AnnotSV_3.5.3_anno/jar
mv exomiser-rest-prioritiser-14.1.0.jar ./AnnotSV_3.5.3_anno/jar

# 清理压缩包
# rm -f Annotations_Human_3.5.tar.gz
# rm -f Annotations_Mouse_3.4.2.tar.gz
# rm -f 2406_phenotype.zip

echo ""
echo "===== 所有数据安装完成 ====="
# echo "安装目录: $(pwd)"
查看完整代码

运行AnnotSV

本镜像基于singularity(Ver 3.5.3)构建,因此运行时依赖于singularity环境。

Bash
singularity exec AnnotSV_3.5.3.sif \
    AnnotSV \
        -SVinputFile 'Path of your VCF or BED input file with SV coordinates' \
        -outputFile 'Output path and file name' \
        -genomeBuild 'GRCh38 or GRCh37 or CHM13 or or mm9 or mm10' \
        -annotationsDir 'Path of the annotations directory' \
        -svtBEDcol 4 -vcf 0 \
        -PhenoGeniusCli True \
        -hpo "HP:0011003,HP:0030329" \
        -prioritiserParams human,ppi \
        -txFile 'Path of a file containing a list of preferred genes transcripts to be used in priority during the annotation (Preferred genes transcripts names should be tab or space separated)'
查看完整代码
  • -annotationsDir: 这里是我们前面下载的AnnotSV注释。每个版本的AnnotSV有着自己指定的注释库版本,按照前面指定的版本下载即可。
  • -PhenoGeniusCli: 这里是本容器中做的小修改。AnnotSV的原始设计中会检查-hpo是否有值,如果有值,PhenoGenius分析会默认开启。但是PhenoGenius有点慢,如果后续分析中用不到这个分析结果,那就没必要在生产环境中开启PhenoGenius分析。因此在这里添加了一个开关,默认关闭了PhenoGenius分析。
  • -prioritiserParams: 这里也是本容器中的小修改。AnnotSV使用exomiser时会使用所有的数据库参与打分(human,mouse,fish,ppi),导致更多的假阳性位点。科研环境可能不太在意,但是生产环境要尽可能降低假阳性率。因此在这里添加了一个参数,用于指定哪些数据库需要参与exomiser打分。
  • -txFile: 一个用来指定基因的优先选择的转录本的文件。可以是一行一个转录本编号,方便处理。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注