Python – Ejercicio resuelto de aminoácidos

En este post vamos a resolver un ejercicio de aminoácidos con Python.

Tiene que ver con programación orientada a objetos, listas, archivos y diccionarios. El ejercicio sirve para repasar varios conceptos de programación en Python.

Descripción del ejercicio

Veamos los detalles a continuación.

Se necesita un sistema para procesar diversos estudios sobre aminoácidos. Se pide crear la clase Estudio y realizar un programa con varias operaciones para trabajar con dichos estudios.

Parte 1: Clase Estudio

Se solicita crear la clase Estudio. Los atributos son:

  • descripción del estudio (string)
  • secuencia de aminoácidos del estudio (string, ej. “ALAGLYALAVALALA”, nota: cada aminoácido está representado por 3 letras mayúsculas)
  • resultado (número entero entre O y 5)

Implementar además los métodos para:

Al imprimir un objeto, deben mostrarse siempre con el siguiente formato presentado en el ejemplo:

Si se tiene el estudio de descripción: “Análisis primario”, con la secuencia “ALAGLYALAVALALA”” (la cual contiene 3 aminoácidos diferentes: “ALA”, “GLY” y “VAL”) y resultado 5, se mostrará así:

Estudio: Análisis Primario Secuencia: ALAGLYALAVALALA Resultado: 5 Contiene: 3

método cualesAminoacidos, que retorna una lista de los aminoácidos incluidos en la secuencia, sin repeticiones.

Ejemplo: para el estudio definido con secuencia “ALAGLYALAVALALA”, devolvería
[ALA””GLY”,VAL”]

método contiene(cual), recibe un aminoácido y retorna verdadero si el estudio lo contiene o falso en otro caso.

Ejemplo: para el estudio definido con secuencia “ALAGLYALAVALALA”, si se consulta “VAL”, retornaría True.

Parte 2: Programa

Al comienzo del programa, los datos de los aminoácidos que van a participar de los estudios a realizar deben cargarse a partir de un archivo de texto a un diccionario.

La ruta y nombre del archivo la indicará el usuario. El formato de cada línea del archivo es:

nombre aminoácido#código largo en 3 letras#código corto en 1 letra#peso molecular

Se asumen todos los datos correctos.

Ejemplo de posible archivo:

El diccionario tendrá cómo clave el código largo en mayúscula y cómo valor a una tupla con el nombre, el código corto y el peso.

En el programa se trabajará con el diccionario de los aminoácidos y una lista donde se guardarán los estudios.

Menú

Luego de cargar el diccionario, se ofrecerá un menú con:

1.Agregar un estudio en la lista. Solicitar los datos de un estudio (descripción, secuencia de aminoácidos y resultado. Cada aminoácido se representa por 3 letras mayúsculas).

Debe verificarse que cada aminoácido de la secuencia esté en el diccionario, que la descripción del estudio no esté repetida y que el resultado del estudio sea de 0 a 5.

Sólo se agrega en la lista si está completamente correcto y además, a modo informativo, se muestran todos los datos del estudio y el peso molecular correspondiente.

2. Mostrar estudios. Mostrar todos los estudios registrados.

3. Consulta de estudios con aminoácido. Se indica un aminoácido (3 letras mayúsculas) y se muestra la lista de estudios que lo contienen. La lista debe estar ordenada alfabéticamente por descripción.

4. Consulta de aminoácidos diferentes. Mostrar cuál es el estudio que tuvo la mayor cantidad de aminoácidos diferentes. Si hubiere varios con la misma cantidad, mostrarlos todos ellos.

5. Exportar estudios. Se ingresa el resultado a considerar y el nombre y ruta del archivo. Se grabará una línea por cada estudio que sea del resultado indicado. El formato es el presentado en la parte 1, por ejemplo:

Estudio: Análisis Primario Secuencia: ALAGLYALAVALALA Resultado: 5 Contiene: 3

6. Aminoácidos faltantes. A partir de los aminoácidos cargados en el sistema, indicar cuáles no participaron en ningún estudio. Mostrarlos incluyendo su nombre, código largo y código corto.

7. Fin

Solución al ejercicio

Ya expliqué la descripción, ahora veamos la solución:

El ejercicio cumple con todos los requisitos. Para terminar te dejo con 5.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario