免费注册 查看新帖 |

Chinaunix

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

标题: 请教各位:用perl 如何实现从文本筛选特定的行保存到另外一个文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-16 21:53 |只看该作者 |倒序浏览
如:
Query= nmtca_Cluster3542.seq.Contig1 [178 - 513]
(112 letters)
Database: g:/blast/wormpep206.fasta
24,143 sequences; 10,671,996 total letters
Searching..................................................done
Score E
equences producing significant alignments: (bits) Value
Y54F10AM.8 Unknown 101 8e-023
F09B12.3 Unknown 82 4e-017
Y37D8A.2 Unknown 55 7e-009
Score = 101 bits (251), Expect = 8e-023
Identities = 0/101 (0%), Positives = 0/101 (0%), Gaps = 2/101 (1%)
Query: 12 NYRTMSVCVVA-NAGILHTVEGDTC-DGGNKVAVGKYENAVNNTGWGKLEIETFNNFEPE 69
Query: 70 VQAYAAGILEGKLTHLQISYHIENTVADICVNHSAFCKRLH 110
Score = 82.4 bits (202), Expect = 4e-017
Identities = 0/77 (0%), Positives = 0/77 (0%)
Query: 33 DTCDGGNKVAVGKYENAVNNTGWGKLEIETFNNFEPEVQAYAAGILEGKLTHLQISYHIE 92
Query: 93 NTVADICVNHSAFCKRL 109
Score = 55.1 bits (131), Expect = 7e-009
Identities = 0/100 (0%), Positives = 0/100 (0%), Gaps = 4/100 (4%)
Query: 14 RTMSVCVVANAGILHTVEGDTCDG---GNKVAVGKYENAVNNTGWGKLEIETFNNFEPE- 69
Query: 70 VQAYAAGILEGKLTHLQISYHIENTVADICVNHSAFCKRL 109
BLASTP 2.2.16 [Mar-25-2007]
Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein database search
programs", Nucleic Acids Res. 25:3389-3402.
Query= nmtca_Cluster3543.seq.Contig1 [43 - 522]
(160 letters)
Database: g:/blast/wormpep206.fasta
24,143 sequences; 10,671,996 total letters
Searching..................................................done

***** No hits found ******

以上数据我只要:
Query= nmtca_Cluster3542.seq.Contig1 [178 - 513]
Y54F10AM.8 Unknown
F09B12.3 Unknown
Y37D8A.2 Unknown

Query= nmtca_Cluster3543.seq.Contig1 [43 - 522]
***** No hits found ******

数据量太大,有13000多页,perl我又不太会,所以请各位高手帮帮小弟!!
不胜感激!

论坛徽章:
0
2 [报告]
发表于 2009-11-16 21:59 |只看该作者
基本模式:

open HD1, "<", "file_in";
open HD2, ">", "file_out";

while(<HD1>) {        # read a line from input file until the end
    if ( / regex / ) {     # regex match
        print HD2;         # if found, print this line to output file
    }
}

close HD2;
close HD1;

论坛徽章:
0
3 [报告]
发表于 2009-11-16 22:51 |只看该作者
谢谢斑竹的回帖
但是小弟还是有点不明白,perl还没有怎么入门
这个文本中有3个关键词
Query= nmtca_Cluster
Unknown
No hits found

我因该怎样来设定这个筛选项regex 使他同时能够使用三个关键词进行筛选呢?

论坛徽章:
0
4 [报告]
发表于 2009-11-16 23:00 |只看该作者
正则...

论坛徽章:
0
5 [报告]
发表于 2009-11-16 23:16 |只看该作者
原帖由 foumer 于 2009-11-16 22:51 发表
谢谢斑竹的回帖
但是小弟还是有点不明白,perl还没有怎么入门
这个文本中有3个关键词
Query= nmtca_Cluster
Unknown
No hits found

我因该怎样来设定这个筛选项regex 使他同时能够使用三个关键词进行 ...

/Query= nmtca_Cluster|Unknown|No hits found/

[ 本帖最后由 mwm5 于 2009-11-16 23:17 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-11-17 13:34 |只看该作者
#!/usr/bin/perl -w
print "please enter the source filename(include suffix):";
chomp($file=<STDIN>);
print "please enter the output filename(include suffix):";
chomp($out=<STDIN>);
open(OUT,">$out")||die "can't open the file!\n";
open(FILE,"$file")||die "can't open the file!\n";
$IN=<FILE>;
$i=0;
while($IN){
if ( /nmtca_Cluster|Unknown|No hits found/){
print OUT $IN;
$i++;
}
$FL=<FILE>;
}
print "the total of nematode sequence is $i";
close(FILE);
close(OUT);

各位这样写程序问题出在那里?还是运行不出来
请高手指点

[ 本帖最后由 foumer 于 2009-11-17 13:39 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-11-17 13:49 |只看该作者
/nmtca_Cluster|Unknown|No hits found/

$IN=<FILE>;
while($IN)

说漏了,这种用法,你如何匹配。。。

[ 本帖最后由 dugu072_cu 于 2009-11-17 13:56 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-11-17 14:26 |只看该作者

回复 #7 dugu072_cu 的帖子

能不能请你帮我修改下,刚学习perl还有很多不懂
谢谢

论坛徽章:
0
9 [报告]
发表于 2009-11-17 14:36 |只看该作者
谢谢各位。问题解决了。我想复杂了。perl还没有入门啦

论坛徽章:
0
10 [报告]
发表于 2009-11-17 14:38 |只看该作者
两种方式:
1.继续你以前的读方式,但正则改为:
@matched = $IN =~ /nmtca_Cluster.*\n|Unknown.*\n|No hits found.*\n/g
此时一次匹配后,所有匹配的行,都在 @matched数组中,因此统计个数,也不用你的那个 $i++,循环什么的
2. 修改读入方式,其他可以不改:
while(<FILE>)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP