conversiontables.cpp

来自「MS-Clustering is designed to rapidly clu」· C++ 代码 · 共 99 行

CPP
99
字号
#include "ConversionTables.h"


/*************************************************************
// initializes the tables with values for the 
// ordinary amino acids (unmodified).
**************************************************************/
void ConversionTables::init_for_standard_aas()
{
	int i;

	int max_char = 0xFF;

	
	char2aa.clear();
	char2mass.clear();
	aa2mass.clear();
	aa2label.clear();
	aa_positions.clear();
	
	char2aa.resize(max_char); 
	char2mass.resize(max_char);

    for (i=0; i<max_char; i++)
    {
        char2aa[i]=-999999;
        char2mass[i]=-999999;
    }

	aa2mass.resize(Val+1);
	aa2label.resize(Val+1);
	aa2char.resize(Val+1);

	aa_positions.resize(Val+1,0);

	org_aa.resize(Val+1);
	for (i=0; i<=Val; i++)
		org_aa[i]=i;

//	char2aa['^']=N_TERM; aa2char[N_TERM]='^'; char2mass['^']=0.0; aa2mass[N_TERM]=0.0;
//	char2aa['$']=C_TERM; aa2char[C_TERM]='$'; char2mass['$']=0.0; aa2mass[C_TERM]=0.0;
	char2aa['_']=Gap;  aa2char[Gap]='_';  char2mass['_']= 9999.999;   aa2mass[Gap]=9999.999;
	char2aa['X']=Xle;  aa2char[Xle]='X';  char2mass['X']= 113.08406;  aa2mass[Xle]= 113.08406;  
    char2aa['A']=Ala;  aa2char[Ala]='A';  char2mass['A']=  71.03711;  aa2mass[Ala]=  71.03711;
    char2aa['R']=Arg;  aa2char[Arg]='R';  char2mass['R']= 156.10111;  aa2mass[Arg]= 156.10111;
    char2aa['N']=Asn;  aa2char[Asn]='N';  char2mass['N']= 114.04293;  aa2mass[Asn]= 114.04293; 
    char2aa['D']=Asp;  aa2char[Asp]='D';  char2mass['D']= 115.02694;  aa2mass[Asp]= 115.02694;
    char2aa['C']=Cys;  aa2char[Cys]='C';  char2mass['C']= 103.00919;  aa2mass[Cys]= 103.00919;
    char2aa['Q']=Gln;  aa2char[Gln]='Q';  char2mass['Q']= 128.05858;  aa2mass[Gln]= 128.05858;
    char2aa['E']=Glu;  aa2char[Glu]='E';  char2mass['E']= 129.04259;  aa2mass[Glu]= 129.04259;
    char2aa['G']=Gly;  aa2char[Gly]='G';  char2mass['G']=  57.02146;  aa2mass[Gly]=  57.02146;
    char2aa['H']=His;  aa2char[His]='H';  char2mass['H']= 137.05891;  aa2mass[His]= 137.05891;
    char2aa['I']=Ile;  aa2char[Ile]='I';  char2mass['I']= 113.08406;  aa2mass[Ile]= 113.08406;
    char2aa['L']=Leu;  aa2char[Leu]='L';  char2mass['L']= 113.08406;  aa2mass[Leu]= 113.08406;
    char2aa['K']=Lys;  aa2char[Lys]='K';  char2mass['K']= 128.09496;  aa2mass[Lys]= 128.09496;
    char2aa['M']=Met;  aa2char[Met]='M';  char2mass['M']= 131.04049;  aa2mass[Met]= 131.04049;
    char2aa['F']=Phe;  aa2char[Phe]='F';  char2mass['F']= 147.06841;  aa2mass[Phe]= 147.06841;
    char2aa['P']=Pro;  aa2char[Pro]='P';  char2mass['P']=  97.05276;  aa2mass[Pro]=  97.05276;
    char2aa['S']=Ser;  aa2char[Ser]='S';  char2mass['S']=  87.03203;  aa2mass[Ser]=  87.03203;
    char2aa['T']=Thr;  aa2char[Thr]='T';  char2mass['T']= 101.04768;  aa2mass[Thr]= 101.04768;
    char2aa['W']=Trp;  aa2char[Trp]='W';  char2mass['W']= 186.07931;  aa2mass[Trp]= 186.07931;
    char2aa['Y']=Tyr;  aa2char[Tyr]='Y';  char2mass['Y']= 163.06333;  aa2mass[Tyr]= 163.06333;
    char2aa['V']=Val;  aa2char[Val]='V';  char2mass['V']=  99.06841;  aa2mass[Val]=  99.06841;
    
    // chose to make B=D so
    char2aa['B']=Asp;                     char2mass['B']= 115.088;

	for (i=Gap; i<=Val; i++)
		aa2label[i]=aa2char[i];
}

void ConversionTables::add_optional_PTM_terminal_aa(double delta, int position, 
													const string& ptm_label)
{
	if (position != -1 && position != 1)
	{
		cout << "Error: terminal PTMs must have position +1 or -1!" << endl;
		exit(1);
	}

	int aa;
	for (aa=Ala; aa<=Val; aa++)
	{
		org_aa.push_back(aa);

		aa2mass.push_back(aa2mass[aa]+delta);
		aa_positions.push_back(position);

		// make label
		string aa_label = aa2char[aa] + ptm_label;

		aa_label[0] = aa2char[aa];
		aa2label.push_back(aa_label);
	}
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?