温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用python的MCScanX分析物种间分共线性

发布时间:2022-03-02 09:39:22 来源:亿速云 阅读:266 作者:iii 栏目:开发技术

今天小编给大家分享一下怎么用python的MCScanX分析物种间分共线性的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1. 安装

这里可以分两步,分别是安装LASTAL和jcvi python包。

LASTAL下载地址: http://last.cbrc.jp/,编译后将 lastal 和 lastdb 添加到PATH中。

jcvi安装比较简单,在命令行直接运行下列命令:

pip install jcvi

2. 数据下载

运行MCscan需要序列以及坐标文件,分别是fasta格式以及BED格式的,例如,可以从Phytozome下载cds的序列文件以及gff文件,再由gff文件生成BED文件。当然JCVI有相应的方法,可以直接下载,省去我们自己下载整理数据的麻烦,具体操作如下:

$ python -m jcvi.apps.fetch phytozome

...

         Acoerulea               Alyrata             Athaliana

       Bdistachyon                 Brapa           Cclementina

           Cpapaya          Creinhardtii              Crubella

          Csativus             Csinensis Csubellipsoidea_C-169

          Egrandis                Fvesca                  Gmax

        Graimondii        Lusitatissimum            Mdomestica

        Mesculenta             Mguttatus     Mpusilla_CCMP1545

   Mpusilla_RCC299           Mtruncatula          Olucimarinus

           Osativa               Ppatens              Ppersica

      Ptrichocarpa             Pvirgatum             Pvulgaris

         Rcommunis              Sbicolor              Sitalica

     Slycopersicum       Smoellendorffii            Stuberosum

            Tcacao            Thalophila              Vcarteri

         Vvinifera                 Zmays         early_release

...

$ python -m jcvi.apps.fetch phytozome Vvinifera,Ppersica

...

$ ls

Ppersica_139_cds.fa.gz  Ppersica_139_gene.gff3.gz  Vvinifera_145_cds.fa.gz  Vvinifera_145_gene.gff3.gz

GFF转BED:

$ python -m jcvi.formats.gff bed --type=mRNA --key=Name Vvinifera_145_gene.gff3.gz -o grape.bed
$ python -m jcvi.formats.gff bed --type=mRNA --key=Name Ppersica_139_gene.gff3.gz -o peach.bed

如果参考基因组没有cds的序列文件,可下载染色体序列,根据gff文件提取cds序列。

3. 成对共线性搜索

准备好输入文件后,就可以进行共线性搜索了。首先要将工作目录切换到输入文件所在目录,然后运行如下命令:

$ python -m jcvi.compara.catalog ortholog grape peach
20:33:42 [base] lastdb peach peach.cds
20:34:13 [base] lastal -u 0 -P 64 -i3G -f BlastTab peach grape.cds >grape.peach.last
20:34:30 [synteny] Assuming --qbed=grape.bed --sbed=peach.bed
20:34:31 [blastfilter] Load BLAST file `grape.peach.last` (total 403868 lines)
20:34:31 [base] Load file `grape.peach.last`
20:34:38 [blastfilter] running the cscore filter (cscore>=0.70) ..
20:34:39 [blastfilter] after filter (294217->31229) ..
20:34:39 [blastfilter] running the local dups filter (tandem_Nmax=10) ..
20:34:39 [blastfilter] after filter (31229->21089) ..
...
A total of 30654 (NR:18661) anchors found in 678 clusters.
Stats: Min=4 Max=683 N=678 Mean=45.2123893805 SD=80.8407828815 Median=16.0 Sum=30654
NR stats: Min=4 Max=460 N=678 Mean=27.5235988201 SD=48.0461479616 Median=11.0 Sum=18661

运行结束后会得到以下几个文件

$ ls grape.peach.*
grape.peach.lifted.anchors  grape.peach.anchors  grape.peach.last.filtered  grape.peach.last

4. 成对同线性可视化

观察成对的共线性的最佳可视化方法是使用dotplot,这里只需要一条命令。

$ python -m jcvi.graphics.dotplot grape.peach.anchors

5. 线性可视化

我们还可以使用同样的共线性输出文件做不同的可视化图片。这里需要在准备两个输入文件,seqids 文件和 layout 文件。

前者为两个基因组都包括哪些的染色体,这里最好移除较短的scaffolds,文件格式如下所示:

chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10,chr11,chr12,chr13,chr14,chr15,chr16,chr17,chr18,chr19
scaffold_1,scaffold_2,scaffold_3,scaffold_4,scaffold_5,scaffold_6,scaffold_7,scaffold_8

其中第一行为葡萄所包含的19个染色体,第二行为桃子包含的8个染色体。

后者为画图所需的配置文件,格式如下:

# y, xstart, xend, rotation, color, label, va,  bed
 .6,     .1,    .8,       0,      , Grape, top, grape.bed
 .4,     .1,    .8,       0,      , Peach, top, peach.bed
# edges
e, 0, 1, grape.peach.anchors.simple

其中前三列指定了轨迹的位置,然后是rotation, color, label, vertical alignment (va), 和 基因组 BED 文件.最后是连线的绘制,信息来自grape.peach.anchors.simple文件。

grape.peach.anchors.simple由以下命令生成:

$ python -m jcvi.compara.synteny screen --minspan=30 --simple grape.peach.anchors grape.peach.anchors.new

然后,我们就可以绘图了!

$ python -m jcvi.graphics.karyotype seqids layout

6. 共线性结果说明

1.基因组共线性详细结果文件,过滤掉不可靠的共线性区块之后的文件:*.anchors.new,第一列为一个 基因组基因ID,第二列为另一个基因组的基因ID文件,即是两个基因组共线性区域内基因对应关系;

不同的共线性区块用“###” 隔开

2.基因组共线性简化结果文件:* anchors.simple;一行为一个共线性区块,前两列表示一个基因组中两个基因组之间的区域,与后两列(3,4列)另一个基因组中的两个基因之间的区域存在共线性关系;

第5列物区域跨度,最后一列为: +为正向,-为反向


3.如果要设置颜色,可修改2.中的文件,也就是在需要修改颜色的行头部加上颜色值,具体格式如下:

注意颜色值为16进制,*隔开; 没有添加颜色值的行默认灰色

以上就是“怎么用python的MCScanX分析物种间分共线性”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI