搜索
查看: 4399|回复: 10

[Perl] 我可能学了个假perl,用了个假perl

[复制链接]

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
发表于 2017-6-9 08:54:49 | 显示全部楼层 |阅读模式
学完perl基础语法后开始实战了,我只是看perll部分,然而连第一题至今未突破,忧伤的故事呀!按照http://www.bio-info-trainee.com/1101.html
while(<>){
   next if /^#/;#跨过第一行
   @F=split;#将各个列分开
   /\[(.*?)\]/;#匹配[]
   @tmp=split/,/,$1;#以逗号分隔者分开
   foreach (@tmp){
      $_ =~ s/-/\t/;#将—替换为\t(table)
      print "$F[2]\t$F[6]\t$F[0]\t$_\n";}
      }

能后得到整理后的数据,但是后面的一个perl程序却怎么也无法计算出数据,
[AppleScript] 纯文本查看 复制代码
open FH,"exon.0609.txt";#打开文件
# $ARGV[0]=0;#赋给初始值
while(<FH>){#读入文件
      chomp;#去掉\n
	  @F=split;#拆分各列
	  foreach (($F[3]-$ARGV[0])..($F[4]+$ARGV[0])){   #遍历起始和终止序列
	      $hash{"$F[3]:$_"}=1;#请问这个如何实现去除冗余的??
    }
}	
close FH;
$tmp++ foreach keys %hash;
print "$tmp\n";
给各个语句添加上注释,但是还是有不理解的地方,这个程序每次一开始就停不下来,,,,,不知为什么,理论上应该很简单才对呀,而后我用Excel对这个外显子进行了运算,但是结果如图,这个结果还是提示确实重叠或者其他情况存在?望学有余力的大神们赐教!!!感谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:你们听说过recount计划吗?
下一篇:在ggplot的分组图上面添加p值
回复

使用道具 举报

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
 楼主| 发表于 2017-6-9 08:57:42 | 显示全部楼层
Excel中的两列求和后相减的结果。
回复 支持 反对

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-6-9 09:29:13 | 显示全部楼层
$ARGV[0] 是什么鬼??你这个是基础语法不过关呀,你应该先看第0题的呀,这个是不是对你难道有点高了
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-6-9 09:30:16 | 显示全部楼层
泥土 发表于 2017-6-9 08:57
Excel中的两列求和后相减的结果。

Excel中的两列求和后相减,这个思路是错的,你默认行与行之间是没有overlap的,但是这个假设是错的,外显子与外显子之间是有重复的,需要去除的overlap就是这个
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
 楼主| 发表于 2017-6-9 10:24:51 | 显示全部楼层
Jimmy 发表于 2017-6-9 09:29
$ARGV[0] 是什么鬼??你这个是基础语法不过关呀,你应该先看第0题的呀,这个是不是对你难道有点高了 ...

0题勉强的解决了,$ARGV我从来没明白,就想试试他是个啥玩意儿,我已经注释掉了
回复 支持 反对

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-6-9 10:57:03 | 显示全部楼层
泥土 发表于 2017-6-9 10:24
0题勉强的解决了,$ARGV我从来没明白,就想试试他是个啥玩意儿,我已经注释掉了 ...

你没有注释掉呀,我看你代码里面有,     foreach (($F[3]-$ARGV[0])..($F[4]+$ARGV[0])){   #遍历起始和终止序列
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
 楼主| 发表于 2017-6-9 12:58:04 | 显示全部楼层
Jimmy 发表于 2017-6-9 09:29
$ARGV[0] 是什么鬼??你这个是基础语法不过关呀,你应该先看第0题的呀,这个是不是对你难道有点高了 ...

不高,小学生的水平,但是我是这方面的文盲,,我一直理解不了@ARGV,定义快看哭了,还是不行,问题太多了。$ARGV[0]语句里有的,我只是想测试一下,加深入理解,我已经注释掉了.恕我直言,有些需要理解的地方讲到不深刻,同时加上perl的可阅读性差,对于我来说,有些困难,perl快把我的信心耗尽了。看到你们这些大牛在用perl,所以我觉得应该学习perl,到时候可以有很多人可以请教,但是实际并不是我想的这样子。学习perl两个多月了,放弃感觉有点可惜,但坚持但自己很难突破,在这个问题让我感觉很是“进退维谷”,我想突破这10多个题目后,就转向Python。希望论坛里的大婶们多回答些问题,谢谢。我觉的不太懂的可能不止我自己,互相帮助,希望大家都坚持学下去。
回复 支持 反对

使用道具 举报

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
 楼主| 发表于 2017-6-9 13:02:14 | 显示全部楼层
Jimmy 发表于 2017-6-9 10:57
你没有注释掉呀,我看你代码里面有,     foreach (($F[3]-$ARGV[0])..($F[4]+$ARGV[0])){   #遍历起始和 ...

这个代码是完全按照帖子里来的,可能是我拷贝的原因,实际我运行的时候,是注释掉了。
回复 支持 反对

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-6-9 13:02:54 | 显示全部楼层
泥土 发表于 2017-6-9 12:58
不高,小学生的水平,但是我是这方面的文盲,,我一直理解不了@ARGV,定义快看哭了,还是不行,问题太 ...

不知道是不是性格方面的原因,你要不要试试看python呀,反正视频都在你那边了
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

16

主题

61

帖子

519

积分

高级会员

Rank: 4

积分
519
 楼主| 发表于 2017-6-9 13:18:55 | 显示全部楼层
Jimmy 发表于 2017-6-9 13:02
不知道是不是性格方面的原因,你要不要试试看python呀,反正视频都在你那边了
...

恩恩,我也想这样试试了,开始的时候,我觉得Python的代码太多了,让人恐惧,但是现在想想,代码说明它应该详细才读,所有应该容易理解。看到的每个程序应该知道它每一步在执行什么,但是perl里的@ARGV数组太让看着崩溃了,放到程序里,理解不了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-19 08:45 , Processed in 0.045506 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.