免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5361 | 回复: 9
打印 上一主题 下一主题

【问题】对区间匹配计算 [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-17 21:31 |显示全部楼层 |倒序浏览
30可用积分
本帖最后由 huang6894 于 2014-08-18 14:42 编辑

各位大神,想继续请教一个问题:

对于下面两个文本,文本1每段是以两个换行符区分的,每段的第一行是该段的总描述,第2行至最后一行是该段所有区间的信息,其中,第一行第1列和第9列是整个文本唯一的,这里作为key值。第2行至最后一行中第1列是区间名称,第2列是区间起始位置,第3列是终止位置。
如果引入文本2:如果文本2第2、5、6列相同时,判断第3列数字所在文本1的区间(第2列等于文本1每段第一行的第2列且该数字位于后面区间信息的某行的起始终止位置间的),如果同一个区间内有66%以上的饱和度(比如长度为100的区间,有66个以上的点在这个区间)即输出文本二所在该区间内的最小的点至最大的点以及对应文本1的key值和区间名称。如果多个区域的坐标数字是连续的,也需要用:合并。比如同样key下同时出现了两个连续区间比如CDS6和intron6需要表示为CDS6:intron6....


文本1:

  1. NM_001145717    chr6    +       36238237        36276372        36238237        36275493        8       PNPLA1  cmpl    cmpl
  2. CDS1    36238437        36238441        0       1       1
  3. intron1 36238442        36259446        .       205     206
  4. CDS2    36259447        36259329        1       2       206
  5. intron2 36259330        36260837        .       438     439
  6. CDS3    36260838        36260903        0       3       439
  7. intron3 36260904        36261966        .       504     505
  8. CDS4    36261967        36262176        0       4       505
  9. intron4 36262177        36263140        .       714     715
  10. CDS5    36263141        36263201        0       5       715
  11. intron5 36263202        36269637        .       775     776
  12. CDS6    36269638        36270246        1       6       776
  13. intron6 36270247        36274068        .       1384    1385
  14. CDS7    36274069        36274153        1       7       1385
  15. intron7 36274154        36275363        .       1469    1470
  16. CDS8    36275364        36275493        2       8       1470
  17. 3-UTR   36275494        36276372        .       8       *1      *879

  18. NM_002364       chrX    +       2336324        2336356        2336328        2336357        2       MAGEB2  cmpl    cmpl
  19. 5-UTR   2336324        2336326        .       1       -103    -6
  20. intron1 2336327       2336329       .       -6      -5
  21. 5-UTR   2336330        2336337        .       2       -5      -1
  22. CDS1    2336338        2336347        0       2       1
  23. 3-UTR   2336348        2336356        .       2       *1      *549

  24. NM_019056       chrX    -       47001615        47004609        47001716        47004078        3       NDUFB11 cmpl    cmpl
  25. 5-UTR   47004079        47004609        .       1       -1      -531
  26. CDS1    47003872        47004078        0       1       1
  27. intron1 47002144        47003871        .       208     207
  28. CDS2    47001983        47002143        0       2       208
  29. intron2 47001840        47001982        .       369     368
  30. CDS3    47001716        47001839        2       3       369
  31. 3-UTR   47001615        47001715        .       3       *101    *1
复制代码
文本2:

  1. 16642     chr6    36238435 18      HOM     del
  2. 16642     chr6    36238437 17      HOM     del
  3. 16642     chr6    36238438 18      HOM     del
  4. 16642     chr6    36238439 17      HOM     del
  5. 16642     chr6    36238440 17      HOM     del
  6. 16642     chr6    36238441 24      HOM     del
  7. 16642     chr6    36238442 24      HOM     del
  8. 16642     chr6    36238443 24      HOM     del
  9. 16642     chr6    36238444 24      HOM     del
  10. 16642     chr6    36238445 24      HOM     del
  11. 16642     chr6    36238446 24      HET     del
  12. 16642     chr6    3623844724      HET     del
  13. 16642     chrX    2336324 24      HET     del
  14. 16642     chrX    2336325 24      HOM     del
  15. 16642     chrX    2336326 24      HOM     del
  16. 16642     chrX    2336327 24      HOM     del
复制代码
结果:

  1. 16642     chr6    36238436-36238445     HOM     del  NM_001145717   PNPLA1 CDS1:intron1
  2. 16642     chrX    2336325-2336326        HOM     del  NM_002364   MAGEB2  5-UTR
复制代码
我试图用perl把文本1存到一个二维hash里面并把每个区间的长度存到另一个hash里面,然后读入文本2,每一行去获取区间,遇到一个+1,最后和区间的长度比较,如果满足条件(66%)的话,输出,可是最后什么结果都没有,而且吃了很多资源和时间(文本1:58M;文本2:12M),想向大神们求个解决方案,感谢感谢了。。。

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
2 [报告]
发表于 2014-08-18 14:41 |显示全部楼层
回复 2# yestreenstars


    嗯嗯~结果的1、2、4、5就是文件2的1、2、4、5、6,第三列是文件2第三列数字所在该区域的最小值-最大值,第7列是该区域的key值也就是文本1上该区域的第一行第一列,第8列是第二个key值也就是文本1上该区域的第一行第9列,第十列是落在的区域,如果多个区域,用:合并~

比如:6642     chr6    36238436-36238445     HOM     del  NM_001145717   PNPLA1 CDS1:intron1

因为文本2上:
16642     chr6    36238435 18      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238435未落在任何区域,此时36238435上$h{chr6}{HON}{del}的覆盖度为1
16642     chr6    36238437 17      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238437落在CDS1,此时CDS1上$h{chr6}{HON}{del}覆盖度为1
16642     chr6    36238438 18      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238438落在CDS1,此时CDS1上$h{chr6}{HON}{del}覆盖度为2
16642     chr6    36238439 17      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238439落在CDS1,此时CDS1上$h{chr6}{HON}{del}覆盖度为3
16642     chr6    36238440 17      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238440落在CDS1,此时CDS1上$h{chr6}{HON}{del}覆盖度为4
16642     chr6    36238441 24      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238441落在CDS1,此时CDS1上$h{chr6}{HON}{del}覆盖度为5
16642     chr6    36238442 24      HOM     del     第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238442落在intron1,此时CDS1上$h{chr6}{HON}{del}覆盖度为1
16642     chr6    36238443 24      HOM     del     第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238442落在intron1,此时CDS1上$h{chr6}{HON}{del}覆盖度为2
16642     chr6    36238444 24      HOM     del     第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238442落在intron1,此时CDS1上$h{chr6}{HON}{del}覆盖度为3
16642     chr6    36238445 24      HOM     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238445落在intron1,此时CDS1上$h{chr6}{HON}{del}覆盖度为4
16642     chr6    36238446 24      HET     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238446落在intron1,此时CDS1上$h{chr6}{HON}{del}覆盖度为1
16642     chr6    36238447 24      HET     del    第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238447落在CDS2,此时CDS2上$h{chr6}{HON}{del}覆盖度为1
--------------------------------------------------------------------------------
CDS1的长度为36238437-36238441 :5,$h{chr6}{HON}{del}覆盖度为5;符合条件
intron1的长度36238442-36259446:5,$h{chr6}{HON}{del}覆盖度为4;符号条件
考虑到CDS1和intron1是相邻的,合并之
所以输出6642     chr6    36238436-36238445     HOM     del  NM_001145717   PNPLA1 CDS1:intron1

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
3 [报告]
发表于 2014-08-18 14:43 |显示全部楼层
回复 3# pitonas


    对不起。。。迷迷糊糊的没说清楚

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
4 [报告]
发表于 2014-08-18 14:50 |显示全部楼层
回复 6# yestreenstars


    哈哈。。一贯作风,大神原谅我

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [报告]
发表于 2014-08-18 15:28 |显示全部楼层
回复 8# yestreenstars


    36238436===>36238437...失误失误。嘿嘿

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
6 [报告]
发表于 2014-08-18 15:37 |显示全部楼层
回复 10# yestreenstars


    对。。。对不起。。。我不是故意的。。。

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
7 [报告]
发表于 2014-08-18 17:15 |显示全部楼层
回复 12# yestreenstars


    谢谢大神。。只要该数字在区间内就算一次,最后获取得到对应的区间后,两个区间是相邻的合并,不相邻的不合并

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
8 [报告]
发表于 2014-08-18 17:39 |显示全部楼层
本帖最后由 huang6894 于 2014-08-18 17:40 编辑

回复 14# yestreenstars

  1. 16642     chr6    36238435 18      HOM     del 第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238435未落在任何区域,此时36238435上$h{chr6}{HOM}{del}的覆盖度为1
  2. 16642     chr6    36238437 17      HOM     del   第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238437落在CDS1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为1
  3. 16642     chr6    36238438 18      HOM     del  第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238438落在CDS1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为2
  4. 16642     chr6    36238440 17      HOM     del  第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238440落在CDS1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为3
  5. 16642     chr6    36238441 24      HOM     del  二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238441落在CDS1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为4
  6. 16642     chr6    36238442 24      HOM     del  第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238442落在intron1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为1
  7. 16642     chr6    36238443 24      HOM     del   第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238443落在intron1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为2
  8. 16642     chr6    36238444 24      HOM     del   第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238444落在intron1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为3
  9. 16642     chr6    36238445 24      HOM     del  第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238445落在intron1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为4
  10. 16642     chr6    36238446 24      HET     del  第二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238446落在intron1,此时CDS1上$h{chr6}{HOM}{del}覆盖度为1
  11. 16642     chr6    3623844724      HET     del  二列是chr6,排除掉文本1段落第一行第二列不是chr6的,然后36238447落在CDS2,此时CDS2上$h{chr6}{HOM}{del}覆盖度为1
  12. 16642     chrX    2336324 24      HET     del   二列是chrX,排除掉文本1段落第一行第二列不是chrX的,然后2336324落在5-UTR,此时5-UTR上$h{chrX}{HET}{del}覆盖度为1
  13. 16642     chrX    2336325 24      HOM     del  二列是chrX,排除掉文本1段落第一行第二列不是chrX的,然后2336325落在5-UTR,此时5-UTR上$h{chrX}{HET}{del}覆盖度为2
  14. 16642     chrX    2336326 24      HOM     del 二列是chrX,排除掉文本1段落第一行第二列不是chrX的,然后2336326落在5-UTR,此时5-UTR上$h{chrX}{HET}{del}覆盖度为3
  15. 16642     chrX    2336327 24      HOM     del  二列是chrX,排除掉文本1段落第一行第二列不是chrX的,然后2336327落在intron1,此时5-UTR上$h{chrX}{HET}{del}覆盖度为1
复制代码
-----------------------------------------------
chr6:
CDS1的长度为36238437-36238441 :5,$h{chr6}{HON}{del}覆盖度为4;4/5>66%,符合条件
intron1的长度36238442-36259446:5,$h{chr6}{HON}{del}覆盖度为4;4/5>66%,符号条件
考虑到CDS1和intron1是相邻的,合并之
所以输出6642     chr6    36238436-36238445     HOM     del  NM_001145717   PNPLA1 CDS1:intron1

chrX:
5-UTR:长度为2336324-2336326:3,覆盖度为3,3/3>66%,符合条件
intron1的长度:336327-2336329:3,覆盖度为1,1/3<66%,不符合条件

输出16642     chrX    2336325-2336326        HOM     del  NM_002364   MAGEB2  5-UTR

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
9 [报告]
发表于 2014-08-19 12:36 |显示全部楼层
回复 16# yestreenstars


    是的

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
10 [报告]
发表于 2014-08-19 12:38 |显示全部楼层
回复 17# yestreenstars


    感激涕零。。。我会好好研究的。。。。

------------------------
最近论坛怎么收不到提醒了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP