DNA序列反向互补工具--php tool

warning: 这篇文章距离上次修改已过187天,其中的内容可能已经有所变动。

这两天看了些php的应用,发现php网络应用真是方便...根据前几章关于string的知识写个生物小应用复习下. 以前总是利用网上的dna反向互补工具,但是有时候不能连接,后来用了sms,非常方便,支持下载到本地使用.自己用用php也不错, 练习练习代码.

主要实现以下功能:
1.反向互补....
2.去除多余字段(数字,空格,主要ncbi上下来的序列多含有数字和空格)
3.提示含有非碱基字符,有些时候SNP的出现需要保留

未实现功能:
本来想在原始序列中突出显示非碱基字母,比如红色显示,结果没有成功....substr_replace()无法应用在上面...暂时看到的知识想不出其他解决方案了,先等等吧,下次会了再改,反正问题不大.

演示: DNA rev-complement tool
代码:(有点乱,有些地方觉得能简洁,但似乎没有找到可行的简洁之法,主要是去除序列中数字那段,后来发现ereg_replace()能实现,方便多了)


DNA rev-complement tool


	

Enter your original DNA sequence:

(numbers and whitespaces will be deleted, non-base letters will be unchanged and you'll have a warning.)

$input =$_GET['seq'];
if (empty($input)) {
} else {
$output=strtolower($input);
for ($i=0;$i switch ($output{$i}) {
case 'a':
$output{$i}= 't';
break;
case 'g':
$output{$i}= 'c';
break;
case 'c':
$output{$i}= 'g';
break;
case 't':
$output{$i}= 'a';
break;
default:
$error=true; //判断是否有非a,g,c,t碱基字母
break;
}
}
$output = strrev($output); //反向
$output = ereg_replace('[@[:digit:][:blank:]]','', $output); //去除数字空格
if ($error==true) {
echo "warning: there are some non-base input
"; //输出些警告提示,不影响序列处理
}
echo "the reverse complement sequence:
$output


";
echo "the original sequence:
$input";
}
?>

添加新评论