当前位置: 首页 > news >正文

完整进行一次共线性分析

(随便找个基因家族)

1.数据收集

使用水稻、拟南芥、玉米三种作物进行示例

可以直接去ensemble去找最标准的基因组fasta文件和gff文件。

2.预处理数据

这里对于fasta和gff数据看情况要不要过滤掉线粒体叶绿体的基因,数据差异非常大,这里要自己写脚本处理一下

不同脚本:.....

import pandas as pdf_gff = pd.read_csv("Arabidopsis_thaliana.TAIR10.61.v3.gff3", sep="	", comment="#", header=None)#不保留叶绿体 线粒体基因
f_gff = f_gff[f_gff[0].apply(lambda x: isinstance(x, int))]
f_gff[0] = f_gff[0].astype(str)f_gff[0] = 'Chr' + f_gff[0]#加上Chr前缀
f_gff.to_csv("Arabidopsis_thaliana.TAIR10.61.v4.gff3", sep="	", header=None, index=False)
import pandas as pdf_gff = pd.read_csv("osa1_r7.all_models.v3.gff3", sep="	", comment="#", header=None)
f_gff = f_gff[f_gff[0].str.match(r'Chr\d+')]
f_gff.to_csv("osa1_r7.all_models.v4.gff3", sep="	", header=None, index=False)

然后:

#依次对数据进行预处理> 此处为linux虚拟机 conda环境下
——————————————————————————————————————————————————————————————————————
1.先对gff进行预处理,这里先用tbtools做了修复(gxf fix),然后这里再uniq去除一下冗余转录本:
python -m jcvi.formats.gff uniq  --type=mRNA data/Arabidopsis/Arabidopsis_thaliana.TAIR10.61.v2.gff3 -o data/Arabidopsis/Arabidopsis_thaliana.TAIR10.61.v3.gff3 python -m jcvi.formats.gff uniq  --type=mRNA data/maize/b73_fixed.gff3 -o data/maize/b73_v3.gff3 python -m jcvi.formats.gff uniq  --type=mRNA data/rice/osa1_r7.all_models2.gff3 -o data/rice/osa1_r7.all_models.v3.gff3 ————————————————————————————————————————————————————————————————————————
#然后转bed 为了保险再primary_only一下、这里的指令肯定是要自己调整的,比如我的玉米gff里面gene没有Name字段,就要改成IDpython -m jcvi.formats.gff bed --type=mRNA --key=transcript_id --primary_only data/Arabidopsis/Arabidopsis_thaliana.TAIR10.61.v3.gff3 -o data/Arabidopsis/Arabidopsis_thaliana.TAIR10.61.bedpython -m jcvi.formats.gff bed --type=gene --key=ID --primary_only data/maize/b73_v2.gff3  -o data/maize/b73.bedpython -m jcvi.formats.gff bed --type=gene --key=Name --primary_only data/rice/osa1_r7.all_models.v3.gff3  -o data/rice/osa1_r7.all_models.bed——————————————————————————————————————————————————————————————————————————

到这里就获得了三个物种的bed文件

#最后一步要准备所有物种的cds,可以从官网下载,但是如果gff和fasta都没有问题了,也可以用tbtools直接提取,好像更不容易出错

总之 你最后要整理这些文件:

并保持cds和bed中的名称一致

3.开始

#这里需要依赖
conda install bioconda::last先尝试两个物种间的情况#分别计算
#太严格基本匹配不到
python -m jcvi.compara.catalog ortholog maize Arabidopsis --cscore=.99 --no_strip_names#先使用这个把
python -m jcvi.compara.catalog ortholog maize Arabidopsis --no_strip_names python -m jcvi.compara.catalog ortholog maize rice --no_strip_names --exclude EXCLUDE

 这里生成.simple文件

python -m jcvi.compara.synteny screen --minspan=30 --simple maize.Arabidopsis.anchors maize.Arabidopsis.anchors.new python -m jcvi.compara.synteny screen --minspan=30 --simple maize.rice.anchors maize.rice.anchors.new 

然后这里最终需要的是3个文件:

1.layout_2_1:

# y, xstart, xend, rotation, color, label, va,  bed.6,     .1,    .8,       0,      , maize, top, maize.bed.4,     .1,    .8,       0,      , Arabidopsis, top, Arabidopsis.bed
# edges
e, 0, 1, maize.Arabidopsis.anchors.simple

2.seqids_2_1

chr1,chr2,chr3,chr4,chr5,chr6,chr7,chr8,chr9,chr10
1,2,3,4,5

3.maize.Arabidopsis.anchors.simple

python -m jcvi.graphics.karyotype seqids_2_1 layout_2_1python -m jcvi.graphics.karyotype --basepair seqids_2_3 layout_2_3

还没写完

——————

http://www.xdnf.cn/news/383095.html

相关文章:

  • Java代理
  • Android开发-图像显示
  • 如何通过合法数据变现实现收入增长
  • LVGL对象的盒子模型和样式
  • Arduino 开源按键库大合集(单击/双击/长按实现)
  • VB与Excel无缝连接实现指南
  • 编译后的js文件如何跟进调试
  • OpenAI的商业化之路:从非营利到盈利的转型
  • IC ATE集成电路测试学习——开尔文连接
  • 最速下降法和梯度下降法的异同
  • python基础(十一)-逻辑运算符
  • nextjs 部署失败:cause: Error: unable to verify the first certificate
  • C语言加餐--一些关键字
  • 数字信号处理|| 离散系统的冲激响应和阶跃响应
  • 【Python训练营打卡】day21 @浙大疏锦行
  • 101alpha第九
  • 一、ArkTS语法学习
  • Qt 界面优化(QSS)
  • 【数据结构与算法】——图(二)
  • 《AI大模型应知应会100篇》第54篇:国产大模型API对比与使用指南
  • 【Redis】基础命令数据结构
  • Spring框架核心知识全解析:从基础到实战
  • [面试]SoC验证工程师面试常见问题(六)高速接口篇
  • 含锡电镀废水深度净化技术体系解析化利用的全流程优化
  • pytest自动化测试执行环境切换的两种解决方案
  • 树莓派OS系统详解
  • 动态规划法:爬楼梯
  • C++模板梳理
  • JAVA练习题(3) 开发验证码
  • 如何避免软件腐朽