这两天看了些php的应用,发现php网络应用真是方便...根据前几章关于string的知识写个生物小应用复习下. 以前总是利用网上的dna反向互补工具,但是有时候不能连接,后来用了sms,非常方便,支持下载到本地使用.自己用用php也不错, 练习练习代码.
主要实现以下功能:
1.反向互补....
2.去除多余字段(数字,空格,主要ncbi上下来的序列多含有数字和空格)
3.提示含有非碱基字符,有些时候SNP的出现需要保留
未实现功能:
本来想在原始序列中突出显示非碱基字母,比如红色显示,结果没有成功....substr_replace()无法应用在上面...暂时看到的知识想不出其他解决方案了,先等等吧,下次会了再改,反正问题不大.
演示: DNA rev-complement tool
代码:(有点乱,有些地方觉得能简洁,但似乎没有找到可行的简洁之法,主要是去除序列中数字那段,后来发现ereg_replace()能实现,方便多了)
DNA rev-complement tool
$input =$_GET['seq']; if (empty($input)) { } else { $output=strtolower($input); for ($i=0;$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"; } ?> |