BioInt
1.02.00
BioInt: An integrative biological object-oriented application framework and interpreter
|
00001 /**************************************************************************** 00002 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00003 The BioBhasha : A Programming Language for Biologist 00004 Version 1.0 (19th December 2001) 00005 Dr. Prasad, B.V.L.S. 00006 Contact: prasadbvls@helixgenomics.com 00007 Version 1.1 (23th January 2003) 00008 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00009 *****************************************************************************/ 00010 #ifndef BIOAMINOACID_H 00011 #define BIOAMINOACID_H 00012 00013 00014 using namespace std; 00015 #include <string> 00016 #include <map> 00017 #include <iostream> 00018 #include <cstdlib> 00019 #include <cstdio> 00020 00021 class BioAminoAcid 00022 { 00023 //static bool isInitialised; 00024 00025 string aminoAcidName_; 00026 string threeLetterCode_; 00027 char singleLetterCode_; 00028 int serialNumber_; 00029 float molWeight_; 00030 float dcVolume_; 00031 float accessibleArea_; 00032 float hydropathyIndex_; 00033 float hydrophobicity_; 00034 float hydrophilicity_; 00035 float helixCFPropensity_; // CF- ChouFasman 00036 float sheetCFPropensity_; // CF- ChouFasman 00037 float turnCFPropensity_; // CF- ChouFasman 00038 float positionProbability0_; 00039 float positionProbability1_; 00040 float positionProbability2_; 00041 float positionProbability3_; 00042 float pKaAminoAcidCarboxylate_; 00043 float pKaAminoAcidAmine_; 00044 float pKaAminoAcidSideChain_; 00045 int numberOfCarbons_; 00046 int numberOfHydrogens_; 00047 int numberOfNitrogens_; 00048 int numberOfOxygens_; 00049 int numberOfSulphurs_; 00050 float gxgSurfaceArea_; 00051 float averageAccessibleArea_; 00052 00053 /* char *singleLetterCode_; 00054 int *serialNumber_; 00055 float *molWeight_; 00056 float *dcVolume_; 00057 float *accessibleArea_; 00058 float *hydropathyIndex_; 00059 float *hydrophobicity_; 00060 float *hydrophilicity_; 00061 float *helixCFPropensity_; // CF- ChouFasman 00062 float *sheetCFPropensity_; // CF- ChouFasman 00063 float *turnCFPropensity_; // CF- ChouFasman 00064 float *positionProbability0_; 00065 float *positionProbability1_; 00066 float *positionProbability2_; 00067 float *positionProbability3_; 00068 float *pKaAminoAcidCarboxylate_; 00069 float *pKaAminoAcidAmine_; 00070 float *pKaAminoAcidSideChain_; 00071 int *numberOfCarbons_; 00072 int *numberOfHydrogens_; 00073 int *numberOfNitrogens_; 00074 int *numberOfOxygens_; 00075 int *numberOfSulphurs_; 00076 float *gxgSurfaceArea_; 00077 float *averageAccessibleArea_; 00078 */ 00079 friend bool operator >( const BioAminoAcid& , const BioAminoAcid&); 00080 friend bool operator <( const BioAminoAcid& , const BioAminoAcid&); 00081 friend bool operator ==( const BioAminoAcid& , const BioAminoAcid&); 00082 BioAminoAcid(){ } 00083 00084 public: 00085 ~BioAminoAcid(); 00086 BioAminoAcid(const string& aan, const int& sn, const char& slc, const string& tlc, 00087 const float& mw, const float& dcv,const float& aca,const float& hpi,const float& hpho,const float& hphi, 00088 const float& hcfp,const float& scfp,const float& tcfp,const float& pr0,const float& pr1, 00089 const float& pr2,const float& pr3,const float& pkc,const float& pkn, const float& pks, const int& nc, 00090 const int& nh,const int& nn, const int& no, const int& ns,const float& gxg,const float& avaca): 00091 aminoAcidName_(aan),singleLetterCode_(slc),threeLetterCode_(tlc), 00092 serialNumber_(sn),molWeight_(mw),dcVolume_(dcv), 00093 accessibleArea_(aca), hydropathyIndex_(hpi),hydrophobicity_(hpho), hydrophilicity_(hphi), helixCFPropensity_(hcfp), 00094 sheetCFPropensity_(scfp), turnCFPropensity_(tcfp),positionProbability0_(pr0), positionProbability1_(pr1), 00095 positionProbability2_(pr2),positionProbability3_(pr3), pKaAminoAcidCarboxylate_(pkc), pKaAminoAcidAmine_(pkn), 00096 pKaAminoAcidSideChain_(pks), numberOfCarbons_(nc), numberOfHydrogens_(nh), 00097 numberOfNitrogens_(nn), numberOfOxygens_(no), numberOfSulphurs_(ns), 00098 gxgSurfaceArea_(gxg),averageAccessibleArea_(avaca){} 00099 /* 00100 aminoAcidName_(new string(aan)),singleLetterCode_(new char(slc)),threeLetterCode_(new string(tlc)), 00101 serialNumber_(new int(sn)),molWeight_(new float(mw)),dcVolume_(new float(dcv)), 00102 accessibleArea_(new float(aca)), hydropathyIndex_(new float(hpi)),hydrophobicity_(new float(hpho)), hydrophilicity_(new float(hphi)), helixCFPropensity_(new float(hcfp)), 00103 sheetCFPropensity_(new float(scfp)), turnCFPropensity_(new float(tcfp)), 00104 positionProbability0_(new float(pr0)), positionProbability1_(new float(pr1)), 00105 positionProbability2_(new float(pr2)),positionProbability3_(new float(pr3)), pKaAminoAcidCarboxylate_(new float(pkc)), pKaAminoAcidAmine_(new float(pkn)), 00106 pKaAminoAcidSideChain_(new float(pks)), numberOfCarbons_(new int(nc)), numberOfHydrogens_(new int(nh)), 00107 numberOfNitrogens_(new int(nn)), numberOfOxygens_(new int(no)), numberOfSulphurs_(new int(ns)), 00108 gxgSurfaceArea_(new float(gxg)),averageAccessibleArea_(new float(avaca)){} 00109 */ 00110 char getSingleLetterCode() const { return singleLetterCode_; } 00111 string getThreeLetterCode() const { return threeLetterCode_; } 00112 int getSerialNumber() const { return serialNumber_; } 00113 float getMolecularWeight() const { return molWeight_; } 00114 string getAminoAcidName() const { return aminoAcidName_; } 00115 float getMolecularVolume() const { return dcVolume_; } 00116 00117 float getAccessibleSurfaceArea() const { return accessibleArea_; } 00118 00119 float getHydropathyIndex() const { return hydropathyIndex_; } 00120 float getHydrophobicity() const { return hydrophobicity_; } 00121 float getHydrophilicity() const { return hydrophilicity_; } 00122 float getCFHelixPropensity() const { return helixCFPropensity_; } 00123 float getCFSheetPropensity() const { return sheetCFPropensity_; } 00124 float getCFTurnPropensity() const { return turnCFPropensity_; } 00125 float getCFTurnPositionProbability(int position); 00126 00127 float getpKaCarboxylate() const { return pKaAminoAcidCarboxylate_; } 00128 float getpKaAmine() const { return pKaAminoAcidAmine_; } 00129 float getpKaSideChain() const { return pKaAminoAcidSideChain_; } 00130 00131 int getNumberOfCarbons() const { return numberOfCarbons_; } 00132 int getNumberOfHydrogens() const { return numberOfHydrogens_; } 00133 int getNumberOfNitrogens() const { return numberOfNitrogens_; } 00134 int getNumberOfOxygens() const { return numberOfOxygens_; } 00135 int getNumberOfSulphurs() const { return numberOfSulphurs_; } 00136 00137 float getGXGSurfaceArea() const { return gxgSurfaceArea_; } 00138 float getAverageAccessibleArea() const { return averageAccessibleArea_; } 00139 float getAverageBuriedArea() const { return gxgSurfaceArea_ - averageAccessibleArea_; } 00140 float getMeanFractionalAreaLoss() const { return getAverageBuriedArea()/(gxgSurfaceArea_); } 00141 00142 }; 00143 00144 00145 #endif 00146 // Amino acid volume in cubic Angstroms as given in "Protein Structure" 00147 // // // by Darby, N.J. and Creighton, T.E. (IRL Press, 1993) 00148 // 00149 // // Accessible surface areas in Angstroms squared by Miller, S., Janin, J., 00150 // // // Lesk, A.M., and Chothia, C. (1987) J.Mol.Biol., 196, 641 00151 // 00152 // // Hydrophilicity of side chains in kJ/mol by Radzicka, A., and Wolfenden, R. 00153 // // // (1988) Biochemistry, 27, 1664 00154 // 00155 // // Hydropathy index by Kyte, J., and Doolittle, R.F., (1982), J.Mol.Biol., 00156 // // // 157, 105-132 00157 // 00158 // // Hydrophobicity of side chain analogues in kJ/mol by Radzicka, A., 00159 // // // and Wolfenden, R. (1988) Biochemistry, 27, 1664 00160 // 00161 00162