免费注册 查看新帖 |

Chinaunix

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

重复帖子,已解决,求关闭。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-27 17:48 |只看该作者 |倒序浏览
本帖最后由 yanglc2013 于 2013-03-28 09:00 编辑

重复帖子,求楼主关闭。

论坛徽章:
0
2 [报告]
发表于 2013-03-27 18:46 |只看该作者
本帖最后由 yanglc2013 于 2013-03-27 19:46 编辑

都学了一个月的perl了,怎么还是没多大进步啊。
自己写的,输出结果错误。
  1. #!/usr/bin/perl
  2. open(LNC,$ARGV[0]);
  3. open(REF,$ARGV[1]);
  4. open(OUT1,">$ARGV[0]-1.out");
  5. open(OUT2,">$ARGV[0]-2.out");
  6. open(OUT3,">$ARGV[0]-3.out");
  7. while(<REF>){
  8. ($ref,$ref1,$ref2,)=(split(/\s+/,$_))[1,2,3];
  9. }
  10. while(<LNC>){
  11.   ($lnc,$lnc1,$lnc2)=(split(/\s+/,$_))[1,2,3];
  12. if($lnc==$ref && $lnc2<ref1){
  13. print OUT1 ;
  14. }elsif($lnc2>$ref1 && $lnc2<$ref2){
  15. print OUT2 ;
  16. }else{
  17. print OUT3 ;
  18. }
  19. }
  20. close LNC;
  21. close REF;
  22. close OUT1;
  23. close OUT2;
  24. close OUT3;
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-03-27 20:17 |只看该作者
本帖最后由 Perlvim 于 2013-03-27 20:19 编辑

ref 图中,项目相同的是否要合并?

生物科技发展这么多年了,这种统计分析还需要自己写代码实现吗?

搞生物的需要为什么没有Perl语言工程师的需求,而自己边学边用呢?

论坛徽章:
0
4 [报告]
发表于 2013-03-27 20:57 |只看该作者
XB,同一个问题两个帖子。。。。
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my (%ref, %data);

  5. open my $in , '<', 'refGene.txt'
  6.     or die "Can't open 'refGene.txt' for reading. $!\n";
  7. while (<$in>) {
  8.     chomp;
  9.     my @t = split;
  10.     push @{$ref{$t[1]}}, [@t];
  11. }
  12. close $in;

  13. open $in , '<', 'lncipedia_location.txt'
  14.     or die "Can't open 'lncipedia_location.txt' for reading. $!\n";
  15. while (<$in>) {
  16.     chomp;
  17.     my @t = split;
  18.     push @{$data{$t[1]}}, [@t];
  19. }
  20. close $in;

  21. open my $include , '>', 'include.txt'
  22.     or die "Can't create 'include.txt' for writing. $!\n";
  23. open my $non_include , '>', 'non_include.txt'
  24.     or die "Can't create 'non_include.txt' for writing. $!\n";
  25. open my $overlap , '>', 'overlap.txt'
  26.     or die "Can't create 'overlap.txt' for writing. $!\n";


  27. while (my ($chr, $v) = each %ref) {
  28.     my @ref_data = sort {$a->[2] <=> $b->[2]} @$v;
  29.     next unless exists $data{$chr};
  30.     my @inc_data = sort {$a->[2] <=> $b->[2]} @{$data{$chr}};
  31.     for (@ref_data) {
  32.         my @rd = @$_;
  33.         last unless @inc_data;
  34.         while (1) {
  35.             last unless @inc_data;
  36.             my @id = @{+shift @inc_data};
  37.             if ($id[3] < $rd[2]) {
  38.                 print {$non_include} join("\t", @id), "\n";
  39.                 next;
  40.             }
  41.             if ($id[2] > $rd[3]) {
  42.                 unshift @inc_data, [@id];
  43.                 last;
  44.             }
  45.             if ($id[2] >= $rd[2] && $id[3] <= $rd[3]) {
  46.                 print {$include} join("\t", @id), "\n";
  47.             }
  48.             else {
  49.                 print {$overlap} join("\t", @id), "\n";
  50.             }
  51.         }
  52.     }
  53.     delete $data{$chr};
  54. }

  55. while (my ($chr, $v) = each %data) {
  56.     my @inc_data = @$v;
  57.     for (@inc_data) {
  58.         print {$non_include} join("\t", @$_), "\n";
  59.     }
  60. }

  61. close $include;
  62. close $non_include;
  63. close $overlap;
复制代码

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
5 [报告]
发表于 2013-03-27 21:05 |只看该作者
yanglc2013 发表于 2013-03-27 18:46
都学了一个月的perl了,怎么还是没多大进步啊。
自己写的,输出结果错误。


学 Perl 肯定都听说过小骆驼,三五天看完代码就不可能写成你这样……没有排版、没有 use strict; use warnings; 文件句柄用 OUT1 这种 barewords ,都是全局变量。你这算是把 Perl 丑陋的一面展示了大半啊

论坛徽章:
0
6
发表于 2013-03-27 21:35
回复 5# zhlong8


    哎,版主见笑了。这个程序写的有点仓忙啊,所以没怎么整理就贴出来了。下次一定注意。

论坛徽章:
0
7 [报告]
发表于 2013-03-27 21:37 |只看该作者
回复 3# Perlvim
不需要啊,因为同一条染色体,其起始和终止不一样。我也是刚接触这方面

   

论坛徽章:
0
8 [报告]
发表于 2013-03-27 21:37 |只看该作者
回复 4# picbhan
谢了啊。


   

论坛徽章:
0
9 [报告]
发表于 2013-03-28 08:57 |只看该作者
yanglc2013 发表于 2013-03-27 21:37
回复 4# picbhan
谢了啊。


4楼的方法的确够牛的~~~

论坛徽章:
0
10 [报告]
发表于 2013-03-28 15:54 |只看该作者
yanglc2013 发表于 2013-03-27 21:37
回复 4# picbhan
谢了啊。


4楼的方法的确够牛的~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP