mirror of
http://43.156.76.180:8026/YuuMJ/EukPhylo.git
synced 2025-12-28 05:10:26 +08:00
188 lines
8.2 KiB
C++
188 lines
8.2 KiB
C++
// $Id: granthamChemicalDistances.cpp 962 2006-11-07 15:13:34Z privmane $
|
|
|
|
#include "granthamChemicalDistances.h"
|
|
#include <cmath>
|
|
|
|
granthamChemicalDistances::granthamChemicalDistances() {
|
|
for (int i=0; i<20;++i) GranChemDist[i][i]=0;
|
|
GranChemDist[0][1]=112; GranChemDist[0][2]=111; GranChemDist[0][3]=126; GranChemDist[0][4]=195; GranChemDist[0][5]=91; GranChemDist[0][6]=107;
|
|
GranChemDist[0][7]=60; GranChemDist[0][8]=86; GranChemDist[0][9]=94; GranChemDist[0][10]=96; GranChemDist[0][11]=106; GranChemDist[0][12]=84;
|
|
GranChemDist[0][13]=113; GranChemDist[0][14]=27; GranChemDist[0][15]=99; GranChemDist[0][16]=58; GranChemDist[0][17]=148; GranChemDist[0][18]=112;
|
|
GranChemDist[0][19]=64;
|
|
|
|
GranChemDist[1][2]=86; GranChemDist[1][3]=96; GranChemDist[1][4]=180; GranChemDist[1][5]=43; GranChemDist[1][6]=54; GranChemDist[1][7]=125;
|
|
GranChemDist[1][8]=29; GranChemDist[1][9]=97; GranChemDist[1][10]=102; GranChemDist[1][11]=26; GranChemDist[1][12]=91; GranChemDist[1][13]=97;
|
|
GranChemDist[1][14]=103; GranChemDist[1][15]=110; GranChemDist[1][16]=71; GranChemDist[1][17]=101; GranChemDist[1][18]=77; GranChemDist[1][19]=96;
|
|
|
|
GranChemDist[2][3]=23; GranChemDist[2][4]=139; GranChemDist[2][5]=46; GranChemDist[2][6]=42; GranChemDist[2][7]=80; GranChemDist[2][8]=68;
|
|
GranChemDist[2][9]=149; GranChemDist[2][10]=153; GranChemDist[2][11]=94; GranChemDist[2][12]=142; GranChemDist[2][13]=158; GranChemDist[2][14]=91;
|
|
GranChemDist[2][15]=46; GranChemDist[2][16]=65; GranChemDist[2][17]=174; GranChemDist[2][18]=143; GranChemDist[2][19]=133;
|
|
|
|
GranChemDist[3][4]=154; GranChemDist[3][5]=61; GranChemDist[3][6]=45; GranChemDist[3][7]=94; GranChemDist[3][8]=81;
|
|
GranChemDist[3][9]=168; GranChemDist[3][10]=172; GranChemDist[3][11]=101; GranChemDist[3][12]=160; GranChemDist[3][13]=177; GranChemDist[3][14]=108;
|
|
GranChemDist[3][15]=65; GranChemDist[3][16]=85; GranChemDist[3][17]=181; GranChemDist[3][18]=160; GranChemDist[3][19]=152;
|
|
|
|
GranChemDist[4][5]=154; GranChemDist[4][6]=170; GranChemDist[4][7]=159; GranChemDist[4][8]=174;
|
|
GranChemDist[4][9]=198; GranChemDist[4][10]=198; GranChemDist[4][11]=202; GranChemDist[4][12]=196; GranChemDist[4][13]=205; GranChemDist[4][14]=169;
|
|
GranChemDist[4][15]=112; GranChemDist[4][16]=149; GranChemDist[4][17]=215; GranChemDist[4][18]=194; GranChemDist[4][19]=192;
|
|
|
|
GranChemDist[5][6]=29; GranChemDist[5][7]=87; GranChemDist[5][8]=24;
|
|
GranChemDist[5][9]=109; GranChemDist[5][10]=113; GranChemDist[5][11]=53; GranChemDist[5][12]=101; GranChemDist[5][13]=116; GranChemDist[5][14]=76;
|
|
GranChemDist[5][15]=68; GranChemDist[5][16]=42; GranChemDist[5][17]=130; GranChemDist[5][18]=99; GranChemDist[5][19]=96;
|
|
|
|
GranChemDist[6][7]=98; GranChemDist[6][8]=40;
|
|
GranChemDist[6][9]=134; GranChemDist[6][10]=138; GranChemDist[6][11]=56; GranChemDist[6][12]=126; GranChemDist[6][13]=140; GranChemDist[6][14]=93;
|
|
GranChemDist[6][15]=80; GranChemDist[6][16]=65; GranChemDist[6][17]=152; GranChemDist[6][18]=122; GranChemDist[6][19]=121;
|
|
|
|
GranChemDist[7][8]=89;
|
|
GranChemDist[7][9]=135; GranChemDist[7][10]=138; GranChemDist[7][11]=127; GranChemDist[7][12]=127; GranChemDist[7][13]=153; GranChemDist[7][14]=42;
|
|
GranChemDist[7][15]=56; GranChemDist[7][16]=59; GranChemDist[7][17]=184; GranChemDist[7][18]=147; GranChemDist[7][19]=109;
|
|
|
|
GranChemDist[8][9]=94; GranChemDist[8][10]=99; GranChemDist[8][11]=32; GranChemDist[8][12]=87; GranChemDist[8][13]=100; GranChemDist[8][14]=77;
|
|
GranChemDist[8][15]=89; GranChemDist[8][16]=47; GranChemDist[8][17]=115; GranChemDist[8][18]=83; GranChemDist[8][19]=84;
|
|
|
|
GranChemDist[9][10]=5; GranChemDist[9][11]=102; GranChemDist[9][12]=10; GranChemDist[9][13]=21; GranChemDist[9][14]=95;
|
|
GranChemDist[9][15]=142; GranChemDist[9][16]=89; GranChemDist[9][17]=61; GranChemDist[9][18]=33; GranChemDist[9][19]=29;
|
|
|
|
GranChemDist[10][11]=107; GranChemDist[10][12]=15; GranChemDist[10][13]=22; GranChemDist[10][14]=98;
|
|
GranChemDist[10][15]=145; GranChemDist[10][16]=92; GranChemDist[10][17]=61; GranChemDist[10][18]=36; GranChemDist[10][19]=32;
|
|
|
|
GranChemDist[11][12]=95; GranChemDist[11][13]=102; GranChemDist[11][14]=103;
|
|
GranChemDist[11][15]=121; GranChemDist[11][16]=78; GranChemDist[11][17]=110; GranChemDist[11][18]=85; GranChemDist[11][19]=97;
|
|
|
|
GranChemDist[12][13]=28; GranChemDist[12][14]=87;
|
|
GranChemDist[12][15]=135; GranChemDist[12][16]=81; GranChemDist[12][17]=67; GranChemDist[12][18]=36; GranChemDist[12][19]=21;
|
|
|
|
GranChemDist[13][14]=114;
|
|
GranChemDist[13][15]=155; GranChemDist[13][16]=103; GranChemDist[13][17]=40; GranChemDist[13][18]=22; GranChemDist[13][19]=50;
|
|
|
|
GranChemDist[14][15]=74; GranChemDist[14][16]=38; GranChemDist[14][17]=147; GranChemDist[14][18]=110; GranChemDist[14][19]=68;
|
|
|
|
GranChemDist[15][16]=58; GranChemDist[15][17]=177; GranChemDist[15][18]=144; GranChemDist[15][19]=124;
|
|
|
|
GranChemDist[16][17]=128; GranChemDist[16][18]=92; GranChemDist[16][19]=69;
|
|
|
|
GranChemDist[17][18]=37; GranChemDist[17][19]=88;
|
|
|
|
GranChemDist[18][19]=55;
|
|
|
|
|
|
GranPolarityTable[0]=8.1 ; //A
|
|
GranPolarityTable[1]=10.5 ; //R
|
|
GranPolarityTable[2]=11.6 ; //N
|
|
GranPolarityTable[3]=13.0 ; //D
|
|
GranPolarityTable[4]=5.5 ; //C
|
|
GranPolarityTable[5]=10.5 ; //Q
|
|
GranPolarityTable[6]=12.3 ; //E
|
|
GranPolarityTable[7]=9.0 ; //G
|
|
GranPolarityTable[8]=10.4 ; //H
|
|
GranPolarityTable[9]=5.2 ; //I
|
|
GranPolarityTable[10]=4.9 ; //L
|
|
GranPolarityTable[11]=11.3; //K
|
|
GranPolarityTable[12]=5.7 ; //M
|
|
GranPolarityTable[13]=5.2 ; //F
|
|
GranPolarityTable[14]=8.0 ; //P
|
|
GranPolarityTable[15]=9.2 ; //S
|
|
GranPolarityTable[16]=8.6 ; //T
|
|
GranPolarityTable[17]=5.4 ; //W
|
|
GranPolarityTable[18]=6.2 ; //Y
|
|
GranPolarityTable[19]=5.9 ; //V
|
|
|
|
/*
|
|
GranVolumeTable[0]=8.1 ; //A
|
|
GranVolumeTable[1]=10.5 ; //R
|
|
GranVolumeTable[2]=11.6 ; //N
|
|
GranVolumeTable[3]=13.0 ; //D
|
|
GranVolumeTable[4]=5.5 ; //C
|
|
GranVolumeTable[5]=10.5 ; //Q
|
|
GranVolumeTable[6]=12.3 ; //E
|
|
GranVolumeTable[7]=9.0 ; //G
|
|
GranVolumeTable[8]=10.4 ; //H
|
|
GranVolumeTable[9]=5.2 ; //I
|
|
GranVolumeTable[10]=4.9 ; //L
|
|
GranVolumeTable[11]=11.3; //K
|
|
GranVolumeTable[12]=5.7 ; //M
|
|
GranVolumeTable[13]=5.2 ; //F
|
|
GranVolumeTable[14]=8.0 ; //P
|
|
GranVolumeTable[15]=9.2 ; //S
|
|
GranVolumeTable[16]=8.6 ; //T
|
|
GranVolumeTable[17]=5.4 ; //W
|
|
GranVolumeTable[18]=6.2 ; //Y
|
|
GranVolumeTable[19]=5.9 ; //V
|
|
*/
|
|
}
|
|
|
|
MDOUBLE granthamChemicalDistances::getHughesHydrophobicityDistance(
|
|
const int aa1,const int aa2) const {
|
|
int v1=0;
|
|
int v2=0;
|
|
if ((aa1==0) || (aa1==4) || (aa1==13) || //acf
|
|
(aa1==7) || (aa1==8) || (aa1==9) || //ghi
|
|
(aa1==11) || (aa1==10) || (aa1==12) || //klm
|
|
(aa1==16) || (aa1==19) || (aa1==17)
|
|
|| (aa1==18)) //tvwy
|
|
v1=1;
|
|
if ((aa2==0) || (aa2==4) || (aa2==13) || //acf
|
|
(aa2==7) || (aa2==8) || (aa2==9) || //ghi
|
|
(aa2==11) || (aa2==10) || (aa2==12) || //klm
|
|
(aa2==16) || (aa2==19) || (aa2==17)
|
|
|| (aa2==18)) //tvwy
|
|
v2=1;
|
|
|
|
if (v1!=v2) return 1;
|
|
return 0;
|
|
}
|
|
|
|
MDOUBLE granthamChemicalDistances::getHughesPolarityDistance(
|
|
const int aa1,const int aa2) const {
|
|
int v1=0;
|
|
int v2=0;
|
|
if ((aa1==4) || (aa1==3) || (aa1==6) || //cde
|
|
(aa1==8) || (aa1==11) || (aa1==2) || //hkn
|
|
(aa1==5) || (aa1==1) || (aa1==15) || //qrs
|
|
(aa1==16) || (aa1==17) || (aa1==18)) //tyw
|
|
v1=1;
|
|
if ((aa2==4) || (aa2==3) || (aa2==6) || //cde
|
|
(aa2==8) || (aa2==11) || (aa2==2) || //hkn
|
|
(aa2==5) || (aa2==1) || (aa2==15) || //qrs
|
|
(aa2==16) || (aa2==17) || (aa2==18)) //tyw
|
|
v2=1;
|
|
|
|
if (v1!=v2) return 1;
|
|
return 0;
|
|
}
|
|
MDOUBLE granthamChemicalDistances::getHughesChargeDistance(
|
|
const int aa1,const int aa2) const {
|
|
int v1=0;
|
|
int v2=0;
|
|
if ((aa1==8) || (aa1==11) || (aa1==1)) v1=1;
|
|
if ( (aa1==3) || (aa1==6)) v1=2;
|
|
else v1=3;
|
|
|
|
if ((aa2==8) || (aa2==11) || (aa2==1)) v2=1;
|
|
if ( (aa2==3) || (aa2==6)) v2=2;
|
|
else v2=3;
|
|
|
|
if (v1!=v2) return 1;
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
MDOUBLE granthamChemicalDistances::getGranthamDistance(const int aa1, const int aa2) const {
|
|
if (aa1>aa2) return GranChemDist[aa2][aa1] ;
|
|
else return GranChemDist[aa1][aa2];
|
|
}
|
|
|
|
MDOUBLE granthamChemicalDistances::getGranthamPolarityDistance(const int aa1,const int aa2) const{
|
|
return fabs(GranPolarityTable[aa1]-GranPolarityTable[aa2]);
|
|
}
|
|
|
|
MDOUBLE granthamChemicalDistances::getGranthamPolarity(const int aa1) const{
|
|
return GranPolarityTable[aa1];
|
|
}
|
|
|
|
|
|
|
|
|