文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>蛋白反转数据库及合并程序

蛋白反转数据库及合并程序

时间:2007-06-07  来源:ttyuren

给臭臭写的第一个程序,读入一个蛋白数据库文件,格式为:   >IPI:IPI00000001|SP:P00683
1AAABBBCCCDDD
2EEEFFFGGGHHH
3AAABBBCCCDDD
4EEEFFFGGGHHH
>IPI:IPI00000002|SP:P00683
5IIIJJJKKKLLL
6MMMNNNOOOPPP
7IIIJJJKKKLLL
8MMMNNNOOOPPP
>IPI:IPI00000003|SP:P00683
9QQQRRRSSSTTT
10UUUVVVWWWXXX
11QQQRRRSSSTTT
12UUUVVVWWWXXX
>IPI:IPI00000004|SP:P00683
13YYYZZZAAABBB
14CCCDDDEEEFFF
15YYYZZZAAABBB
16CCCDDDEEEFFF
  做成反转数据库并写在原文件末尾。 反转数据库即把正向数据库中条目数据按逆序列读取,重新生成一个新的反转数据库,同时对反转库中数据做特征标识(在蛋白号前加R表示)。 反转数据库的作用是用来评判结果可信度的,检索的时候,正库反库同时检索,就会得出一部分正库结果P,一部分反库结果R,假阳性率计算FP=2R/(P+R)×100% 。通过设置过滤参数,减少检索数据中R的数目,即可提高结果的置信度。   代码: ###--------------------------------###   #! /usr/bin/perl -w
use strict;
open (IN, "<testP.txt")||die("Can't open original file: $!");         open (OUT, ">testPR.txt")||die("Can't open original file: $!");        print OUT $_ while(<IN>);          #首先拷贝一份原文件
seek (IN,0,0);                
  my $gotHeader = 1;                   #数据行标识
my $curLine="";
my @head;
  while(<IN>){                           (s/^>/>R/)
  ?(push (@head,$_)) && ($gotHeader = 1)      
  :($curLine .= $_ ) && ($gotHeader = 0);            ##   {rev_write(); $curLine = "";} if ($gotHeader && $curLine);  ##error   if (($gotHeader and $curLine)) {
  rev_write();
  $curLine = "";
 }  
  } rev_write();                              #最后一条记录,单独输出   close IN;                       
close OUT;                     

#--------反转并写入OUT文件的子程序---------#
sub rev_write{
     print OUT (shift @head);                        #输出RINI标识行              
     chomp $curLine;                                 #清楚数据行末尾回车
     my @letter= split(//, $curLine);                #数据行内容存入数组
     print OUT (pop @letter) for (0..$#letter);      #倒序输出
     print OUT "\n";
}
    ###--------------END--------###   原想把判断部分用这条语句代替的, {rev_write(); $curLine = "";} if ($gotHeader && $curLine);         可是编译没通过,说syntax error,看来if倒装不允许多行?还是格式有问题?   而且程序不允许原文件有空行。小臭安慰说"没关系了,现在有别人的文件可以用...",费了半天劲,还是只能用别人的文件,郁闷中...继续修改。
  OK,修改完成,加入  s/^\n$//;    语句去除空行;   ^_^
相关阅读 更多 +
排行榜 更多 +
枪战特训2

枪战特训2

飞行射击 下载
方块枪战战场安卓版

方块枪战战场安卓版

飞行射击 下载
战斗火力射击安卓版

战斗火力射击安卓版

飞行射击 下载