HGVS突变符号转换(Python hgvs)


HGVS表示法中的突变相互转换

使用Ensembl variant_recoder的方法需要一定的转换时间,因此这次让我们使用biocommons / hgvs转换突变描述

使用Docker重新工作
由于使用hgvs需要Python 3.6或更高版本,因此请使用python作为docker映像(在编写本文时为Python 3.7.2)
下载python图像

1
2
$ docker pull python
$ docker run -it python /bin/bash

工作程序

这项工作在python容器内完成
主要程序如下

  • 在Docker内部构建hgvs操作环境

    • hgvs安装
    • seqrepo的安装
    • 下载Fasta阵列和数据库
1
2
3
4
5
6
7
$ pip install hgvs
$ apt update
$ apt upgrade -y
$ apt install -y tabix rsync
$ pip install seqrepo
$ mkdir /usr/local/share/seqrepo
$ seqrepo pull

seqrepo pull开始下载数据库和Fasta数据
下载后seqrepo 2018-11-26的大小约为11GB

1
2
$ du -sh /usr/local/share/seqrepo
11G /usr/local/share/seqrepo

检查下载的数据

1
2
$ ls -d /usr/local/share/seqrepo/*
/usr/local/share/seqrepo/2018-11-26

记下该目录,因为稍后启动docker容器时将需要它

创建Docker映像

将到目前为止已执行的docker容器保存为图像

分离docker容器的按键
按Ctrl p Ctrl q

光标返回到主机,因此请检查容器的当前状态

1
2
3
$ docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c9342540d9b5        python              "/bin/bash"         23 hours ago        Up 23 hours                             modest_wilson

请注意,

CONTAINER ID对于每个操作

是不同的

已在

以上确认停止容器

1
$ docker stop c93

stop之后指定的ID应该是识别

所需的最小长度。

使用停止的docker容器创建docker映像的c93部分与以前一样是CONTAINER ID,因此每个操作都不同
在此处获得的hgvs为1.2.5.post1,因此名称更改为hgvs:1.2.5.post1
由于seqrepo

的大小,图像创建需要时间

1
$ docker commit c93 hgvs:1.2.5.post1
1
2
3
$ docker images hgvs
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hgvs                1.2.5.post1         b82d7412ceeb        15 minutes ago      12.4GB

创建了一个大容量12.4GB的容器

使用hgvs

到目前为止,您已经准备好了所有步骤,现在让我们使用hgvs将cdna序列中的突变转换为基因组上的突变。
在当前目录

中准备以下程序

convert_ctog.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/local/bin/python3
import sys
from hgvs import parser, variantmapper, assemblymapper
from hgvs.dataproviders import uta

target = 'NM_000603.4:c.894T>G'
if len(sys.argv) > 1:
    target = sys.argv[1]

#Set uta
hdp = uta.connect()

#prepare hgvs parser
parser = parser.Parser()
variant = parser.parse_hgvs_variant(target)
print(variant)

# prepare human genome mapper
mapper_grch37 = assemblymapper.AssemblyMapper(hdp, assembly_name='GRCh37', alt_aln_method='splign')

# map to genome
mapped = mapper_grch37.c_to_g(variant)
print(mapped)

命令的用法如下

1
2
3
4
5
6
7
8
docker run -it \
    -u "$(id -u):$(id -g)" \
    -e HGVS_SEQREPO_DIR="seqrepoでダウンロードしたデータ及びシーケンスのディレクトリ" \
    -e UTA_DB_URL="UTAのpostgres SQLサーバーの接続先" \
    -v ${PWD}:/work \
    --workdir /work \
    hgvs:1.2.5.post1 \
    ./convert_ctog.py

NM_000603.4:c.894T>G查找GRCh37的突变位置的示例如下

1
2
3
4
5
6
7
8
9
10
$ docker run -it \
-u "$(id -u):$(id -g)" \
-e HGVS_SEQREPO_DIR="/usr/local/share/seqrepo/2018-11-26" \
-e UTA_DB_URL="postgresql://anonymous:[email protected]/uta/uta_20180821" \
-v ${PWD}:/work \
--workdir /work \
hgvs:1.2.5.post1 ./convert_ctog.py `NM_000603.4:c.894T>G`
NM_000603.4:c.894T>G
NC_000007.13:g.150696111T>G
Closing connection; future mapping and validation will fail.

使用您先前为

HGVS_SEQREPO_DIR 写下的目录
对于UTA_DB_URL,设置最新的UTA(通用记录存档)
检查dl.biocommons.org,而uta_20180821是最新的
UTA_DB_URL =" postgresql://匿名:[email protected]/uta/uta_20180821"

您还可以在

./convert_ctog.py 之后给出一个参数
'NM_182763.2:c.688 403C