Programma in C++ "Sintesi di una proteina da DNA assegnato"

/*
  Name:
  Copyright: pcosoftware
  Author: Paolo Coscia
  Date: 17/11/10 10.23
  Description: Sintesi di una proteina da un DNA assegnato
*/

 
 
 #include <stdio.h>
 #include <time.h>
 #include <fstream>
# include <iostream>
# include <stdlib.h>
# include <string.h>
# include <cstring>
using namespace std;

int main () {
      int i, j, k;
      char dna[25], mrna[25];
      string codice[66][4], prot[66][4];
      char quit, base; 
      codice[1][1]="UUU"; codice[1][2]="Phe"; codice[1][3]="C9H11NO2";
      codice[2][1]="UUC"; codice[2][2]="Phe"; codice[2][3]="C9H11NO2";
      codice[3][1]="UUA"; codice[3][2]="Leu"; codice[3][3]="C6H13NO2";
      codice[4][1]="UUG"; codice[4][2]="Leu"; codice[4][3]="C6H13NO2";
      codice[5][1]="UCU"; codice[5][2]="Ser"; codice[5][3]="C3H7NO3";
      codice[6][1]="UCC"; codice[6][2]="Ser"; codice[6][3]="C3H7NO3";
      codice[7][1]="UCA"; codice[7][2]="Ser"; codice[7][3]="C3H7NO3";
      codice[8][1]="UCG"; codice[8][2]="Ser"; codice[8][3]="C3H7NO3";
      codice[9][1]="UAU"; codice[9][2]="Tyr"; codice[9][3]="C9H11NO3";
      codice[10][1]="UAC"; codice[10][2]="Tyr"; codice[10][3]="C9H11NO3";
      codice[11][1]="UAA"; codice[11][2]="Stop"; codice[11][3]="Stop";
      codice[12][1]="UAG"; codice[12][2]="Stop"; codice[12][3]="Stop";
      codice[13][1]="UGU"; codice[13][2]="Cys";  codice[13][3]="C3H7NO2S";
      codice[14][1]="UGC"; codice[14][2]="Cys";  codice[14][3]="C3H7NO2S";
      codice[15][1]="UGA"; codice[15][2]="Stop"; codice[15][3]="Stop";
      codice[16][1]="UGG"; codice[16][2]="Tpr";  codice[16][3]="C11H12N2O2";
      codice[17][1]="CUC"; codice[17][2]="Leu";  codice[17][3]="C6H13NO2";
      codice[18][1]="CUU"; codice[18][2]="Leu";  codice[18][3]="C6H13NO2";
      codice[19][1]="CUA"; codice[19][2]="Leu";  codice[19][3]="C6H13NO2";
      codice[20][1]="CUG"; codice[20][2]="Leu";  codice[20][3]="C6H13NO2";
      codice[21][1]="CCU"; codice[21][2]="Pro";  codice[21][3]="C5H9NO2";
      codice[22][1]="CCC"; codice[22][2]="Pro";  codice[22][3]="C5H9NO2";
      codice[23][1]="CCA"; codice[23][2]="Pro";  codice[23][3]="C5H9NO2";
      codice[24][1]="CCG"; codice[24][2]="Pro";  codice[24][3]="C5H9NO2";
      codice[25][1]="CAU"; codice[25][2]="His";  codice[25][3]="C6H9N3O2";
      codice[26][1]="CAC"; codice[26][2]="His";  codice[26][3]="C6H9N3O2";
      codice[27][1]="CAA"; codice[27][2]="Gln";  codice[27][3]="C5H10N2O3";
      codice[28][1]="CAG"; codice[28][2]="Gln";  codice[28][3]="C5H10N2O3";
      codice[29][1]="CGU"; codice[29][2]="Arg";  codice[29][3]="C6H14N4O2";
      codice[30][1]="CGC"; codice[30][2]="Arg";  codice[30][3]="C6H14N4O2";
      codice[31][1]="CGA"; codice[31][2]="Arg";  codice[31][3]="C6H14N4O2";
      codice[32][1]="CGG"; codice[32][2]="Arg";  codice[32][3]="C6H14N4O2";
      codice[33][1]="AUU"; codice[33][2]="Ile";  codice[33][3]="C6H13NO2";
      codice[34][1]="AUC"; codice[34][2]="Ile";  codice[34][3]="C6H13NO2";
      codice[35][1]="AUA"; codice[35][2]="Ile";  codice[35][3]="C6H13NO2";
      codice[36][1]="AUG"; codice[36][2]="Met";  codice[36][3]="C5H11NO2S";
      codice[37][1]="ACU"; codice[37][2]="Thr";  codice[37][3]="C4H9NO3";
      codice[38][1]="ACC"; codice[38][2]="Thr";  codice[38][3]="C4H9NO3";
      codice[39][1]="ACA"; codice[39][2]="Thr";  codice[39][3]="C4H9NO3";
      codice[40][1]="ACG"; codice[40][2]="Thr";  codice[40][3]="C4H9NO3";
      codice[41][1]="AAU"; codice[41][2]="Asn";  codice[41][3]="C4H8N2O3";
      codice[42][1]="AAC"; codice[42][2]="Asn";  codice[42][3]="C4H8N2O3";
      codice[43][1]="AAA"; codice[43][2]="Lys";  codice[43][3]="C6H14N2O2";
      codice[44][1]="AAG"; codice[44][2]="Lys";  codice[44][3]="C6H14N2O2";
      codice[45][1]="AGU"; codice[45][2]="Ser";  codice[45][3]="C3H7NO3";
      codice[46][1]="AGC"; codice[46][2]="Ser";  codice[46][3]="C3H7NO3";
      codice[47][1]="AGA"; codice[47][2]="Arg";  codice[47][3]="C6H14N4O2";
      codice[48][1]="AGG"; codice[48][2]="Arg";  codice[48][3]="C6H14N4O2";
      codice[49][1]="GUU"; codice[49][2]="Val";  codice[49][3]="C5H11NO2";
      codice[50][1]="GUC"; codice[50][2]="Val";  codice[50][3]="C5H11NO2";
      codice[51][1]="GUA"; codice[51][2]="Val";  codice[51][3]="C5H11NO2";
      codice[52][1]="GUG"; codice[52][2]="Val";  codice[52][3]="C5H11NO2";
      codice[53][1]="GCU"; codice[53][2]="Ala";  codice[53][3]="C3H7NO2";
      codice[54][1]="GCC"; codice[54][2]="Ala";  codice[54][3]="C3H7NO2";
      codice[55][1]="GCA"; codice[55][2]="Ala";  codice[55][3]="C3H7NO2";
      codice[56][1]="GCG"; codice[56][2]="Ala";  codice[56][3]="C3H7NO2";
      codice[57][1]="GAU"; codice[57][2]="Asp";  codice[57][3]="C4H7NO4";
      codice[58][1]="GAC"; codice[58][2]="Asp";  codice[58][3]="C4H7NO4";
      codice[59][1]="GAA"; codice[59][2]="Glu";  codice[59][3]="C5H9NO4";
      codice[60][1]="GAG"; codice[60][2]="Glu";  codice[60][3]="C5H9NO4";
      codice[61][1]="GGU"; codice[61][2]="Gly";  codice[61][3]="C2H5NO2";
      codice[62][1]="GGC"; codice[62][2]="Gly";  codice[62][3]="C2H5NO2";
      codice[63][1]="GGA"; codice[63][2]="Gly";  codice[63][3]="C2H5NO2";
      codice[64][1]="GGG"; codice[64][2]="Gly";  codice[64][3]="C2H5NO2";
      cout << "Caricamento del filamento del DNA " << endl << endl <<"Codone di Start ---> TAC " << endl;
      cout << "Codoni di Stop ----> ATT, ATC, ACT " << endl << endl;
      cout << "Le basi devono essere scritte in lettere Maiuscole " << endl << endl;
      for(i = 1; i <= 24; i++)
      {
            cin >> base;
            dna[i] = base;
           
      }
      system("cls");
      cout << endl;
      cout << endl <<"Filamento di DNA inserito " << endl << endl;
      cout << "DNA -------------> ";
      for(i = 1; i <= 24; i++)
      {
         cout  << dna[i] << " ";
      }  
       cout << endl << endl;
       for(i = 1; i <= 24; i++)
      {
        if (dna[i]=='A')
            {
              mrna[i]='U';
            }
        if (dna[i]=='T')
            {
               mrna[i]='A';
            }
        if (dna[i]=='G')
            {
               mrna[i]='C';
            }
        if (dna[i]=='C')
            {
               mrna[i]='G';
            }
       }
       cout << endl << "Filamento di mRNA" << endl << endl;
       cout << "mRNA ------------> ";
        for(i = 1; i <= 24; i++)
      {
         cout  << mrna[i] << " ";
      } 
     
      cout << endl << endl;
      cout << "Codoni ----------> ";
      k=1;
      for (j=1; j<=24; j=j+3)    
      {
      for(i=j; i<=j+2; i++)
      {
       prot[k][1]=prot[k][1]+mrna[i];  
      }
      cout << prot[k][1] << " ";
      k=k+1;
      prot[k][1]="";
      }
      
      for (j=1; j<=8; j++)
      {
  
       for (i=1; i<=64; i++)
       {    
          if (codice[i][1]==prot[j][1])
           {
             prot[j][2]=codice[i][2];
             prot[j][3]=codice[i][3];
           }
         }
      
       }
       cout << endl << endl;
       cout << "Proteina --------> Start+";
       for (i=1; i<=8; i++)
      {
       cout << prot[i][2] << "+";
      }    
       cout << "Stop";
       cout << endl << endl;
       cout << "Formula brutta --> Start+ ";
       for (i=1; i<=8; i++)
      {
       cout << prot[i][3] << " + ";
      }    
       cout << "Stop";
       cout << endl << endl << endl << endl;
       system("pause");
       return 0;
  
   }

 Output del programma

 

