| 查看: 1190 | 回复: 8 | ||
[求助]
perl 大神求助 已有1人参与
|
|
亲们,我的两个文件是这样的 1文件chr1 - 9901.5 chr1 - 144612.5 chr1 - 227317.5 chr1 - 227321.5 chr1 + 267647.5 chr1 - 267648.5 chr1 - 267649.5 chr2 + 267651.5 chr2 - 267652.5 chr3 - 521268.5 chr3 - 569831.5 chr1 + 713294.5 chr1 - 713307.5 chr1 - 753396.5 chr1 + 762732.5 chr3 - 801094.5 chr1 + 808622.5 chr2 - 808633.5 chr1 - 819067.5 3文件 chr1 - 9802 144712 chr1 - 227222 227421 chr1 - 267552 267751 chr2 + 267552 267753 处理上边两个文件的预期目标是 chr1 - 9802 144712 3 chr1 - 227222 227421 2 chr1 - 267552 267751 2 chr2 + 267552 267753 0 我想在两个文件第一列和第二列相同的情况下,如果1文件的第三列有一个处于3文件的第三列和第四列之间的情况下,$n就加1。有两个就加2,以此类推,$n初始值为0.其中的3,2,2,0是$n. my %hash; my $n=0; open OUTFILE,'>','result1'; open FILE,'<','1'; while (<FILE> {chomp; ($a,$b,$c)=(split)[0,1,2]; $hash{$a}=1; $hash{$b}=2; open FILE,'<','3'; while (<FILE> {chomp; ($d,$e,$f,$g)=(split)[0,1,2,3]; if(exists $hash{$d} && exists $hash{$e}){ @array=sort{$a <=> $b}($f,$g); next if $c<$array[0] ; next if $c>$array[1]; $n++; }print OUTFILE"$d $e $f $g $n\n"; } } 这是我编写的程序,大家能不能帮我看看是哪里出了问题啊或者帮我重新编写一个,甚是感谢各位大牛了。 |
» 猜你喜欢
论文终于录用啦!满足毕业条件了
已经有21人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
络合铁相关问题,求大神赐教!
已经有3人回复
聚酰亚胺薄膜检测项目中的耐热性标准问题
已经有18人回复
想询问一下“某基因”和“某基因-like”的差别? 跪求大神详细解答!
已经有4人回复
各位大神求赐教
已经有4人回复
编程菜鸟求大神引导入门。
已经有14人回复
【求助】请大神帮我翻译一句话
已经有3人回复
生物信息学问题,染色体畸变查找
已经有9人回复
修改图标问题,请各位大神帮忙!
已经有5人回复
编程有点问题,求助
已经有5人回复
求大神们雪中送炭
已经有12人回复
求助大神帮我看看这段程序是干什么的?(就是定义这个函数算什么)
已经有6人回复
求助 一个perl代码修改~~看看吧...
已经有6人回复
求大神做一个汇编语言程序
已经有7人回复
perl程序求助,请大神们赐教~~~
已经有9人回复
Rg(x) vs time ,Rg(y) vs time,Rg(z) vs time
已经有6人回复
请帮忙编写一个perl程序处理文本
已经有26人回复
求C语言大神帮忙
已经有6人回复
请教perl脚本的一个if语句解释,谢谢
已经有8人回复
Perl 编程 请大神们帮忙!!!生物信息的牛人请进
已经有11人回复
perl脚本求助,我想将一万多个文件从fasta格序,改为phylip4格式
已经有8人回复
wizardfan
至尊木虫 (著名写手)
- BioEPI: 18
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
李靖: 金币+15, ★有帮助 2014-11-25 09:42:42
感谢参与,应助指数 +1
李靖: 金币+15, ★有帮助 2014-11-25 09:42:42
|
首先先让我理解你的算法: 根据你说的 chr1 - 9802 144712 第3,4列是9802和144712,那区间就是9802-144712 在1文件中,只有第二行chr1 - 144612.5 在这个区间,那你的结果为什么是3呢? 其次,请确定1文件和3文件的分割符是空格,还是tab 接着 看上去第二列的正反链信息好像没有用的 最后 请在你的程序上加上注释,我可以帮你看看,你到底错在哪里: 是算法错误,还是perl实现错误 |
2楼2014-11-10 17:36:47
|
不好意思,昨天把1文件上传错了,如果按一文件的话,预期的目标是 chr1 - 9802 144712 2 chr1 - 227222 227421 2 chr1 - 267552 267751 2 chr2 + 267552 267753 1 我解释一下,我想干什么(上边文件1的最开头还有一行chr1 - 9901.5 ),我另$n的初始值为0,如果文件1的第三列有落在文件三的第三列和第四列之间,那么$n就加1,以此类推, chr1 - 9901.5 chr1 - 144612.5 如上边两行的第三列都在9802 144712 之间,所以$n就为2.同样下边也是这样的也就是生物中数read个数。可以帮我编写一个也是可以的,因为帮别人改程序确实很麻烦的,非常感谢 |
3楼2014-11-11 08:34:54
wizardfan
至尊木虫 (著名写手)
- BioEPI: 18
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
4楼2014-11-11 08:39:55
|
#!/usr/bin/perl -w use strict; use warnings; open FILE, '<','3'; open AFILE, '<','1'; open OUT,'>','result'; my @array1 = <FILE>; my @array2 = <AFILE>; my @b; foreach my $array1(@array1){ chomp($array1); my @a1=split /\s+/,$array1; my $cnt1=0; foreach my $array2(@array2) { chomp($array2); my @a2 = split /\s+/,$array2; if ($a1[0] eq $a2[0] and $a1[1] eq $a2[1]){ @b=sort{$a<=>$b}($a1[2],$a1[3]); $cnt1++ if ($a2[2]>= $b[0] and $a2[2] <= $b[1]); } }print OUT "@a1 $cnt1\n" } 亲,我自己改写变出来了,不过我感觉运行很慢,能不能帮我修改一下 |
5楼2014-11-11 08:54:19
|
my %hash; my $n=0; open OUTFILE,'>','result1'; open FILE,'<','1'; while (<FILE> { chomp; ($a,$b,$c)=(split)[0,1,2]; $hash{$a}=1; $hash{$b}=2; open FILE,'<','3'; while (<FILE>{ chomp; ($d,$e,$f,$g)=(split)[0,1,2,3]; if(exists $hash{$d} && exists $hash{$e})#这一行的意思是,我想同时存在一文件的第一列和第二列{ @array=sort{$a <=> $b}($f,$g);#因为有正负链的原因,所以我将3文件的第三列和第四列进行了一下重新排序 next if $c<$array[0] ; next if $c>$array[1];#将不在这个区间的所有$c给除去 $n++; #有多少个$c就$n就为多少 }print OUTFILE"$d $e $f $g $n\n"; } } |
6楼2014-11-11 09:03:03
wizardfan
至尊木虫 (著名写手)
- BioEPI: 18
- 应助: 599 (博士)
- 贵宾: 1.818
- 金币: 24628.2
- 散金: 197
- 红花: 48
- 沙发: 2
- 帖子: 2254
- 在线: 400.7小时
- 虫号: 1879241
- 注册: 2012-07-05
- 性别: GG
- 专业: 生物信息学
7楼2014-11-11 09:34:48
8楼2014-11-25 09:43:38
9楼2014-11-25 09:44:01







{
回复此楼