Code Monkey home page Code Monkey logo

programacion_parcial_2's Introduction

Examen Parcial 2 - Mutantes

  • Apellido y Nombre: CRUZ , Hiro Julian
  • Legajo: 51517
  • DNI:41699553
  • Email: [email protected]

Proyecto Mutantes

El programa permite detectar secuencias de ADN de Mutantes y identificar si hay precensia de alguno. Se tienen encuenta los siguientes aspectos:

  • La secunecia de ADN contiene 6 secuencias de 6 Bases Nitrogenadas cada una con los siguientes caracteres: A, T, C y G.
  • El usuario ingresa las secuencias por fila.
  • Se detecta un mutante cuando hay mas de dos secuencias de Bases nitrogenadas iguales consecutivas ("AAAA","TTTT","GGGG","CCCC"), pueden encuntrarse de modo oblicuo, vertical u horizontal.

Nota: Se le coloco coleres al programa(Con sintaxis "ANSI escape sequences") para una mejor visualización. Esta edición no es compatible con todas las consolas, para este caso se hizo uso de Visual Studio Code, el cual no presento ningun inconveniente.

Resolución del problema

  1. Se crea una clase MUTANTES y se la llama para dar inicio a la aplicación: Creamos la clase:

    class MUTANTES:
    

    Invocamos a la clase al final de codigo:

    Mutantes = MUTANTES()
    
  2. Creamos una función de inicio de la aplicación, el cual contiene el cuerpo del codigo: Incio:

    def __init__(self) -> None:
    

    Tambien se crea la función:

    def isMutant(self,DNA) -> bool:
    

    La cual es la parte esencial del codigo, ya que nos determinar si es mutante.

  3. Para la solicitud de la secuencia de ADN(Debe ingresar un string con las letras:A,T,C,G y de tamaño:6), al usuario se le indicas las propiedades de este:

    Ingrese [1] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6]:
    
  4. Mediante la siguiente función se verifica que el string ingresado por el usuario cumpla los requisitos:

    def VerificacionCondicionesString(self) -> list:
    

    Hacemos uso de otras funciones para particionar el funcionamiento de la funcion:

    Verifica el largo de la cadena:

    def VerificacionDeLargoCadena(self,texto:str,tamanio:int) -> str:
    

    Convierte el string en una lista de char:

    def SepararLetras(self,texto:str) -> list:
    

    Verifica que las letras ingresadas sean las correspondientes:

    def VerificacionDeLetras(self,texto:str) -> bool:
    

    Nota: El programa esta realizado para que no diferencie entre mayúsculas y minúsculas. También cuenta con errores que indican que condición no se esta cumpliendo.

  5. Construcción de una matriz:

    def CrearMatriz(self, DNA) -> list:
    

    Para una mejor visualización para el usuario se creo la función:

    def MostrarValoresMatriz(self,MATRIZ) -> None:
    

    Esto permite visualizar la matriz de la siguiente forma:

    [ A , T , A , T , A , T]

    [ G , A , G , A , G , A]

    [ C , C , C , C , C , C]

    [ T , A , T , A , C , G]

    [ A , G , T , C , A , T]

    [ A , C , C , A , T , G]

  6. Para realizar un recorrido por la matriz y buscar secuencias de 4 bases nitrogenadas consecutivas iguales se utilizan las siguientes 4 funciones: Recorrido Horizontal:

    def RecorrerHorizontal(self,MATRIZ) -> list:
    

    Recorrido Vertical:

    def RecorrerVertical(self,MATRIZ) -> list:
    

    Recorrido Oblicuo(de izquierda a derecha desde el extemo inferior):

    def RecorrerOblicuamenteIDI(self,MATRIZ) -> list: 
    

    Recorrido Oblicuo(de derecha a izquierda desde el extemo inferior):

    def RecorrerOblicuamenteDII(self,MATRIZ) -> list:
    
  7. Se realiza el conteo de conincidencias, para verificar si se cumplen las condiciones, haciendo uso de la función:

    def ContadorPalabrasContenidasListas(self,Registro, Palabras) -> int:
    
  8. Finalmente la función "isMutant" determinara si la persona es mutante y el programa mostrara el resultado. Tambien se indicara si se desea ejecutar nuevamente el programa o finalizar con la busqueda.

USO

Se puede clonar el repositorio:

gh repo clone xHJCXDx/Programacion_Parcial_2

Otra manera es acceder al siguiente enlace y descargarlo.

Casos de Prueba

Caso 1



Ingrese [1] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : atatat



Ingrese [2] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : gagaga



Ingrese [3] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : cccccc



Ingrese [4] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : tatacg



Ingrese [5] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : agtcat



Ingrese [6] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : accatg



DNA INGRESADOS: DNA[0]: ATATAT

DNA[1]: GAGAGA

DNA[2]: CCCCCC

DNA[3]: TATACG

DNA[4]: AGTCAT

DNA[5]: ACCATG


[ A , T , A , T , A , T]

[ G , A , G , A , G , A]

[ C , C , C , C , C , C]

[ T , A , T , A , C , G]

[ A , G , T , C , A , T]

[ A , C , C , A , T , G]


|Cantidad TOTAL de coincidencias: 2|

Es mutante? SI


¿Quiere verificar otra secuencia?

n

PROGRAMA FINALIZADO

Caso 2



Ingrese [1] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : atgatc



Ingrese [2] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : atcgat



Ingrese [3] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : cgatca



Ingrese [4] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : atcgac



Ingrese [5] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : actacg



Ingrese [6] DNA de la persona [Letras:A,T,C,G] | [Tamaño:6] : actagc



DNA INGRESADOS:

DNA[0]: ATGATC

DNA[1]: ATCGAT

DNA[2]: CGATCA

DNA[3]: ATCGAC

DNA[4]: ACTACG

DNA[5]: ACTAGC


[ A , T , G , A , T , C]

[ A , T , C , G , A , T]

[ C , G , A , T , C , A]

[ A , T , C , G , A , C]

[ A , C , T , A , C , G]

[ A , C , T , A , G , C]


|Cantidad TOTAL de coincidencias: 0|

Es mutante? NO


¿Quiere verificar otra secuencia?

n

PROGRAMA FINALIZADO

programacion_parcial_2's People

Contributors

xhjcxdx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.