构建Web页面的Blast(windows/linux)


准备1:Linux,下载blast。看最新版的blast下载,找到适合你的版本。假设安装在/usr/ncbi/blast/

准备2:php环境,运行一个例子看看。如果一切胜利。正常情况下,一般需要在你用户名(如zhenglc)下建个文件夹public_html,里面随便放个页面。内容可以是:

文件名:phpinfo.php
<? echo phpinfo(); ?>

注意权限。你可以用chmod命令来改变文件或文件夹的权限。

chmod 777 zhenglc
chmod 777 public_html
chmod 777 phpinfo.php

有了权限后才可以运行。又假设你全部配置好了。例如该Linux的IP是192.168.1.1

http://192.168.1.1/~zhenglc/phpinfo.php

地址类似这样。如果一切顺利。当然会有内容。失败的话就重头再检查一遍。成功后接下来就比较简单。无非就是写个界面,然后调用blast就是。

例如:一个简单的界面index.php

<strong>1. To Blast Test DB Information(Enter FASTA sequence):</strong>
<form action=”./blastall.php” enctype=”application/x-www-form-urlencoded” method=”post”>//注意这里
Select
<select name=”data” size=”1″> <option selected=”selected” value=”test_na_db”>Test na db(nt)</option>//这里是blastdb的名称。自行更换 <option value=”test_aa_db”>test_aa_db(protein)</option>//这里是blastdb的名称。自行更换</select>

Select
<select name=”blast” size=”1″> <option selected=”selected” value=”blastn”>blastn</option> <option value=”blastp”>blastp</option></select>
<select name=”bv” size=”1″> <option selected=”selected” value=”3″>3</option> <option value=”4″>4</option> <option value=”5″>5</option> <option value=”8″>8</option> <option value=”10″>10</option></select>

<textarea style=”width: 550px; height: 100px;” cols=”66″ rows=”6″ name=”sequence”></textarea>
<input name=”B1″ type=”submit” value=”Blast” />
<input name=”B2″ type=”reset” value=”Reset” />
</form>

触发Form之后,提交到blastall.php

< ?php
$sequence=$_POST[sequence];
$blast=$_POST[blast];
$bv=$_POST[bv];
$data=$_POST[data];
$filename=md5 (uniqid (rand()));
//随机产生一个文件名
$file=fopen("/tmp/$filename.seq","w+");
//把提交的序列保存在这里
fwrite($file,$sequence,strlen($sequence));
fclose($file); 
system("/usr/ncbi/blast/blastall -i /tmp/$filename.seq
    -p $blast -d /ext2/zhenglc/blastdb/$data -b $bv -v $bv -F F");
//这里运行blast。用system调用linux命行。 exit; } ?>

 

是比较简单的。具体一些路径自行更换。参数也是。

另外,你也可以直接下载wwwblast,直接下载后解压就能用了。

另外如果是在windows环境,如XP下的。注意路径。

相应的地方改为:

$file=fopen("C:/blast/$filename.seq","w+");

$blastresult=passthru("C:/blast/bin/blastall.exe -i
    C:/blast/$filename.seq -p $blast -d C:/blast/db/$db -b $bv -v $bv -F F"); 

//Linux下用system函数,windows下运行用passthru函数。

print $blastresult;

~完~!


18条回应:“构建Web页面的Blast(windows/linux)”

    • 呵呵。简单一点解释一下的话:
      你知道人类基因组测序吧。现在已经有好多物种的序列都测完了。序列太多,可以用海量来形容。就像网络里海量的数据一样。也是需要借助搜索引擎(google,百度)来搜索,blast也就像这些一样,通过一些算法,专门用于序列的搜索匹配等等,非常精确。

  1. 关于wwwblast,我在linux解压后,怎么启动?似乎还是不能用啊……急求解答,谢谢!

    • 什么提示??

      那可能是你没放到地方..一般配置正确后有个public_html的文件夹.放在这下面才能运行.

      当然你得先保证其它的配置都是正确的

  2. 呃,一时也说不清楚……能否提供个联系方式,比方说QQ,邮箱什么的,想更好的向您请教。
    我的联系方式是 QQ:506525297 邮箱:zhoumouxin@163.com
    不胜感激啊……

      • 呵呵,汗–
        太着急了,没留心。嗯,public_html文件夹可不可以建在root目录下(我没设置用户名)?然后 从ncbi上下了一个wwwblast-2.2.21-ia32-linux.tar.gz。解压到public_html后,发现里面的cgi文件都打不开,是不是bash对csh不兼容吗?需要怎么更改呢?系统装的是fedora8 i386。谢谢!

  3. 嗯,一般什么时候有空呢?呵呵,这几天可能就要麻烦您了。期待着你的回复。

  4. 首先,感谢O型天蝎座今晚对我的建议和帮助。
    虽然经过努力,用C shell调试blast.cgi文件,想使其在输入查询之后能够链接到ncbi上去,没有成功,但依然很有收获。
    呵呵,最后再次对柳城博客的朋友们给我的帮助表示谢意。
    晚安!

  5. 你好,现在在研究这个blast程序,不知道formatdb这个程序跟那几个源文件有关?

  6. 想问一下:我按照这个方法做了,提交之后怎么没有任何东西显示出来呢?