我工作的一些DNA(A,T,C和G带U的甩在了机会)
现在我有一个很长的字符串充满不确定的DNA长度。我已经完成了核苷酸碱基的编码。
%nucleotide_bases = (A => Adenine,
T => Thymine,
G => Guanine,
C => Cytosine);
$nucleotide_bases{'U'} = 'This is a RNA base called Uracil';#T=U for RNA
现在我所需要做的就是放入某种循环来读取字符串中的每个单个字符。由于此代码适用于学生,因此它需要很简单。几个星期前我开始使用perl,在此之前我使用java。
当读取每个单个碱基对(一次一个)时,字符串($ string1被称为)需要打印它的全名。所以,当弦说 ATATCGCG
输出到屏幕上需要读取: 腺嘌呤 胸腺嘧啶 腺嘌呤 胸腺嘧啶 胞嘧啶 鸟嘌呤 胞嘧啶 鸟嘌呤
如果这是太棘手的从字符串做,我可以使用一个数组作为起点。非常感谢你的帮助。
优秀的答案。我们现在将全部设置。
我的另一个问题是关于确保用户只能输入DNA碱基(A,T,C & G)。我认为这被称为输入验证。
print "Please enter your first DNA sequence now: \n";
$userinput1=<>;
chomp $userinput1;
如何在那里添加输入验证?除非条件得到满足,否则应始终重新询问第一份印刷说明。
我知道我需要像
if($userinput1 ne 'a' or 't' or 'c' or 'g') {
print "Please enter DNA only (A, T, C or G)";
}
我不完全知道如何回到原来的print语句
你可以使用'for $ char(split //,$ string)'来保存一些输入,并且IMO使你的代码更清晰。 – TLP 2012-04-14 13:57:07