Major Study./Bioinformatics

Codon to Amino acid converter c++ source

sosal 2014. 7. 18. 10:44
반응형

/*

 * http://sosal.kr/

 * made by so_Sal

 */

 

 




Using codon (3 nucleic acid of DNA), it returns 1 Amino acids.
DNA 염기서열을 이용하여 최종 만들어질 Protein을 구하는 프로그램을 만들 때 구현해봤던 함수입니다.

parameter is string which consists of 3 char of base.

ex). AGC, TAT...

 

파라미터로 들어오는 input은 3개의 문자열입니다.

예) AGC, TAT

char translation(string input){

char RET;
switch(input[0]){
case 'A':
switch(input[1]){
case 'A'://AA
switch(input[2]){
case 'A':
case 'G':
RET='K';
break;
case 'C':
case 'T':
RET='N';
break;
}
break;
case 'C'://AC
switch(input[2]){
case 'A':
case 'G':
case 'C':
case 'T':
RET='T';
break;
}
break;
case 'G'://AG
switch(input[2]){
case 'A':
case 'G':
RET='R';
break;
case 'C':
case 'T':
RET='S';
break;
}
break;
case 'T'://AU
switch(input[2]){
case 'G':
RET='M';
break;
case 'A':
case 'C':
case 'T':
RET='I';
break;
}
}
/////////////////////
break;
case 'C':
switch(input[1]){
case 'A': //CA
;
switch(input[2]){
case 'A':
case 'G':
RET='Q';
break;
case 'C':
case 'T':
RET='H';
break;
}
break;
case 'C': //CC
switch(input[2]){
case 'A':
case 'C':
case 'G':
case 'T':
RET='P';
break;
}
break;
case 'G': //CG
switch(input[2]){
case 'A':
case 'C':
case 'G':
case 'T':
RET='R';
break;
}
break;
case 'T': //CU
switch(input[2]){
case 'A':
case 'C':
case 'G':
case 'T':
RET='L';
break;
}
}
break;
case 'G':
switch(input[1]){
case 'A': //GA
switch(input[2]){
case 'A':
case 'G':
RET='E';
break;
case 'C':
case 'T':
RET='D';
break;
}
break;
case 'G': //GG
switch(input[2]){
case 'A':
case 'G':
case 'C':
case 'T':
RET='G';
break;
}
break;
case 'C': //GC
switch(input[2]){
case 'A':
case 'G':
case 'C':
case 'T':
RET='A';
break;
}
break;
case 'T': //GU
switch(input[2]){
case 'A':
case 'G':
case 'C':
case 'T':
RET='V';
break;
}
break;
}
break;
case 'T':
switch(input[1]){
case 'A': //UA
switch(input[2]){
case 'A':
case 'G':
RET='0';
break;
case 'C':
case 'T':
RET='Y';
break;
}
break;
case 'G': //UG
switch(input[2]){
case 'A':
RET='0';
break;
case 'G':
RET='W';
break;
case 'C':
case 'T':
RET='C';
break;
}
break;
case 'C': //UC
switch(input[2]){
case 'A':
case 'G':
case 'C':
case 'T':
RET='S';
break;
}
break;
case 'T': //UU
switch(input[2]){
case 'A':
case 'G':
RET='L';
break;
case 'C':
case 'T':
RET='F';
break;
}
break;
}
}
return RET;
}