免费注册 查看新帖 |

Chinaunix

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

生物信息高手,求程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-25 08:12 |只看该作者 |倒序浏览
本帖最后由 aids260 于 2011-03-25 08:34 编辑

有这样的两个文件:
  1. BGIBMGA000058-TA           nscaf1071         1083932        1085028
  2. BGIBMGA000059-TA           nscaf1071         1144201        1144993
  3. BGIBMGA000060-TA           nscaf1071         1194454        1203962
  4. BGIBMGA000061-TA           nscaf1071         1233907        1234573
  5. BGIBMGA000062-TA           nscaf1071         1239819        1245122
  6. BGIBMGA000063-TA           nscaf1071         1293757        1306270
  7. BGIBMGA000064-TA           nscaf1071         1313232        1316001
  8. BGIBMGA000065-TA           nscaf1087         2451        9117
  9. BGIBMGA000066-TA           nscaf109         1549        4332
  10. BGIBMGA000067-TA           nscaf1108         3401547        3415278
  11. BGIBMGA000068-TA           nscaf1108         2724200        2728350
  12. BGIBMGA000069-TA           nscaf1108         2546311        2574462
  13. BGIBMGA000070-TA           nscaf1108         2533757        2534560
  14. BGIBMGA000071-TA           nscaf1108         2527802        2528488
  15. BGIBMGA000072-TA           nscaf1108         2442934        2452908
  16. BGIBMGA000073-TA           nscaf1108         2382927        2390096
  17. BGIBMGA000074-TA           nscaf1108         2370811        2374956
  18. BGIBMGA000075-TA           nscaf1108         2350982        2353168
  19. BGIBMGA000076-TA           nscaf1108         2305769        2312842
  20. BGIBMGA000077-TA           nscaf1108         2238841        2239515
  21. BGIBMGA000078-TA           nscaf1108         2207199        2212812
  22. BGIBMGA000079-TA           nscaf1108         2140463        2140972
复制代码
  1. +        BGIBMGA000062-TA         FWDP30_FL5_P09.seq        nscaf1071        1318628        1239395        1240559
  2. +        BGIBMGA000062-TA         MFBP02_F_H18.seq        nscaf1071        1318628        1239668        1243526
  3. +        BGIBMGA000064-TA         fdpeP10_F_J11.seq        nscaf1071        1318628        1313192        1316067
  4. +        BGIBMGA000064-TA         MFBP04_F_N06.seq        nscaf1071        1318628        1313197        1316106
  5. +        BGIBMGA000128-TA         FWDP26_FL5_O06.seq        nscaf1108        3459965        1275912        1278501
  6. +        BGIBMGA000129-TA         FWDP02_FL5_F17.seq        nscaf1108        3459965        1283141        1319375
  7. +        BGIBMGA000129-TA         FWDP02_FL5_O19.seq        nscaf1108        3459965        1282859        1319327
  8. +        BGIBMGA000129-TA         FWDP10_FL5_A23.seq        nscaf1108        3459965        1283141        1319395
  9. +        BGIBMGA000129-TA         FWDP31_FL5_I15.seq        nscaf1108        3459965        1283115        1319315
  10. +        BGIBMGA000129-TA         MFBP15_F_I08.seq        nscaf1108        3459965        1283141        1319403
  11. +        BGIBMGA000140-TA         FWDP04_FL5_M21.seq        nscaf1108        3459965        1773552        1776967
  12. +        BGIBMGA000140-TA         FWDP25_FL5_J23.seq        nscaf1108        3459965        1785487        1791348
  13. +        BGIBMGA000154-TA         FWDP03_FL5_B14.seq        nscaf1108        3459965        2355076        2357513
  14. +        BGIBMGA000154-TA         fdpeP09_F_E13.seq        nscaf1108        3459965        2355077        2357478
  15. +        BGIBMGA000155-TA         fdpeP13_F_N09.seq        nscaf1108        3459965        2429759        2436013
  16. +        BGIBMGA000201-TA         MFBP02_F_D11.seq        nscaf1299        357319        349886        350726
  17. +        BGIBMGA000202-TA         MFBP13_F_J17.seq        nscaf1375        11050        7946        8756
  18. +        BGIBMGA000360-TA         fdpeP16_F_J16.seq        nscaf1681        5888100        45406        46743
  19. +        BGIBMGA000360-TA         fdpeP07_F_A13.seq        nscaf1681        5888100        45375        46693
  20. +        BGIBMGA000362-TA         fdpeP08_F_F04.seq        nscaf1681        5888100        90916        94336
复制代码
第一个文件和第二个文件都含有一些位置信息,以第一个文件的位置信息为标准。

第一个文件的第1列和第二个文件的第2列含有基因名字的信息,第一文件的第3列和第二个文件的第6列含有类似的数字信息(基因在nscaf上的位置信息)

我的问题是这样的:把第二个文件的每行循环,每行的第2列的值,找出它在第一个文件第1列对应的值,然后比较两个文件中,这行,对应的位置信息的值(在第一文件的第3列和第二文件的第6列)
如果第一文件的值大于第二文件的值,就保留第二文件的这一行,否则就删除这一行。

跪请编程高手出马!!!!

论坛徽章:
0
2 [报告]
发表于 2011-03-25 08:28 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2011-03-25 08:34 |只看该作者
回复 2# lxb456900


    你好,刚才没有编辑好,不好意思,麻烦帮解决下问题!

论坛徽章:
0
4 [报告]
发表于 2011-03-25 08:54 |只看该作者
跪求高手!!

论坛徽章:
0
5 [报告]
发表于 2011-03-25 08:59 |只看该作者
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my (%a, %b);
  5. open (A, "file1");
  6. open (B, "file2");
  7. open (OUT, ">out.tab");

  8. while (<A>) {
  9.         my @info = split /\s+/;
  10.         my $gid = $info[0];
  11.         my $site = $info[2];
  12.         $a{$gid} = $site;
  13. }

  14. while (<B>) {
  15.         my @info = split /\s+/;
  16.         my $gid = $info[1];
  17.         my $site = $info[5];
  18.         if (defined $a{$gid} && $site < $a{$gid}) {
  19.                 print OUT $_;
  20.         }
  21. }
  22. close (A);
  23. close (B);
  24. print "...Done! Out file: out.tab.\n";
  25. exit (1);
复制代码

论坛徽章:
0
6 [报告]
发表于 2011-03-25 09:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2011-03-25 11:27 |只看该作者
回复 5# dgtnk


    朋友,你的代码很简洁,也很有效,要我的话,要写一天多!感谢

论坛徽章:
0
8 [报告]
发表于 2011-03-25 22:27 |只看该作者
本帖最后由 aids260 于 2011-03-25 22:35 编辑

回复 5# dgtnk


    哥们,弱弱的问下:  你开始定义的哪个哈希%b  应该是没有用到吧,你程序写的很简洁,很有效!

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
9 [报告]
发表于 2011-03-26 07:45 |只看该作者
扫了一眼,YY一把

因为你第二个文件2列里有重复。估计dgtnk先定义了%b,然后发现重复,改用数组了

论坛徽章:
0
10 [报告]
发表于 2011-03-26 13:20 |只看该作者
dgtnk 发表于 2011-03-25 08:59




判断 hash 中 key 是否存在,应该使用  exists 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP