免费注册 查看新帖 |

Chinaunix

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

将匹配字符串的特定区段序列变成小写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-06-05 11:14 |只看该作者 |倒序浏览
open(FILE1, "<Test.fasta") || die("Cannot open file Test.fasta");
open(FILE2, "<Repeat.gff") || die("Cannot open file Repeat.gff");
open(OUTFILE, ">Test3.txt") || die("Cannot create file Test3.txt");
my %hash;
while(<FILE1>) {
                chomp;
                if(/^>/){
                        $key=substr($_,1);     
                        }
                else {
                     $hash{$key}.=$_;
                     }
               }
               
while(<FILE2>){
              chomp;
              s/^\s+//g;
              my @temp=split(/\t|\;/,$_);
              my $ID=$temp[0];    # my $ID=substr($temp[0],0);      
              my $Start=$temp[3]-1;
              my $Len=($temp[4]-$temp[3]+1);

     while(my($key, $value)=each%hash){
                                if(exists $hash{$ID}) {
                                                                $hash{$ID} =~ s/^(.{$Start})(.{$Len})/$1.lc($2)/eg;                              
                                                                }
                                                            }
                      }

foreach my $k (keys %hash) {print OUTFILE "$k\t$hash{$k}";}
close FILE1;
close FILE2;
close OUTFILE;

这段脚本的执行结果是:Quantifier in {,} bigger than 32766 in regex; marked by <-- HERE in m/^(.{ <-- HERE 32926})(.{195})/ at t41.pl line 27, <FILE2> line 60.
已知:GFF文件记录的是每个ID不同区段的序列特征信息,每个ID纵列出现若干次; fasta文件记录的是>ID\n 序列;
问题:首先读取序列fasta文件,存入hash数列,key指定为:“>”后面的字符串,以便于对应下面的GFF文件中的第一列$ID,便于在其中查找。$Start是要替换序列的起点,$Len是要替换序列从$Start开始的长度。$ID 是序列的ID, 对每一个ID,查找是否存在于fasta文件中,有对话,对其相应的序列坐标片段进行小写替换。然后输出结果。

本人刚刚开始写perl脚本,请问大神,我那里写错了????为什么运行报错,说正则表达式匹配超出范围,我查找了相应到Line27的序列,确认没有错误。SOS~~~~~

论坛徽章:
0
2 [报告]
发表于 2016-06-05 11:17 |只看该作者
请问是否可以不用遍历 hash数列来实现指定区段序列打小写替换的 操作??

论坛徽章:
0
3 [报告]
发表于 2016-06-06 13:59 |只看该作者
已解决~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP