top of page

5. Desarrollar una función de parsing de ficheros PDB (que denominaremos GetPDB) que permita representar adecuadamente los datos estructurales relevantes de una proteína en nuestro entorno de programación. Dicha función deberá ser capaz de leer los datos desde un fichero pdb y almacenarlos en una estructura matricial (cuyo tipo denominaremos TPDB) integrada por registros (de tipo TAtomPDB) que contendrán campos relativos a la identificación de cada átomo, residuo y subunidad a la que pertenece, coordenadas cristalográficas (a la que asignaremos un tipo TPunto), etc. La función se empleará en las sucesivas aplicaciones para interaccionar con los ficheros de estructura. 

La función CargarProteina que se encuentra contenida en librería biotools es capaz de leer un fichero en formato PDB y extraer los datos de interés del mismo para introducirlos en una estructura de datos manejable que permita llevar a cabo los objetivos de la asignatura. Dicha  función y estructura TproteinPDB, ya fue explicada en el apartado donde se muestra el contenido de la librería pero en esta actividad explicaremos con más detalle esa función.

 

A la función se le llama en el entorno Lázarus/Pascal de la siguiente manera: 

function CargarProteina(var p:TproteinPDB), 

donde hay que introducirle un variable hacia por referencia de tipo TproteinPDB, que será la estructura en la que se tendrá organizada todos los datos de importancia de la proteína y que un archivo PDB puede aportar. 

Los datos se extraen de las líneas del PDB y se incorporan a esta nueva estructura de datos gracias principalmente a las siguientes funciones de Pascal: 

  • copy. Permite copiar una subcadena a partir de una cadena de caracteres o string.

  • trim. Esta elimina los espacios en blanco de una cadena.

  • strtoint y strtofloat. Estas dos funciones permiten convertir de tipo cadena a tipo numérico, entero (integer) o real (real). De esta manera podemos tomar datos numéricos de las lineas del PDB que se incorporan a un TStrings dentro de la función

El funcionamiento del programa, el cual solo tiene una estrada y es una variable de tipo TProteinPDB pasada por referencia, es el siguiente.

Primero tenemos que indicar las variables internas que vamos a utilizar, las cuales serán un dial que será un objeto de tipo TOpenDialog, que nos permitirá ejecutar un buscar de archivos y seleccionar el archivo en formato PDB con el que queramos trabajar; un lineas de tipo TStrings que permitirá en él cargar el fichero de texto elegido con el buscador y el resultado de la función, que será una variable booleana que será true si la función ha funcionado correctamente y a creado y guardado correctamente toda la información en la estructura TProteinPDB.

 

Una vez que hemos definido las variables se inicia el programa creando el objeto TOpenDialog mediante un .Create( ) que necesita un “Owner” que en este caso será Nil. También hay que crear el lineas para que pueda almacenar los strings del PDB mediante un TStringList.Create. Ya creadas si se ejecuta el buscador de archivos en lineas se cargará el fichero que ha elegido el usuario. 

Tras ello en este programa se rellenará la estructura TproteinPDB gracias a otra función creada en la librería biotools que se denomina CrearTproteinPDB (lineas:Tstrings), que recibe como entrada el Tstrings creado anteriormente y que contiene las lineas del archivo PDB.

 

Esta función va a recorrer cada una de las lineas del archivo haciendo uso de un bucle for y va a copiar usando las funciones strtofloat/strtoint, trim y copy para rellenar los campos de esta estructura ya explicada en el apartado biotools de esta web.
 

© 2019 by Alberto Manuel Parra Pérez

bottom of page