这两天看了些 php 的应用,发现 php 网络应用真是方便…根据前几章关于 string 的知识写个生物小应用复习下. 以前总是利用网上的 dna 反向互补工具,但是有时候不能连接,后来用了sms,非常方便,支持下载到本地使用.自己用用 php 也不错, 练习练习代码.
主要实现以下功能:
未实现功能:
本来想在原始序列中突出显示非碱基字母,比如红色显示,结果没有成功. substr_replace()无法应用在上面;暂时看到的知识想不出其他解决方案了,先等等吧,下次会了再改,反正问题不大.
演示: DNA rev-complement tool
代码:
datetime="2009-07-16T13:08:33+00:00"> 有点乱,有些地方觉得能简洁,但似乎没有找到可行的简洁之法,主要是去除序列中数字那段,后来发现 ereg_replace()能实现,方便多了
<!--序列输入 -->
<table width=100% style="table-layout:fixed;">
<tr>
<td style="word-wrap : break-word ;">
<!-- 序列处理及输出 -->
<?php
$input =$_GET['seq'];
if (empty($input)) {
} else {
$output=strtolower($input);
for ($i=0;$i<strlen($input);$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 "<font color=red>warning: there are some non-base input</font>
<br />"; //输出些警告提示,不影响序列处理
}
echo "<b>the reverse complement sequence:</b><br /><font color=blue size=2> $output</font><br /><br /><br />";
echo "<b>the original sequence:</b><br /><font size=2> $input</font>";
}
?>
</td>
</tr></table>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于