免费注册 查看新帖 |

Chinaunix

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

perl 引号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-12 00:12 |只看该作者 |倒序浏览
我的文件fasta格式如下,有的ID都有一个双引号,如下所示。而有的没有,我想把双引号去掉,

">AT3G56040.1|PACid:19662817"
MANPQASPILHHPQNHLSLFHFRTTTSPRSFSSLHFRKPLLFLSSSSSFSSKLQQSEQQCNNHQVRHVSTVPVEYSTPTPPESDDFLSEIDRLKSLLSKLDVSKDLRRKDAVIDADSRVRRFFSENRGGLSKVFGYLGLNSNEMFLVKCVIAAGQEHALCMNYEEAFGEEEEEYTVRSSVKNALYALVEMIERFDVNSSGYKGRREMGTVLDSEEIAHFRKFLTFLEEIEQFYDCIGGIIGYQVMVLELLHQSSKRRNTNRSQLVEESLGC

论坛徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之德黑兰石油
日期:2015-07-15 08:46:452015亚冠之平阳省
日期:2015-11-08 16:27:53白银圣斗士
日期:2015-11-14 09:58:12
2 [报告]
发表于 2015-08-12 08:51 |只看该作者
一串儿葡萄皮这种不是标准的fasta格式文档,BioPerl模块不能正常识别。
建议直接用Perl脚本过滤数据,或者如果文件不大的话,就直接用NotePad++之类的文本编辑器直接正则替换就好了!

论坛徽章:
10
2015亚冠之广州富力
日期:2015-06-16 14:44:332015亚冠之西悉尼流浪者
日期:2015-08-19 13:14:352015亚冠之阿尔希拉尔
日期:2015-08-04 09:38:052015亚冠之萨济拖拉机
日期:2015-07-31 15:01:582015亚冠之首尔
日期:2015-07-27 14:24:312015亚冠之塔什干火车头
日期:2015-07-20 09:47:202015亚冠之布里斯班狮吼
日期:2015-07-15 14:58:432015亚冠之首尔
日期:2015-07-07 09:31:262015亚冠之广州恒大
日期:2015-07-06 15:41:272015亚冠之首尔
日期:2015-08-27 11:03:01
3 [报告]
发表于 2015-08-12 09:22 |只看该作者
use strict;
use warnings;
my $a='"fafdaf"';
$a=~s/\"//g;
print $a;
这样不行么?还是我没理解楼主的意思?

论坛徽章:
0
4 [报告]
发表于 2015-08-12 10:02 |只看该作者
我也是这么做的,可是有些地方会出现这种情况:>atcgutwurpwfaiwe
WWMNNMMJEFFYGGGSDFKNVJJNVSDFVNSDHFV"at9ouytrey|pcvyuqfqiufjqelityuio"MMNSHFBEYSBCSJHCNKADJNQACHKWJCNSJ
就是有的引号并没有被去掉,而是带引号的ID直接跟到上一个序列的后面去了。




回复 3# xiaoxingan99


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2015-08-12 10:05 |只看该作者
回复 4# 一串儿葡萄皮


    有这种情况早干吗不说? 这不是浪费大家时间么

论坛徽章:
0
6 [报告]
发表于 2015-08-12 10:05 |只看该作者
我手动替换后,报错说含有不匹配的>,是不是输入的大于号跟原文件的大于号还有什么区别呢?

回复 2# b114213903


   

论坛徽章:
0
7 [报告]
发表于 2015-08-12 10:08 |只看该作者
我在替换之前没有,只是用s/\"//g  替换后的结果会出现带引号的ID会跟到上一个序列后面去。不好意思,没说清楚。



回复 5# MMMIX


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2015-08-12 10:12 |只看该作者
回复 7# 一串儿葡萄皮


    把能重现这个问题的输入和你的(能直接执行的)代码都贴上来.

论坛徽章:
10
2015亚冠之广州富力
日期:2015-06-16 14:44:332015亚冠之西悉尼流浪者
日期:2015-08-19 13:14:352015亚冠之阿尔希拉尔
日期:2015-08-04 09:38:052015亚冠之萨济拖拉机
日期:2015-07-31 15:01:582015亚冠之首尔
日期:2015-07-27 14:24:312015亚冠之塔什干火车头
日期:2015-07-20 09:47:202015亚冠之布里斯班狮吼
日期:2015-07-15 14:58:432015亚冠之首尔
日期:2015-07-07 09:31:262015亚冠之广州恒大
日期:2015-07-06 15:41:272015亚冠之首尔
日期:2015-08-27 11:03:01
9 [报告]
发表于 2015-08-12 10:41 |只看该作者
还是把你的代码发上来看看吧,如果就是直接替换的话,应该没啥大问题的。

论坛徽章:
0
10 [报告]
发表于 2015-08-12 11:09 |只看该作者
我的代码
#!/usr/bin/perl    -w
use warnings;
use strict;
use Bio::SeqIO;

my $file=$ARGV[0];
open(W,"<$file")|| die $!;
while(<W>){
   chomp;
    my$i='"\w+"';
        $i=~s/\"//g;

}
    open(M,">$file.new2") || die $!;
    my$all=Bio::SeqIO->new(-file=>"$file",-format=>'fasta');
    while(my$seq=$all->next_seq){
        my$id=$seq->id;
        my$seq=$seq->seq;


            print M ">$id\n";
            print M "$seq\n";
        }


    close W;
    close M;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP