Universidad del Valle de Guatemala Colegio Universitario Algoritmos y programación Sección 110 GRUPO 2 Proyecto #2 Proteínas Investigación Corta Amanda Amado 11260 Francisco Quiroa 10060 Juan Fernando Meza 10084 Elizabeth Quiroa 12196 Preguntas insustituibles: Meta: Se desea hacer un programa el cual tenga como “base de datos” una lista de aminoácido, con su referencia y peso respectivo. El programa debe de determinar el orden de los aminoácidos que constituyen una molécula de proteína en forma de cadena. El programa debe de ser capaz de leer secuencias de 20 números que representarán una cadena de aminoácidos que al juntarse forman una proteína. Se deberá escribir en forma de 0001020000011001000 Y el programa leerá en orden alfabético conforme a la lista de aminoácidos que se presenta. Salidas: El programa debe de regresar la lista de los aminoácidos con el nombre respectivo de referencia de la siguiente manera: LysGluMetAspSerGlu, esta lista es una proteína. El programa debe de recorrer listas y leer el peso molecular y la cantidad de moléculas que se tienen y devolver el peso molecular total de la proteína. Entradas: Las tres entradas del programa es la “base de datos” de los aminoácidos. Serán 3 listas, una con el nombre del aminoácido, otra con la referencia respectiva y el peso molecular de cada una. El archivo generara una secuencia de proteínas que tendrá 20 caracteres numéricos y estos 20 caracteres representaran una lista de aminoácidos en el orden alfabético de la lista. De esta lista, cada entero representara cuantas moléculas del aminoácido hay en la proteína. Condiciones: Se condiciona con try para probar la función de “calculo” que es la que asocia la referencia del aminoácido con el aminoácido sino se imprime “no se puede abrir el archivo” Repeticiones: No hay repeticiones pues no se considero necesario ya que el programa solo leía las cadenas de aminoácidos sin pedir nada al usuario. Variables y funciones: Se tienen 3 listas, una lista se llama aminoácido, que guarda los nombres de los aminoácidos, una lista que se llama referencia que tienen la abreviación del aminoácido respectiva en orden y otra llamada pesomolecular que guarda el peso de cada aminoácidos. - Una variable es pmol que se define con peso*cantidad, peso es el que se encuentra indicado en la lista de pesos y cantidad es el número de la secuencia de 20 caracteres. Hay una función llamada imprimirproteina que recibe 3 parámetros, uno que será la proteína, otro que será peso y otro que será numero e imprime el nombre de la proteína, el peso en moles. La función calcular es la que primero con la función global, elige aleatoriamente entre aminoácido, referencia y pesomolecular, luego abre un archivo llamado datos.txt que es un archivo creado para que lea la secuencia de aminoácidos. Para las líneas en el archivo, hace un contador llamado cont que inicia con una cuenta cero y otro contador llamado peso con valor de cero. En conclusión, lee los aminoácidos y devuelve las proteínas junto con el peso de la molécula. Para “por” en líneas de datos, si pos está entre 1-0 y pos es diferente que 0, proteína toma el valor de proteína más la posición correspondiente en la lista respectiva, peso toma el valor de peso mas pesomol por el lugar en la lista correspondiente. Luego imprime la proteína, el peso y el número. Finalmente se le suma 1 al contador num. Narración de como llegó a la solución La solución se encontró pues se supo que se debía de tener tres listas y que deben de estar en orden para que el primer dato de una lista sea correspondiente al primero de la segunda y tercera lista. Luego de crear las listas. Luego de tener las listas el paso siguiente era identificar las proteínas o cadenas de aminoácidos para que el programa identifique la lista de referencias adecuadas. Se basó todo el programa en el inicio de las listas que servirán como “base de datos” y a partir de eso se trabajará con estos datos, el peso, la posición que se está buscando para el aminoácido que se pide. Se sabía que para cada dato había otros dos que estaban asociados por lo que se decidió hacer tres funciones, sin embargo, una debió ser la principal que se llama “calcular” que encuentra el peso y encuentra la cadena de aminoácidos. Dividimos el programa en 4 partes principales, una era la que encontraba el peso en moles, otra que imprime la proteína junto con su peso molecular en moles, la otra era la que realizaba la función principal y la otra fue crear una lista de datos, un archivo llamado datos.txt en el bloc de notas para probar el programa. Funciones desarrolladas: Funcion Pm() Imrimirproteina() Calcular() Parámetros que Valores que Finalidad de la Proceso recibe devuelve función Peso y cantidad pmol Encontrar el Multiplica peso peso molecular por cantidad de en moles moléculas Proteína, peso y Str(num) Imprimir el peso Busca el str de número Proteína correspondiente peso y de num Str(peso) de cada amino Aminoácido, Proteína, peso y Encontrar la Lee la secuencia referencia, peso número proteína y el de aminoácidos peso que tiene y devuelve la molecular proteína. Conclusiones En este trabajo se aprendió a trabajar en grupo, a trabajar con Python y hacer programas utilizando funciones que provee el programa tales como try y except. Dentro de los conceptos aprendidos en clase se práctico hacer listas, recorrerlas y leer el largo de una lista. La función principal fue el de recorrer y encontrar la posición correspondiente al aminoácido del que se estaba ingresando junto con su peso y su referencia. Se practicó crear funciones y algunas funciones útiles que tiene Python que son simples como imprimir algún texto, realizar algunas operaciones matemáticas, convertir textos en cadenas y la función “global” que busca dentro de toda la lista y elige. Python es un programa que ayuda a programar, posee algunas instrucciones que ya están determinadas para que el usuario no necesite estableces funciones básicas como por ejemplo la suma o lo que representa el símbolo “+”. La programación es una herramienta útil para crear diferentes funciones sin necesidad de hacerlas manuales, y de igual forma, ayuda a resolver problemas y solucionar algoritmos. Bibliografía Downey, Allen. Think Python: How to Think Like a Computer Scientist. Learning with Python. ISBN 13:9780521898119. http://www.thinkpython.com. Versión electrónica 1.1.21 Dentro del IDLE de Python el comando help()