分享

syri | 比较基因组神器~软件入门与测评

 生信药丸 2021-11-08


基因组共线性和结构重排检测


SyRI (Synteny and Rearrangement Identifier) 仅从基因组层面上检测结构变异的软件,有效地预测基因组之间差异。

可用于识别共线性区块、结构重排(易位、倒置、重复)、局部变异等情况。


安装

  • 安装依赖

#如果环境的python不是3.5,就创建一个新的conda环境#如果python也是3.5可以跳过创新环境和进入syri环境conda create -n syri python=3.5conda activate syriconda install cython numpy scipy pandas=0.23.4 biopython psutil matplotlib=3.0.0conda install -c conda-forge python-igraphconda install -c bioconda pysam
  • 下载安装包

git clone https://github.com/schneebergerlab/syri.git
python3 setup.py installcd syrichmod +x syri/bin/syri syri/bin/chroder syri/bin/plotsrsyripath=`pwd`

运行

  • 软件载入

#设置Syri的工作路径PATH_TO_SYRI=$syripath/syri/bin/syri #设置poster的执行路径PATH_TO_PLOTSR=$syripath/syri/bin/plotsr
mkdir syriWokespace
  • 利用两个近源物种的同源染色体来测试一下

  • 首先,我已知Lc物种的1号染色体和Ly物种的1号染色体是同源对应关系。

  • 最好保证染色体名字一样,否则SyRI运行的时候,增加--no-chrmatch参数
    使用seqkit/seqtk 提取以下序列。

Lc.Chr1.fasta Ly.Chr1.fasta
  • 再排个小雷,还必须是同向比对才能被SYRI识别,所以需要对其中一条反向互补 。

seqkit seq -rp ly.chr1.fasta > ly.chr1-rp.fasta
ln -s Lc.Chr1.fasta refgenome ln -s ly.chr1-rp.fasta qrygenome
  • 两套基因组序列进行nucmer比对

#-m会删除冗余比对,maxmatch 会识别所有比对nucmer --maxmatch -c 100 -b 500 -l 50 qrygenome refgenome#筛选长度>100bp,匹配度>90% 的匹配情况delta-filter -m -i 90 -l 100 out.delta > out.filtered.delta#展示可被SyRI识别的文本格式show-coords -THrd out.filtered.delta > out.filtered.coords
  • SyRI的运算

python3 $PATH_TO_SYRI -c out.filtered.coords -d out.filtered.delta -r refgenome -q qrygenome

  • 排个小雷:
    ImportError: No module named 'syri'

    当遇到这个报错,冷静、成熟、不慌。

  • 可能有朋友跟我原始环境是python3.7以上,在安装过程没出问题过。但是运行过程才发现,oh原来是需要3.5的python。回头降级完3.5,用3.5的python运行syri核心程序,就报错了。

  • 因为在安装的时候python setup.py install 应该是将syri装在3.7的python包里。

  • 这个时候,只要使用 python3.5版本再运行一次setup.py就ok啦。


  • 出图

python3 $PATH_TO_PLOTSR syri.out refgenome qrygenome -H 4 -W 10
  • 有一些指标是需要注意的:

    -o 可以输出pdf,png,svg的格式

-H -W 分别对应高和宽。可以通过设置数值调整比例。


结果分析

  • 结果文件

syri.out #检测序列变异的文本信息syri.vcf #检测序列vcfsyri.summary #变异类型统计文件syri.pdf #输出图
  • syri.out
    顺序依次为:参考染色体/起始位置/结束位点/参考位点/等位位点/比对染色体(query)/起始位点(query)/结束位点(query)/类型+顺序(ref)/类型+顺序(query)/注释类型/复制状态

Chr1 99004 99004 T C Chr1 2430581 2430581 SNP1276 INV334 SNP -Chr1 99009 99009 T C Chr1 2430576 2430576 SNP1277 INV334 SNP -Chr1 99026 99026 T A Chr1 2430559 2430559 SNP1278 INV334 SNP -Chr1 99031 99035 CGATT C Chr1 2430554 2430554 DEL1279 INV334 DEL -

其中 INV-反转区域,SYN-共线区块

  • syri.pdf

还是相对直观地看到一对同源染色体的情况,灰色区域为共线关系区域,黄色为翻转区域,绿色为易位区域,蓝色为发生重复的区域。

原理简述

  • SyRI 最主要是识别比对文件,即table/bam/sam格式,进行识别相关区域。

  • 除了 nucmer比对形成的table,还可以用minimap2比对形成的sam文件作为SyRI的输入文件。

  • 1. 利用有向无环图(DAG),按顺序确定依次共线区域。

  • 2a. 倒置定义在两个共线区域之间,注释倒置区间。

  • 2b. 易位定义在跨越共线性区域,注释易位区间。

  • 2c. 如果多对同源染色体,跨越其他染色体的比对区域,会标注易位/复制区域。

  • 3. 基于比对情况(共线性/重排区域)的序列,检测序列的差异。

最后

事实上,准备SyRI运行的文件还是比较麻烦,毕竟我今天一直在雷区蹦迪。
既要提前确定相互成对的染色体、保证同方向比对等条件(可能都与这个软件比较早开发的原因)。
不过,看到变异信息文件和图片,还是“真香“。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多