Diferenciación de tipo de ficheros (Act 4)

La función DiferenciaFormato  está incluida en la librería biotools.pas que ha sido proporcionada al profesor.

En esta actividad se nos pedían dos cosas. La primera era realizar un diagrama de flujo que permitiese de forma cómoda diferenciar entre diferentes tipos de ficheros de estructura. Posteriormente debemos crear una función que sea capaz de discriminar entre estos tipos y a parte muestre la secuencia de aminoácidos en código de una letra proporcionado por cada uno de los ficheros que se le introduzcan.

Así lo primero que mostraremos será el diagrama de flujo realizado.


Aquí vemos una forma muy sencilla para distinguir informáticamente que tipo de fichero nos introduce el usuario en un determinado programa. Para ello nos basta con leer la primera o primeras líneas del texto ya que cada formato tiene algún símbolo o palabra clave  que podemos identificar y asociar el tipo correspondiente. Asi:

  • Formato Fasta: >
  • Formato Codata: "ENTRY"
  • Formato GDE: {
  • Formato Gene Bank: "LOCUS"
  • Formato PDB: "HEADER"
  • Formato EMBL: "ID" + "XX" (en segunda linea).
  • Formato UniProt: "ID" + "AC" (en segunda linea).

El código de la función para diferenciar el formato es el siguiente: 



Posteriormente se nos pedía que para 3 de estos formatos mostrásemos por pantalla la secuencia de aminoácidos en código de una letra. He escogido  el formato FASTA, el PDB, y el UniProt por ser unos de los más conocidos. Mi programa muestra en un segundo memo diferente solo la secuencia que nos pide para así mantener la totalidad de la información en el memo donde cargamos la proteína. El código para realizar esto fue algo más complejo de realizar ya que como cada uno de estos formatos es distinto se deben conocer las características de cada uno y analizar de donde podemos obtener la información que queremos.

El formato FASTA no es el más complejo ya que muestra una primera linea de información y seguidamente ya nos proporciona el listado con el código de una letra por lo que solo necesitábamos hacer un bucle hasta el final para la subunidad. Esto se identifica porque cuando comienza una nueva subunidad aparece de nuevo el símbolo >. Por ello con un while es relativamente fácil obtener el siguiente código


El siguiente formato que hemos elegido es el PDB, es con el que estamos más familiarizados y en el que hemos basado todo nuestro trabajo. Por ello vamos a hacer uso de nuestra estructura TPDB ya que ahí tenemos guardados todos los residuos con su ID de una letra. Solo necesitamos hacer un bucle for que recorra el arrray de TResiduo y muestre por pantalla cada vez el código de una letra.



En el caso del formato UniProt sabemos que a lo largo del fichero debe aparecer una linea que comienza por SQ y que en la siguiente es donde empieza el código de una letra. Al finalizar aparecen //, con esto ya tenemos para crear otro bucle que nos pinte solo esas filas.