Listato del programma scritto in python

#usr/bin/python
# Filename: dna.py

import sys

codice = [0] * 65
dna = [0] * 25
mrna = [0] * 25
prot = [''] * 65
for i in range(len(prot)):
   prot[i] = [''] * 4
for i in range(len(codice)):
    codice[i] = [0] * 4
codice[1][1]="UUU"
codice[1][2]="Phe"
codice[1][3]="C9H11NO2"
codice[2][1]="UUC"
codice[2][2]="Phe"
codice[2][3]="C9H11NO2"
codice[3][1]="UUA"
codice[3][2]="Leu"
codice[3][3]="C6H13NO2"
codice[4][1]="UUG"
codice[4][2]="Leu"
codice[4][3]="C6H13NO2"
codice[5][1]="UCU"
codice[5][2]="Ser"
codice[5][3]="C3H7NO3"
codice[6][1]="UCC"
codice[6][2]="Ser"
codice[6][3]="C3H7NO3"
codice[7][1]="UCA"
codice[7][2]="Ser"
codice[7][3]="C3H7NO3"
codice[8][1]="UCG"
codice[8][2]="Ser"
codice[8][3]="C3H7NO3"
codice[9][1]="UAU"
codice[9][2]="Tyr"
codice[9][3]="C9H11NO3"
codice[10][1]="UAC"
codice[10][2]="Tyr"
codice[10][3]="C9H11NO3"
codice[11][1]="UAA"
codice[11][2]="Stop"
codice[11][3]="Stop"
codice[12][1]="UAG"
codice[12][2]="Stop"
codice[12][3]="Stop"
codice[13][1]="UGU"
codice[13][2]="Cys"
codice[13][3]="C3H7NO2S"
codice[14][1]="UGC"
codice[14][2]="Cys"
codice[14][3]="C3H7NO2S"
codice[15][1]="UGA"
codice[15][2]="Stop"
codice[15][3]="Stop"
codice[16][1]="UGG"
codice[16][2]="Tpr"
codice[16][3]="C11H12N2O2"
codice[17][1]="CUC"
codice[17][2]="Leu"
codice[17][3]="C6H13NO2"
codice[18][1]="CUU"
codice[18][2]="Leu"
codice[18][3]="C6H13NO2"
codice[19][1]="CUA"
codice[19][2]="Leu"
codice[19][3]="C6H13NO2"
codice[20][1]="CUG"
codice[20][2]="Leu"
codice[20][3]="C6H13NO2"
codice[21][1]="CCU"
codice[21][2]="Pro"
codice[21][3]="C5H9NO2"
codice[22][1]="CCC"
codice[22][2]="Pro"
codice[22][3]="C5H9NO2"
codice[23][1]="CCA"
codice[23][2]="Pro"
codice[23][3]="C5H9NO2"
codice[24][1]="CCG"
codice[24][2]="Pro"
codice[24][3]="C5H9NO2"
codice[25][1]="CAU"
codice[25][2]="His"
codice[25][3]="C6H9N3O2"
codice[26][1]="CAC"
codice[26][2]="His"
codice[26][3]="C6H9N3O2"
codice[27][1]="CAA"
codice[27][2]="Gln"
codice[27][3]="C5H10N2O3"
codice[28][1]="CAG"
codice[28][2]="Gln"
codice[28][3]="C5H10N2O3"
codice[29][1]="CGU"
codice[29][2]="Arg"
codice[29][3]="C6H14N4O2"
codice[30][1]="CGC"
codice[30][2]="Arg"
codice[30][3]="C6H14N4O2"
codice[31][1]="CGA"
codice[31][2]="Arg"
codice[31][3]="C6H14N4O2"
codice[32][1]="CGG"
codice[32][2]="Arg"
codice[32][3]="C6H14N4O2"
codice[33][1]="AUU"
codice[33][2]="Ile"
codice[33][3]="C6H13NO2"
codice[34][1]="AUC"
codice[34][2]="Ile"
codice[34][3]="C6H13NO2"
codice[35][1]="AUA"
codice[35][2]="Ile"
codice[35][3]="C6H13NO2"
codice[36][1]="AUG"
codice[36][2]="Met"
codice[36][3]="C5H11NO2S"
codice[37][1]="ACU"
codice[37][2]="Thr"
codice[37][3]="C4H9NO3"
codice[38][1]="ACC"
codice[38][2]="Thr"
codice[38][3]="C4H9NO3"
codice[39][1]="ACA"
codice[39][2]="Thr"
codice[39][3]="C4H9NO3"
codice[40][1]="ACG"
codice[40][2]="Thr"
codice[40][3]="C4H9NO3"
codice[41][1]="AAU"
codice[41][2]="Asn"
codice[41][3]="C4H8N2O3"
codice[42][1]="AAC"
codice[42][2]="Asn"
codice[42][3]="C4H8N2O3"
codice[43][1]="AAA"
codice[43][2]="Lys"
codice[43][3]="C6H14N2O2"
codice[44][1]="AAG"
codice[44][2]="Lys"
codice[44][3]="C6H14N2O2"
codice[45][1]="AGU"
codice[45][2]="Ser"
codice[45][3]="C3H7NO3"
codice[46][1]="AGC"
codice[46][2]="Ser"
codice[46][3]="C3H7NO3"
codice[47][1]="AGA"
codice[47][2]="Arg"
codice[47][3]="C6H14N4O2"
codice[48][1]="AGG"
codice[48][2]="Arg"
codice[48][3]="C6H14N4O2"
codice[49][1]="GUU"
codice[49][2]="Val"
codice[49][3]="C5H11NO2"
codice[50][1]="GUC"
codice[50][2]="Val"
codice[50][3]="C5H11NO2"
codice[51][1]="GUA"
codice[51][2]="Val"
codice[51][3]="C5H11NO2"
codice[52][1]="GUG"
codice[52][2]="Val"
codice[52][3]="C5H11NO2"
codice[53][1]="GCU"
codice[53][2]="Ala"
codice[53][3]="C3H7NO2"
codice[54][1]="GCC"
codice[54][2]="Ala"
codice[54][3]="C3H7NO2"
codice[55][1]="GCA"
codice[55][2]="Ala"
codice[55][3]="C3H7NO2"
codice[56][1]="GCG"
codice[56][2]="Ala"
codice[56][3]="C3H7NO2"
codice[57][1]="GAU"
codice[57][2]="Asp"
codice[57][3]="C4H7NO4"
codice[58][1]="GAC"
codice[58][2]="Asp"
codice[58][3]="C4H7NO4"
codice[59][1]="GAA"
codice[59][2]="Glu"
codice[59][3]="C5H9NO4"
codice[60][1]="GAG"
codice[60][2]="Glu"
codice[60][3]="C5H9NO4"
codice[61][1]="GGU"
codice[61][2]="Gly"
codice[61][3]="C2H5NO2"
codice[62][1]="GGC"
codice[62][2]="Gly"
codice[62][3]="C2H5NO2"
codice[63][1]="GGA"
codice[63][2]="Gly"
codice[63][3]="C2H5NO2"
codice[64][1]="GGG"
codice[64][2]="Gly"
codice[64][3]="C2H5NO2"
print('Caricamento del filamento del DNA ')
print ()
print('Codone di Start ---> TAC ')
print ()
print ('Codoni di Stop ----> ATT, ATC, ACT ')
print()
print ('Le basi devono essere scritte in lettere Maiuscole ')
print ()
for i in range (1,25):
     print('base ',i)
     base=input(' inserisci la base ')
     dna[i] = base
print ()
print ('Filamento di DNA inserito ')
print ()
sys.stdout.write("%s" % 'DNA ----------------> ')
for i in range (1,25):
    sys.stdout.write("%s " % dna[i])
print ()
print ()
for i in range (1,25):
     if dna[i]=='A':
        mrna[i]='U'
     if dna[i]=='T':
        mrna[i]='A'
     if dna[i]=='G':
        mrna[i]='C'
     if dna[i]=='C':
        mrna[i]='G'

print ('Filamento di mRNA ')
print ()
sys.stdout.write("%s" % 'mRNA ---------------> ')
for i in range (1,25):
      sys.stdout.write("%s " % mrna[i])
print ()
print ()
sys.stdout.write("%s" % 'Codoni -------------> ')
k=1
j=1
for j in range (1,25,3):
    i=j
    while i<=j+2:
        prot[k][1]=prot[k][1]+mrna[i]
        i=i+1
    sys.stdout.write("%s " % (prot[k][1]))
    k=k+1
    prot[k][1]=''
for j in range(1,9):
    for i in range(1,65):
        if(codice[i][1]==prot[j][1]):
            prot[j][2]=codice[i][2]
            prot[j][3]=codice[i][3]
print ()
print ()
sys.stdout.write("%s" % 'Proteina -----------> Start + ')
for i in range (1,9):

    sys.stdout.write("%s" % (prot[i][2]))
    sys.stdout.write("%s" % ' + ')
sys.stdout.write("%s" % 'Stop')              
print ()
print ()
sys.stdout.write("%s" % 'Formula brutta -----> Start + ')

for i in range (1,9):
    sys.stdout.write("%s" % (prot[i][3]))
    sys.stdout.write("%s" % ' + ')
sys.stdout.write("%s" % 'Stop')
print ()
print ()

 

Output in Python