免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1848 | 回复: 3

求处理一个基因坐标的文件,非常复杂,求思路 [复制链接]

论坛徽章:
0
发表于 2012-07-12 21:24 |显示全部楼层
本帖最后由 feiyue0908 于 2012-07-12 21:36 编辑

文件格式是(我只粘贴了一行,行用\t分开,为了显示的正确,我用数字标记了列数,总共11列):

   1                2           3         4             5                     6                       7                    8                 9
1440    NM_000038        chr5        +        112073555        112181936        112090587        112179823        16       


                                                                                                    10
112073555,112090569,112102022,112102885,112111325,112116486,112128142,112136975,112151191,112154662,112157592,112162804,112163625,112164552,112170647,112173249,       

                                                                                                   11
112073622,112090722,112102107,112103087,112111434,112116600,112128226,112137080,112151290,112155041,112157688,112162944,112163703,112164669,112170862,112181936,



列5,列6是一对,是这行,也是一个基因,总的起点和终点。
列7,列8是一对,是列5,6内部的一部分。
列9是列10和列11逗号分开的数的个数。
列10和列11是把列5列6之间,分割成exon1,intron1,exon2, intron2.............(意思是112073555到112073622是exon1,112073622到112090569是intron1, 112090569到112090722是exon2,112090722到112102022是intron2.......)



-----------------------------------------------------------------------------------------------------------------------------------------------



计算

例如已知 chr5      112176756

想得到的结果是112176756属于哪个exon或者intron



两个文件都有很多行,只粘贴了一行来解释

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
发表于 2012-07-12 23:56 |显示全部楼层
本帖最后由 Monox 于 2012-07-13 00:04 编辑

回复 1# feiyue0908


    你要思路的话就是我不用给你写代码了,如果你一开口要的是代码的话我就不会回复了。

 其实感觉并不像你说的那样复杂,反而意料不到的简单。
首先,如果要找 chr5 112176756 属于那个 exon 或者 intron,我们有第四列正好是 chr5,然后有 112073555 < 112176756 < 112181936,所以判断就是这条 transcript 了,然后第十列没有比 112176756 大的值,所以我们要找的是最后一个 exon,也就是 exon16,如果我们要找的不是 112176756,而是任意介于 112073555 和 112181936 之间的值的话,我们刚才已经探讨了第十列没有比其大的值的情况,现在我们假定第十列第 x 个值比我们要找的值大(如果正好和第 x 个值相等的话,那么应该被认为是第 x 个 exon),第 x 个值之前的值均比它小,那么我们要找的这个结果就只可能是第 x-1 个 exon 或者 intron,我们拿这个值和第 11 列的第 x-1 个值进行比较,如果它大于或者等于第 11 列的第 x-1 个值的话,那么就是第 x-1 个 iintron,否则就是第 x-1 个 exon。





话说这是 Perl 版块,最近总有人问生物信息问题。

论坛徽章:
0
发表于 2012-07-16 12:47 |显示全部楼层
本帖最后由 royalzhang 于 2012-07-16 12:48 编辑

我的做法:
先把你的基因注释数据库(refGene?knownGene?)中所有的feature输出成BED格式,再转成BigBed格式;
最后用模块
  1. Bio::DB::BigBed
复制代码
来进行查询。

这个的好处是速度快。
楼上的思路也行,但若注释很多位置,并且查询的目标库较大的时候,会比较慢。

论坛徽章:
0
发表于 2012-07-27 08:47 |显示全部楼层
回复 3# royalzhang


    用复杂的方法,已经编好了,因为还要处理其他的,这个程序太长了。我尝试下你的建议,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP