Identificación del formato de la proteína (ej 4)

El programa entregado al profesor como "Ejercicio4" es capaz de identificar entre los formatos EMBL, UniProt, GenPept, FASTA y PDB. 

El diagrama de flujo del funcionamiento de este programa se representa y explica a continuación:




  • El fichero de la proteína en cualquiera de los formatos anteriores se carga en el programa y se introduce en un memo.
  • Se utiliza un bucle para recorrer todas las líneas de este memo.
  • Mientras se recorren las líneas, se utiliza un algoritmo de comparación que busca cadenas de caracteres determinadas que se encuentran o en la primera línea del archivo o en la segunda línea. En concreto, las cadenas de caracteres utilizadas son:
    • Formato FASTA. El carácter '>' en la primera posición de la primera línea del memo.
    • Formato GENPEPT.  La cadena de caracteres 'LOCUS' en la primera posición de la primera línea del memo.
    • Formato PDB. La cadena de caracteres 'HEADER' en la primera posición de la primera línea del memo.
    • Formato EMBL. La cadena de caracteres 'ID' en la primera posición de la primera línea del memo. Como esta característica es compartida con el formato UNIPROT, se busca también la cadena de caracteres 'XX' en la primera posición de la segunda línea del memo.
    • Formato UNIPROT. La cadena de caracteres 'ID' en la primera posición de la primera línea del memo y la cadena de caracteres 'AC' en la primera posición de la segunda línea del memo. 

Una vez se ha determinado qué formato se ha cargado, el programa lleva a cabo la carga como un tipo TStringList de los aminoácidos que forman parte de la secuencia de la proteína y, en el caso de que sea necesario, convierte el código de tres letras en una única letra. En concreto, el programa es capaz de extraer la secuencia de aminoácidos de los formatos FASTA, PDB, UNIPROT y GENPEPT y representarlos en un segundo memo. No se ha desarrollado un algoritmo para extraer la secuencia de aminoácidos del formato EMBL porque ésta está en desuso. A continuación se explican las funciones desarrolladas para llevar esto a cabo, todas incluidas en la librería Biotools:

  • En el caso del formato FASTA, se emplea la función CargarFASTA que introduce todas las líneas del memo que no empiecen por el caracter '>', ya que éstas son las correspondientes a los aminoácidos.
  • Para el formato PDB, se emplea la función CargarAAPDB. El archivo se carga primero como un TPDB, gracias a la función CargarPDB (explicada en el ejercicio 5). A continuación, se realiza un recorrido de todos los residuos del TPDB y se extrae el nombre del aminoácido, en codigo de tres letras. Por último, se transforma al código de una letra. Para hacerlo más visual, en el memo se muestran 10 aminoácidos por línea. 
  • En el caso del formato UNIPROT se emplea la función CargarUNIPROT.  Lleva a cabo un recorrido de todo el memo hasta encontrar la línea que contiene la línea de caracteres 'SQ' y comienza a tomar las líneas que hay a continuación de esta línea, ya que son las correspondientes a los aminoácidos.
  • Para el formato GENPEPT se emplea la función CargarGENPEPT. Recorre el memo hasta encontrar la línea que contiene la línea de caracteres 'ORIGIN' y comienza a tomar las líneas que hay a continuación de esta línea ya que se corresponden a la secuencia de aminoácidos, excepto la última del memo. Además, se ha tenido en cuenta que estas lineas comienzan con números y espacios para no introducirlos.
Se ha comprobado que el programa funciona con todos los formatos. En la carpeta se adjunta la proteína adjudicada en los formatos GENPEPT, PDB y FASTA. No se ha encontrado en formato UNIPROT, de forma que se ha utilizado otra proteína en ese formato para realizar la comprobación, resultando la identificación también exitosa.

La secuencia de aminoácidos de la proteína encontrada en los tres formatos es la misma:

'GHMGSLNLDSIIGRLLEVQGSRPGKNVQLTENEIRGLCLKSREIFLSQPILLELEAPLKICGDIHGQYYDLLRLFEYGGFPPESNYLFLGDYVDRGKQSLETICLLLAYKIKYPENFFLLRGNHECASINRIYGFYDECKRRYNIKLWKTFTDCFNCLPIAAIVDEKIFCCHGGLSPDLQSMEQIRRIMRPTDVPDQGLLCDLLWSDPDKDVQGWGENDRGVSFTFGAEVVAKFLHKHDLDLICRAHQVVEDGYEFFAKRQLVTLFSAPNYCGEFDNAGAMMSVDETLMCSFQILKPADKNKGKYG'