- 论坛徽章:
- 0
|
本帖最后由 tempo8 于 2014-12-22 15:39 编辑
回复 7# chenhao392 谢谢提醒!
1. 输入数据奇怪,4楼左图gene=LOC.. 在ID行,右侧在序列行开始部分。
答:不好意思!右侧是chomp过的(即line 5-8, 你把<IN> 的第一行拿出来,chomp了放进 <OUT> !
2. 没有一行的数据满足> 开始,并含有序列的,所以Perl的代码应该啥都match不上啊?
答:Perl代码重新整理了!
3. line 5-8, 你把<IN> 的第一行拿出来,chomp了放进 <OUT>, 这是干嘛?
答:目的是删除换行符,再搜模式
4. while loop 里,不匹配的line也会打印给OUT,这是你想要的?
答: 要的结果是图左上半部分的fasta格式的序列!
附上能用多条件整理序列的代码 )请斧正!谢谢- {local $/=">";
- while (<DATA>){
- if($_=~m/(.{26}).+?\*.+?(M[^*]+W[^*]M[^*][DE][FYW][^*]+?\*)/s){
- my $f=join ("\n",">".$1,$2);
- print $f,"\n";
- }
- }
- }
- __DATA__
- >TCONS_00008129Os01g15640_2
- FDR*VSFFYFLASFVCMPLGI*LCKLLMIFHITAKCDVPTQDNKWHFFAARDRKYPNGSRSNRATVAGY
- WKSTGKDRAIKMGKQTIGTKKTLVFHEGRPPTGRRTEWIMHEYYIDERECQACPDMKDAY
- VLCRITKRNDWIPGNGNELDNSDPHPEPYDAPPSVISTEQLNPAAEPVVGVEAAPVTVAE
- PDGVTTSAITANIPSPSDDINLDDWLNELFDPFFDPEQSLASADLSPDEQNVESSNVGAL
- APKVEQDYSSPNENVVDDTEYLLPEDVYNILHPGTDDFNMLQNPLDQYPIQYATDVWSGI
- QKEELWSPQANAEPSQSNEAADNGIIRRYRSMKTPETSVPQFKGKTQAKMRVGINKMATS
- SSESINQTIKFENSGRLVEHQKNQAHDVASTKRSDAGKPSTELSSNRGFLRGIRNAFAGC
- SDARWNMILVAGFAIGVAVVALHIGQRLGLSQRDQQHT*PLGLQVTGFLCFLQSGET*TN
- >TCONS_00008129Os01g15640_3
- QILGGFETRVMGIGCDPVEIRVDRSVGWLCEEMVFLK*FGIWGIRIAALPSVLQ*DDKSV
- NSRLFFLFPF*LAYNRISPHFSGGLM*NLELLPYSY*SF*NFLPCLL*T*NCQ*LERRKH
复制代码 |
|