亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1919 | 回復(fù): 8
打印 上一主題 下一主題

用程序怎么計(jì)算下面公式 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-11-23 20:24 |只看該作者 |倒序?yàn)g覽
怎么計(jì)算D2…
    ,(i,j =a,c,g,t)
其中 1/ln(2) = 1.442695040889
一  下面是所有出現(xiàn)的概率的情況( i,j 所有組合的16中情況概率,以及Pi,Pj的4中情況)
Pac        0.091116173
Pcc        0.054669704
Pag        0.102505695
Ptg        0.022779043
Pat        0.061503417
Ptc        0.06833713
Paa        0.141230068
Pga        0.104783599
Ptt        0.027334852
Pct        0.027334852
Pcg        0.045558087
Pgg        0.036446469
Pta        0.029612756
Pca        0.118451025
Pgc        0.034168565
Pgt        0.031890661

Pa        0.396355353
Pc        0.248291572
Pg        0.207289294
Pt        0.148063781

論壇徽章:
33
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-17 06:23:27操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-24 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-05-06 12:46:59
2 [報(bào)告]
發(fā)表于 2012-11-23 23:55 |只看該作者
這不就是把這個(gè) ∑ 展開(kāi)么?
如果我的數(shù)學(xué)老師教得沒(méi)錯(cuò)的話, 不就是個(gè) 加法么? 兩層的循環(huán)加一下好啦. 結(jié)果再除以 ln(2) 不就 OK了?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2012-11-24 08:41 |只看該作者
你幫我改下代碼吧,我運(yùn)行總出錯(cuò)。
#!usr/bin/perl -w
use strict;
open IN,"file.txt";
while(<IN>){

if(/P(\w)(\w) (\d+\.\d+)){
%s=('a',0,'g',1,'c',2,'t',3);
$P[$s{$1}][$s{$2}]=$3;
}
}


for $i(0..$#P){
for $j(0..$#{$P[0]}){
$D2=1/1.44($P[$i][$j].$P[$i][$j]-2$P[$i][$j].$P[$i]$P[$j]+$P[$i]$P[$i]$P[$j]$P[$j])/$P[$i]$P[$j];
}
}


回復(fù) 2# q1208c


   

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2012-11-24 12:01 |只看該作者
唉,弄不出來(lái)。我還是那C++自己處理吧,由原始序列直接處理,分享下代碼:


#include "stdio.h"
#include"stdlib.h"
#include"math.h"
#include"string.h"
#include"ctype.h"
#include"conio.h"

void main()
{
    char  a[300000],b[16][3]={"AA","AC","AG","AT","CA","CC","CG","CT","GA","GC","GG","GT","TA","TC","TG","TT"},c[3]={'\0','\0','\0'};
   FILE *fp1,*fp2;
   
   long int i,j, k=0,m=0;
  
   double   d[16]={0.0},e[4]={0.0},n=2.0,g=0.0,D2=0,f[16]={0.0};

   fp1=fopen("F:\\計(jì)算D2的序列.txt","r");
   fp2=fopen("F:\\D2值.txt","w");
   
  

       

          

   do
   {
           fgets(a,300000,fp1);

      
          if(a[0]=='@')
                  break;
       if((a[0]!='>')&&(a[0]!='>'))
          
           {  for(i=0;i<16;i++)
                     d[i]=0.0;
         for(i=0;i<4;i++)
               e[i]=0.0;
               g=0.0;
                D2=0;
                 m=0;
                   for(i=0;i<300000;i++)
                   {
               
               if(a[i]=='\n')
                           {
                                   //fprintf(fp2,"%s",a);
                                   m=i;
                               break;

                           }
                                   if(a[i]=='A')
                    e[0]++;
                   if(a[i]=='C')
                    e[1]++;
                   if(a[i]=='G')
                    e[2]++;

                   if(a[i]=='T')
                    e[3]++;

                                   c[0]=a[i];
                                   c[1]=a[i+1];
                   //fprintf(fp2,"%s\n",c);

                                   for(j=0;j<16;j++)
                                   {
                                           if(strcmp(b[j],c)==0)
                                           {
                                                   d[j]++;
                                                   break;
                                           }
                                   }

                  
                                   c[0]='\0';
                               
                                   c[1]='\0';

                   }
                   fprintf(fp2,"%d\n",m);
                   for(i=0;i<4;i++)
                   {
                           e[i]=e[i]/m;

                     fprintf(fp2,"%f\t",e[i]);
                   }
                  
                 
           
           fprintf(fp2,"\n");
                         c[0]=a[m-1];
                                          c[1]=a[0];
                  // fprintf(fp2,"%s\n",c);

                                   for(j=0;j<16;j++)
                                   {
                                           if(strcmp(b[j],c)==0)
                                           {
                                                   d[j]++;
                    // fprintf(fp2,"%d\n",j);
                                                   break;
                                           }
                                   }

                  
                                   c[0]='\0';
                               
                                   c[1]='\0';

           for(i=0;i<16;i++)
                   {   d[i]=d[i]/m;
                           fprintf(fp2,"%f\t",d[i]);
                   }
              fprintf(fp2,"\n");
            
                                   D2=0;
                                   fprintf(fp2,"%f\n",D2);
                          
                                  k=0;   
          for(i=0;i<4;i++)
            for(j=0;j<4;j++)
                        {
                          
                                g=((d[k]-e[i]*e[j])*(d[k]-e[i]*e[j]))/(e[i]*e[j]);
               fprintf(fp2,"%f\t",g);
               
                                D2+=g;
               fprintf(fp2,"%f\n",D2);
                                k++;
                        }
                        D2=D2/log(n);

                 fprintf(fp2,"%f\n",D2);
           k=0;
         for(i=0;i<4;i++)
            for(j=0;j<4;j++)
                        {  
            f[k]=(d[k]/(e[i]*e[j]))-1;
                       
             fprintf(fp2,"%f\n",f[k]);
                k++;
                        }

           }
                  
                  
   }
   while(a[0]!='@');
   //for(i=0;i<10;i++)
   //fprintf(fp2,"%ld    ",c[i]);
   fclose(fp1);
   fclose(fp2);
}




論壇徽章:
46
15-16賽季CBA聯(lián)賽之四川
日期:2018-03-27 11:59:132015年亞洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49雙魚座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亞冠之布里斯班獅吼
日期:2015-07-13 10:44:56
5 [報(bào)告]
發(fā)表于 2012-11-24 16:23 |只看該作者
  1. #!/usr/bin/perl -w

  2. use strict;

  3. my %p;
  4. while (<DATA>) {
  5.     my($key, $val) = /^P(\w+)\s+(\S+)$/;
  6.     $p{$key} = $val;
  7. }

  8. my $sum = 0;
  9. for my $ij (glob '{a,t,g,c}{a,t,g,c}') {
  10.     my($i, $j) = split '', $ij;
  11.     $sum += ($p{$ij} - $p{$i}*$p{$j})**2 / ($p{$i}*$p{$j});
  12. }

  13. print $sum / log(2);

  14. __DATA__
  15. Pac        0.091116173
  16. Pcc        0.054669704
  17. Pag        0.102505695
  18. Ptg        0.022779043
  19. Pat        0.061503417
  20. Ptc        0.06833713
  21. Paa        0.141230068
  22. Pga        0.104783599
  23. Ptt        0.027334852
  24. Pct        0.027334852
  25. Pcg        0.045558087
  26. Pgg        0.036446469
  27. Pta        0.029612756
  28. Pca        0.118451025
  29. Pgc        0.034168565
  30. Pgt        0.031890661
  31. Pa        0.396355353
  32. Pc        0.248291572
  33. Pg        0.207289294
  34. Pt        0.148063781
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2012-11-24 18:04 |只看該作者
謝謝你的熱心幫助。。。回復(fù) 5# zhlong8


   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2012-11-25 09:36 |只看該作者
zhlong8 發(fā)表于 2012-11-24 16:23

第一次看到glob這種用法,學(xué)習(xí)了

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
8 [報(bào)告]
發(fā)表于 2012-11-25 14:39 |只看該作者
一段比較精簡(jiǎn)的perl6代碼實(shí)現(xiàn):
  1. #!/usr/bin/perl6
  2. # 0.105694756594057

  3. my @data = <
  4.         Pac        0.091116173
  5.         Pcc        0.054669704
  6.         Pag        0.102505695
  7.         Ptg        0.022779043
  8.         Pat        0.061503417
  9.         Ptc        0.06833713
  10.         Paa        0.141230068
  11.         Pga        0.104783599
  12.         Ptt        0.027334852
  13.         Pct        0.027334852
  14.         Pcg        0.045558087
  15.         Pgg        0.036446469
  16.         Pta        0.029612756
  17.         Pca        0.118451025
  18.         Pgc        0.034168565
  19.         Pgt        0.031890661
  20.         Pa         0.396355353
  21.         Pc         0.248291572
  22.         Pg         0.207289294
  23.         Pt         0.148063781 >;

  24. my %p = map { s/^P//; $_ }, @data;
  25. say ([+] map {(%p{$^a~$^b}-%p{$a}*%p{$b})**2/(%p{$a}*%p{$b})},
  26.          [X] [<a c g t>] xx 2)/log(2);
復(fù)制代碼

論壇徽章:
46
15-16賽季CBA聯(lián)賽之四川
日期:2018-03-27 11:59:132015年亞洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49雙魚座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亞冠之布里斯班獅吼
日期:2015-07-13 10:44:56
9 [報(bào)告]
發(fā)表于 2012-11-25 19:17 |只看該作者
回復(fù) 7# kk861123


    做排列組合那個(gè)模塊名字想不起來(lái)了主要
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP