免费注册 查看新帖 |

Chinaunix

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

求个perl程序,生物信息方面的! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-25 22:11 |只看该作者 |倒序浏览
10可用积分
本帖最后由 aids260 于 2011-03-27 00:59 编辑
  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
复制代码
先看下第二个文件中的值

BGIBMGA000062-TA
BGIBMGA000062-TA      第二列代表着基因名,  如果是一样的话     就计算下他们   第六列的平均值

即同样的基因名的情况下,以第二列为参照,取第六列的平均值



在第一个文件里边也有这个基因的一些信息:

BGIBMGA000062-TA    nscaf1071  1239819 1245122


计算了上边的那个平均值后  用 第一个文件里的第三列的值 减去刚才计算的平均值(  再加一个列出来)
然后在顺便统计下,第二个文件里的每个基因名重复出现了几次(次数再加一列出来)

输出这样的格式:

+ BGIBMGA000062-TA  FWDP30_FL5_P09.seq nscaf1071 1318628 1239395 1240559
+ BGIBMGA000062-TA  MFBP02_F_H18.seq nscaf1071 1318628 1239668 1243526
+ BGIBMGA000062-TA nscaf1071                                        上边两个数的平均值             差值        基因名出现的次数(2次)
+ BGIBMGA000064-TA  fdpeP10_F_J11.seq nscaf1071 1318628 1313192 1316067
+ BGIBMGA000064-TA  MFBP04_F_N06.seq nscaf1071 1318628 1313197 1316106
+ BGIBMGA000064-TA          nscaf1071                                上边两个数的平均值             差值       基因名出现的次数(2次)

或者直接输出这种格式
+ BGIBMGA000062-TA          nscaf1071         上边两个数的平均值      差值        出现的次数(2次)
+ BGIBMGA000064-TA          nscaf1071         上边两个数的平均值       差值       出现的次数(2次)




补充一点:::::
   在上边的数据中没有体现出来, 第二个文件的第6列的值有重复的值,如果它为关键字用来定义哈希的话,会取消一部分值的,我觉的用数组来定义比较好,大家有什么好办法吗???
  1. +        BGIBMGA000648-TA         MFBP22_F_C21.seq        nscaf1690        7983491        2927332        2942206
  2. +        BGIBMGA000648-TA         MFBP22_F_M19.seq        nscaf1690        7983491        2927328        2942181
  3. +        BGIBMGA000648-TA         MFBP22_F_O19.seq        nscaf1690        7983491        2927328        2942149
  4. +        BGIBMGA000648-TA         MFBP21_F_E08.seq        nscaf1690        7983491        2927328        2942222
  5. +        BGIBMGA000648-TA         MFBP21_F_F16.seq        nscaf1690        7983491        2927328        2942207
  6. +        BGIBMGA000648-TA         MFBP23_F_M16.seq        nscaf1690        7983491        2927328        2942190
  7. +        BGIBMGA000648-TA         MFBP26_F_G19.seq        nscaf1690        7983491        2927328        2942178
复制代码
我把文件打包传上吧

新建文件夹.zip

228.38 KB, 下载次数: 82

最佳答案

查看完整内容

结果见附件,行不行,给个反馈

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2011-03-25 22:11 |只看该作者
  1. perl -lane 'if(/^\+/){$a{$F[1]}+=$F[5];$b{$F[1]}+=1}if(/^BGIB/){$c{$F[0]}=$F[2];$d{$F[0]}=$F[1]}END{for(keys %a){$x=int($a{$_}/$b{$_});$y=$c{$_}-$x;if($d{$_}){print "$_, $d{$_}, $x, $y, $b{$_}"}}} ' file1.fa file2.fa >output.fa
复制代码
结果见附件,行不行,给个反馈

output.zip

9.25 KB, 下载次数: 82

论坛徽章:
0
3 [报告]
发表于 2011-03-25 22:37 |只看该作者
期盼高手!

论坛徽章:
0
4 [报告]
发表于 2011-03-26 08:21 |只看该作者
顶一个!!

论坛徽章:
0
5 [报告]
发表于 2011-03-26 08:52 |只看该作者
求perl高手围观!

论坛徽章:
0
6 [报告]
发表于 2011-03-26 09:01 |只看该作者
光看你的需求就得死上万脑细胞。。。5个积分太少了

论坛徽章:
0
7 [报告]
发表于 2011-03-26 09:20 |只看该作者
回复 1# aids260

只做了第一部分,未经调试,可能有错,你自己试一下啊,没错的话记得给我2.5分哈
  1. my %hash;
  2. while(<FD>)
  3. {
  4.     @tmp=split;
  5.     $name=$tmp[1];
  6.     $value=$tmp[5];
  7.     $hash{$name}{sum}+=$value;
  8.     $hash{$name}{count}++;
  9. }
  10. foreach $name (keys %hash)
  11. {
  12.     $avg=$hash{$name}{sum}/$hash{$name}{count};
  13.    print "$name    $avg\n";
  14. }
复制代码

论坛徽章:
0
8 [报告]
发表于 2011-03-26 09:30 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2011-03-26 09:31 |只看该作者
回复 6# meihuaqi


    老兄,你这个我看不太明白啊!

论坛徽章:
0
10 [报告]
发表于 2011-03-26 09:40 |只看该作者
不全
打开文件那部分没写。。。
取第二列基因名为键值,第6列值相加,再记下加了几次
最后打印基因名和平均值
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP