SyRI:从全基因组组装中找到基因组重排和局部序列差异

基因组差异从单核苷酸差异到复杂的结构变异。当前的方法通常能准确地注释从SNP到大插入缺失的序列差异,但无法揭示结构重排的全部复杂性,包括倒置,易位和重复,其中位置,方向或拷贝数高度相似的序列会发生变化。在这里,我们介绍了SyRI,这是一种用于染色体级程序集的成对全基因组比较工具。SyRI首先找到重排的区域,然后搜索序列中的差异,区别在于它们位于同位或重排的区域。这种区别很重要,因为重排区域与同同区域相比继承的方式有所不同。

文献资料:
Goel, M., Sun, H., Jiao, WB. et al. SyRI: finding genomic rearrangements and local sequence differences from whole-genome assemblies. Genome Biol 20, 277 (2019). https://doi.org/10.1186/s13059-019-1911-0
来源://mp.weixin.qq.com/s?__biz=MzUzMTEwODk0Ng==&mid=2247497455&idx=1&sn=989d626fe105967e592b12a6677f3cf3&chksm=fa4533d2cd32bac4f0ba6646ac74968cb72658bd1cd19bec3434d25723ad195f6bb2a0f8f61f&scene=132#wechat_redirect
SyRI githubs

SYRI的安装

pip install Cython numpy scipy pandas python-igraph psutil pysam matplotlib

从GitHub下载syri的最新版

python3 setup.py install

syri参数解析:
-F T,B,P,S 设置输入文件格式,Table,Bam,PAF,Sam

使用plotsr可视化找到的结构变异

安装plotsr

conda install -c bioconda plotsr
或者是pip安装依赖后,下载压缩包,使用

python3 setup.py install 

使用plotsr

安装完成后plotsr -h即可显示帮助文件

6个人类的10条染色体的结构变异信息

上图是6个人类的10条染色体的结构变异信息。
plotsr可以接受SYRI的输出的结果作为输入。
局部放大基因组结构变异

上图中a是放大了chr8:1–13 000 000之间的区域。这样可以更加清晰的看出倒位。
plotsr 论文
plotsr github

minimap2比对

# Align genomes
minimap2 -ax asm5 -t 4 --eqx A.fa B.fa \
 | samtools sort -O BAM - > A_B.bam
samtools index A_B.bam
minimap2 -ax asm5 -t 4 --eqx B.fa C.fa \
 | samtools sort -O BAM - > B_C.bam
samtools index B_C.bam
minimap2 -ax asm5 -t 4 --eqx C.fa D.fa \
 | samtools sort -O BAM - > C_D.bam
samtools index C_D.bam

SYRI鉴定结构变异

# Running syri for finding structural rearrangements between A and B
syri -c A_B.bam -r A.fa -q B.fa -F B --prefix A_B &
# Running syri for finding structural rearrangements between B and C
syri -c B_C.bam -r B.fa -q C.fa -F B --prefix B_C &
# Running syri for finding structural rearrangements between C and D
syri -c C_D.bam -r C.fa -q D.fa -F B --prefix C_D &

使用plotsr来可视化

plotsr \
    --sr A_Bsyri.out \
    --sr B_Csyri.out \
    --sr C_Dsyri.out \
    --genomes genomes.txt \
    -o output_plot.png

输出格式支持:pdf,svg,png

注释的结构变异类型的有效值:SYN、INV、TRA、INVTR、DUP、INVDP。

SYN :Syntenic 共线性
INV :Inversion 倒位
TRA :Translocation 易位
INVTR: Inverted translocation 倒位易位
DUP:Duplication 复制
INVDP:Inverted duplication 倒位复制

plotsr的参数:

输入/输出文件:
--sr SR 结构注释映射 (syri.out) 由 SyRI 输出(默认值:无)
--bp BEDPE 格式的 BP 结构注释映射(默认值:无)
--genomes GENOMES 包含基因组路径的文件(默认值:无)
--markers MARKERS 包含标记路径的文件(bed格式)(默认值:无)
--tracks TRACKS 文件列出要绘制的所有轨道的路径和详细信息(默认值:无)
--chrod CHRORD 包含参考(第一个基因组)染色体 ID 的文件,按照它们要绘制的顺序排列。文件每行需要一个染色体 ID。与 --chr 不兼容(默认值:无)
--chrname CHRNAME 包含要在图中使用的参考(第一个基因组)染色体名称的文件。文件需要是一个 TSV,第一列是染色体 ID,第二列是染色体名称。 (默认:无)
-o O 输出文件名。可接受的格式:pdf、png、svg(默认:plotsr.pdf)

数据过滤:
--itx 使用染色体间绘图模式(实验性)(默认:False)
--chr CHR 选择参考上的特定染色体(第一个基因组)并按给定顺序绘制它们。与 --chrord 不兼容。可以多次使用以选择多个染色体。 (默认:无)
--reg REG 绘制特定区域。用作:GenomeID:ChromosomeID:Start-End。与 --chr 和 -R 不兼容。 (默认:无)
--rtr 使用 --reg 时,绘制同源区域边界内的所有 SR。对于高度缩放的区域,这可能会导致视觉上断开的对齐。 (默认:False)
--nosyn 不绘制同线区域(默认值:False)
--noinv 不绘制反转图(默认值:False)
--notr 不绘制易位区域(默认值:False)
--nodup 不绘制重复区域(默认值:False)
-s S 要绘制的 SR 的最小尺寸(默认值:10000)

图片样式调整:
--cfg CFG 配置文件的路径,其中包含调整绘图的参数。 (默认:无)
-R 如果相邻的同线块没有被 SR 打断,则加入它们。使用它可以减少可视化中的差距。 (默认:False)
-f F 字体大小(默认值:6)
-H H 绘图高度(默认值:无)
-W W 绘图的宽度(默认值:无)
-S S 同源染色体空间 (0.1-0.75)。调整此项可为注释标记/文本和轨道腾出更多空间。 (默认值:0.7)
-d D DPI 用于最终图像(默认值:300)
-b {agg,cairo,pdf,pgf,ps,svg,模板}
要使用的 Matplotlib 后端(默认值:agg)
-v 绘制垂直染色体(默认值:False)

R1

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R1.pdf -W 7 -H 10 -f 8 --cfg base.cfg --markers markers.bed


R1展示了所有的染色体,所有的基因和SNP

R2

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R2.pdf -W 7 -H 10 -f 8 --cfg base.cfg -v --markers markers.bed


R2和R1一样,只是换成竖向排版使用的是-v参数

R3

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R3.pdf -W 7 -H 10 -f 8 --cfg base.cfg --chr Chr1 --chr Chr3 --chr Chr4 --markers markers.bed


R3使用--chr参数来只显示指定的1,3,4染色体

R4

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R4.pdf -W 7 -H 10 -f 8 --cfg base.cfg -v --markers markers.bed --chr Chr1 --chr Chr3 --chr Chr4


R4是R3的竖向排版

R5

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R5.pdf -W 7 -H 10 -f 8 --cfg base.cfg --reg col-0:Chr3:6600000-10000000 --markers markers.bed


R5是只显示col-0的Chr3的区域

R6

plotsr --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.5 -o R6.pdf -W 7 -H 10 -f 8 --cfg base.cfg -v --markers markers.bed --reg col-0:Chr3:6600000-10000000


R6的是R5的竖版

ITX

R7

plotsr --itx --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.7 -o R7.pdf -W 7 -H 10 -f 8 --cfg base.cfg --markers markers.bed


R7是使用染色体间模式

R8

plotsr --itx --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.7 -o R8.pdf -W 7 -H 10 -f 8 --cfg base.cfg -v --markers markers.bed


显示染色体模式,竖版

R9

plotsr --itx --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.7 -o R9.pdf -W 7 -H 10 -f 8 --cfg base.cfg --chr Chr1 --chr Chr3 --chr Chr4 --markers markers.bed


R9显示染色体1,3,4

R10

plotsr --itx --sr col_lersyri.filtered.out --sr ler_cvisyri.filtered.out --sr cvi_erisyri.filtered.out --genomes genomes.txt --tracks tracks.txt -S 0.7 -o R10.pdf -W 7 -H 10 -f 8 --cfg base.cfg -v --markers markers.bed --chr Chr1 --chr Chr3 --chr Chr4


R10只显示指定的染色体同时竖版

col_lersyri.filtered.out是syri的输出结果,格式如下

Chr1    1       1084    -       -       -       -       -       NOTAL1  -       NOTAL   -
Chr1    1085    1771083 -       -       Chr1    1       1773924 SYN1    -       SYN     -
Chr1    1085    158550  -       -       Chr1    1       157500  SYNAL1  SYN1    SYNAL   -
Chr1    158551  158596  -       -       Chr1    157501  157556  HDR1    SYN1    HDR     -
Chr1    158597  270144  -       -       Chr1    157557  269099  SYNAL2  SYN1    SYNAL   -
Chr1    270145  270250  -       -       Chr1    269100  269178  HDR2    SYN1    HDR     -
Chr1    270251  587468  -       -       Chr1    269179  585993  SYNAL3  SYN1    SYNAL   -

genomes.txt 格式如下:控制主图的线条颜色和宽度

##ft    =   File type (fa:fasta/cl:chromosome_length, default = fa. cl files are fasters)
##lc    =       line colour
##lw    =       line width
#file   name    tags
TAIR10_Filtered.chrlen  col-0   ft:cl;lw:1.5
ler.chrlen      ler     ft:cl;lw:1.5
cvi.chrlen      cvi     ft:cl;lw:1.5
eri.chrlen      eri     ft:cl;lw:1.5

tracks.txt是控制使用的文件,里面可以指定gff或bed文件,

##ft = File type (bed/bedgraph/gff, default = bed)
##bw = bin width (default=100000)
##nc = name colour
##ns = name size
##nf = name font
##nm = name margin      # Additional margin between name and track. Fraction between [0,1]
##lc = line colour
##lw = line width
##bc = background colour
##ba = background alpha
#file   name    tags
TAIR10_GFF3_genes.gff   Genes   ft:gff;bw:10000;nc:black;ns:8;nf:Arial;lc:blue;lw:4;bc:lightblue;ba:0.5;nm:0.05
1001genomes.snps.sorted.bed     SNPs    bw:10000;nc:black;ns:8;nf:Arial;lc:sienna;lw:1;bc:peachpuff;ba:0.5
Giraut2011_centromeres.bed      Centromeres     bw:10000;nc:black;ns:8;nf:Arial;lc:olive;lw:1;bc:palegreen;ba:0.5

head TAIR10_GFF3_genes.gff格式如下:主要是显示基因密度

Chr1    TAIR10  chromosome      1       30427671        .       .       .       ID=Chr1;Name=Chr1
Chr1    TAIR10  gene    3631    5899    .       +       .       ID=AT1G01010;Note=protein_coding_gene;Name=AT1G01010
Chr1    TAIR10  mRNA    3631    5899    .       +       .       ID=AT1G01010.1;Parent=AT1G01010;Name=AT1G01010.1;Index=1
Chr1    TAIR10  protein 3760    5630    .       +       .       ID=AT1G01010.1-Protein;Name=AT1G01010.1;Derives_from=AT1G01010.1
Chr1    TAIR10  exon    3631    3913    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  five_prime_UTR  3631    3759    .       +       .       Parent=AT1G01010.1
Chr1    TAIR10  CDS     3760    3913    .       +       0       Parent=AT1G01010.1,AT1G01010.1-Protein;

head 1001genomes.snps.sorted.bed格式如下

Chr1    54      55      C       T
Chr1    55      56      T       A
Chr1    62      63      T       C
Chr1    72      73      C       A
Chr1    74      75      T       A
Chr1    79      80      G       T
Chr1    82      83      T       C
Chr1    82      83      T       A
Chr1    87      88      A       T

head Giraut2011_centromeres.bed格式如下

Chr1    13655620        15981659
Chr2    2300148 5706797
Chr3    11453352        15264347
Chr4    1609393 5078092
Chr5    10783157        13187261

同样,你可以自由的在tracks.txt里添加或删除行,来显示更多或更少的种类的信息。例如可以加上indel的信息,加上重复序列信息等,只要格式是bed,前三列是染色体,start,end使用tab分割符合即可。
cat markers.bed内容如下,用于控制显示在染色体的指定位置的marker信息

##mt = bin width (default=100000)
##mc = name colour
##ms = name size
##tt = name font
##tc = line colour
##ts = line width
##tf = background colour
##tp = background colour
#chr    start   end genome_id   tags
Chr3    4035330 4035331 eri     mt:v;mc:black;ms:3;tt:Inversion 1;tp:0.02;ts:8;tf:Arial;tc:black
Chr4    2322547 2322548 ler     mt:^;mc:black;ms:3;tt:Inversion 2;tp:-0.07;ts:8;tf:Arial;tc:black
Chr3    8792851 8792852 col-0   mt:.;mc:red;ms:10;tt:Notal aligned;tp:0.02;ts:8;tf:Arial;tc:black

cat base.cfg基本不用修改,用于绘图的边距控制

## COLOURS and transparency for alignments (syntenic, inverted, translocated, and duplicated)
syncol:#CCCCCC
invcol:#FFA500
tracol:#9ACD32
dupcol:#00BBFF
alpha:0.8
## Margins and dimensions:
chrmar:0.1              ## Adjusts the gap between chromosomes and tracks. Higher values leads to more gap
exmar:0.1               ## Extra margin at the top and bottom of plot area
## LEGEND
legend:T                ## To plot legend use T, use F to not plot legend
genlegcol:-1            ## Number of columns for genome legend, set -1 for automatic setup
bbox:0,1.01,0.5,0.3             ## [Left edge, bottom edge, width, height]
bbox_v:0,1.1,0.5,0.3    ## For vertical chromosomes (using -v option)
bboxmar:0.5             ## Margin between genome and annotation legends

你可能感兴趣的:(SyRI:从全基因组组装中找到基因组重排和局部序列差异)