perl编程问题 FastA序列反向互补

就是TGACCTAG换成ACTGGATC谢谢了,我也写了一个,貌似也能成立。#!usr/bin/perl/-wforeach(<>){if(/^(A|G|C|T)/){i... 就是TGACCTAG
换成ACTGGATC
谢谢了,我也写了一个,貌似也能成立。
#! usr/bin/perl/ -w
foreach(<>){
if(/^(A|G|C|T)/){
if(s/T/1/g && s/A/2/g && s/G/3/g && s/C/4/g){}
if(s/1/A/g && s/2/T/g && s/3/C/g && s/4/G/g){print ;}
}
else{print;
next;}
}

如果我用的是个文件fastA
“>gi|187608668|ref|NM_001043364.2| Bombyx mori moricin (Mor), mRNA
AAACCGCGCAGTTATTTAAAATATGAATATTTTAAAACTTTTCTTTGTTTTTA
TTGTGGCAATGTCTCTGGTGTCATGTAGTACAGCCGCTCCAGCAAAAATACCT
ATCAAGGCCATTAAGACTGTAGGAAAGGCAGTCGGTAAAGGTCTAAGAGCCAT
CAATATCGCCAGTACAGCCAACGATGTTTTCAATTTCTTGAAACCGAAGAAAA
GAAAGCATTAAGAAAAGAAATTGAGTGAATGGTATTAGATATATTACTAAAGG
ATCGATCACAATGATATATAGATAGGTCATAGATGTCAACGTGAATTTATGGA
TTTTTGTTTTCCCCTTTGTAGTACTTACTTATAGTCAGTTCTTAAATTGATTG
CAACGACAACTGTGTACTATTTTTTATATTTGGTTCGAAAAGTTGCATTATTA
ACGATTTTAGAAAATAAAACTACTTTACTTTTACACG”我想将它反向互补了,该怎么做啊?
还有就是答复下面三楼“p表示5'端的那个磷酸,是标记方向用的。
也可写作5'-AGATTAAGCC-3',反向互补序列是3'-TCTAATTCGG-5',也可写作pGGCTTAATCT ”
展开
 我来答
yqy_135
2010-08-05 · TA获得超过998个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:382万
展开全部
#!/usr/bin/perl -w
# Author: yqy_135
# Program name: fasta-re.pl 用于反转(反向互补)fasta格式序列

open (IN,"<$ARGV[0]") || die ("\nError: Couldn't open input file (*.txt) !\n\n");

my $filename = $ARGV[0];
$filename =~ s/\.txt//;
open (OUT,">$filename.fas");

$/= ">";

while (<IN>)
{
next unless (my ($id,$seq) = /(.*?)\n(.*)/s);
$seq =~ s/[\d\s>]//g;#remove digits, spaces, line breaks,...

# reverse $seq;

my @lxm=split(//,$seq);
@lxm = reverse @lxm;
$seq=join "", @lxm;

$seq=~ tr/AGCT/TCGA/;

print OUT ">"."$id\n$seq\n";

};

——————————————————————更新
上面的程序就是针对文件的,只要你是fasta格式就行,用法为
perl fasta-re.pl 你的fasta文件名

自动生成反向的fasta格式文件
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nini_scnu
推荐于2018-04-07
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
这是反向互补吗?这不只是互补而已吗?我觉得反向互补应该得到的序列是CTAGGTCA。
这是我写的程序,算法比较笨。。。

#!usr/bin/perl/-w
print "put in";
$a=<STDIN>;
chomp($a);
@q=split (//,$a);
@p=reverse @q;
foreach my $i (@p){
if ($i eq "A"){print "T";}
elsif ($i eq "T"){print "A";}
elsif ($i eq "G"){print "C";}
elsif ($i eq "C"){print "G";}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yixianfu
2010-08-04 · TA获得超过118个赞
知道答主
回答量:45
采纳率:0%
帮助的人:54.6万
展开全部
好好研究一下tr和reverse的使用方法即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wzwmm2006
2010-08-02 · 超过24用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:0
展开全部
reserve就是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式