基因在染色体上位置可视化

感谢CJ大神的反复修改,这个功能越变越好了!
本文旨在复现CJ大神推文内容,具体请参考“省心炸鸡”,手动狗头(https://www.jianshu.com/p/b9034ce82ec2)

首先需要获取的是染色体位置,我的办法是在GFF3文件里取得。



复制出来的文件都在同一个单元格里,这个时候只需要使用分列功能就能把信息分开。




保存为txt文件
Chr Length
1A 594102056
1B 689851870
1D 495453186
2A 780798557
2B 801256715
2D 651852609
3A 750843639
3B 830829764
3D 615552423
4A 744588157
4B 673617499
4D 509857067
5A 709773743
5B 713149757
5D 566080677
6A 618079260
6B 720988478
6D 473592718
7A 736706236
7B 750620385
7D 638686055

之后需要准备基因位置文件,首先用tbtools提取所有基因的ID和位置。这里使用GFF3 gene position parse。正经的IOS(input,output,start)流程没什么可说的。



之后再input之前获得的文件。在set condition text填入需要提取的gene ID。模式选择包含(contain),过滤模式选择提取(extract)。



需要注意的是,提取出来的文件行列不能直接使用,需要设置table行列。

第一列gene或者transcript ID,第二列chromosome,第三列起始位置,第四列结束为止,第五列图形分组(从0开始排起,目前只试过四种最多几种不清楚)。需要注意的是,该功能里merge会把不同颜色的基因堆叠在一起,而如果ID来自不同的图形分组(第五列信息)则不会。
填入对应信息即可


默认全部分成一组的话,你就能得到



显然没什么意义,分成三组,再加入颜色信息。



说个题外话,关于颜色的批量填充,在excel里按照组分类可以写个if套娃,例如下面这样
=if(c1=0,"253,180,98",if(c1=1,"228,26,28","31,120,180"))

也可以写个index,然后用match去返回需要的颜色标签(R,G,B)

=INDEX({"253,180,98","228,26,28","31,120,180"},MATCH(C1,{0,1,2},0))

同理,你可以用类似方法给自己的基因批量分类。
最后的最后,一定要换形状,否则merge的时候信息会出错。


错误的merge

正确的merge.png

哦对了 基因密度信息请参考这里:https://www.jianshu.com/p/801807865864
最后,祝大家磕盐顺利

你可能感兴趣的:(基因在染色体上位置可视化)