{"id":5360,"date":"2018-07-02T11:49:43","date_gmt":"2018-07-02T16:49:43","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=5360"},"modified":"2026-04-05T17:33:48","modified_gmt":"2026-04-05T22:33:48","slug":"s1eva2018ti_t1-busca-especie-con-adn","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s1eva20\/s1eva2018ti_t1-busca-especie-con-adn\/","title":{"rendered":"s1Eva2018TI_T1 Busca especie con ADN"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-1eva20\/1eva2018ti_t1-busca-especie-con-adn\/\" data-type=\"post\" data-id=\"5357\">1Eva2018TI_T1 Busca especie con ADN<\/a><\/p>\n\n\n\n<p>Propuesta de soluci\u00f3n en <strong>Python:<\/strong><\/p>\n\n\n\n<p>primero se obtiene una secuencia del listado<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 0\nsecuencia = Listado&#091;i]<\/code><\/pre>\n\n\n\n<p>Para obtener la <strong>inversa<\/strong> se empieza copiando desde el \u00faltimo caracter de la secuencia con \u00edndice <strong>j<\/strong>=<strong>m<\/strong>-1, siendo <strong>m<\/strong> la cantidad de caracteres de la secuencia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #ff0000\"># calcula la inversa<\/span>\nm = <span style=\"color: #ff00ff\">len<\/span>(secuencia)\ninversa = <span style=\"color: #008000\">''<\/span>\nj = m-1\n<span style=\"color: #d35400\">while<\/span> <span style=\"color: #d35400\">not<\/span>(j&lt;0):\n    inversa = inversa + secuencia&#091;j]\n    j = j-1<\/code><\/pre>\n\n\n\n<p>el resultado esperado es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>las secuencias que pertenecen son:  1\nSecuencia:  ATTTGCTTGCTATTTAAACCGGTTATGCATAGCGC\nindices de inversa: &#091;0, 2, 7, 25, 29]\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>El an\u00e1lisis se realiza en dos partes: desde j=0 hasta mitad = m\/\/2. Luego desde la mitad hasta m.<\/p>\n\n\n\n<p>Al comparar la referencia con una <strong>secci\u00f3n<\/strong> de la inversa, se pueden almacenar los <strong>\u00edndices<\/strong> de la coincidencia en otra lista.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# CCPG1001 Fundamentos de Programaci\u00f3n FIEC-ESPOL\n# 1Eva_IT2018_T1 Busca especie con ADN\n# propuesta de soluci\u00f3n: edelros@espol.edu.ec\n\n# INGRESO\nListado = &#x5B;'ATTTGCTTGCTATTTAAACCGGTTATGCATAGCGC', \n           'ATTAGCCGCTATCGA']\nReferencia = 'CG'\n\n# PROCEDIMIENTO\nn = len(Listado)\ntref = len(Referencia)\npertenece = &#x5B;]\n\ni = 0\nwhile not(i&gt;=1):\n    secuencia = Listado&#x5B;i]\n    indices   = &#x5B;]\n    \n    # calcula la inversa\n    m = len(secuencia)\n    inversa = ''\n    j = m-1\n    while not(j&lt;0):\n        inversa = inversa + secuencia&#x5B;j]\n        j = j-1\n        \n    # Analiza las partes, mitad\n    mitad  = m\/\/2\n    veces1 = 0\n    veces2 = 0\n   \n    j = 0    # primera mitad\n    while not(j&gt;=mitad):\n        seccion = inversa&#x5B;j:j+tref]\n        if (seccion == Referencia):\n            veces1 = veces1 + 1\n            indices.append(j)\n        j = j + 1\n\n    j = mitad    # segunda mitad\n    while not(j&gt;=m):\n        seccion = inversa&#x5B;j:j+tref]\n        if (seccion == Referencia):\n            veces2 = veces2 + 1\n            indices.append(j)\n        j = j + 1\n\n    # Revisa si pertenece a especie\n    total = veces1 + veces2\n    if (veces2==2 and total&gt;=4):\n        pertenece.append(&#x5B;secuencia, indices])\n\n    # siguiente secuencia de listado\n    i = i + 1 \n\n# SALIDA\n# print(pertenece)\ntp = len(pertenece)\nprint('las secuencias que pertenecen son: ', tp)\ni = 0\nwhile not(i&gt;=tp):\n    print('Secuencia: ',pertenece&#x5B;i]&#x5B;0])\n    print('indices de inversa:',pertenece&#x5B;i]&#x5B;1])\n    i = i + 1\n<\/pre><\/div>\n\n\n<p><strong>Tarea<\/strong>: Convertir a funciones las secciones de:<\/p>\n\n\n\n<p>- Inversa de la secuencia <strong><em>creainversa<\/em><\/strong>(<em>secuencia<\/em>)<\/p>\n\n\n\n<p>- Conteo de referencias en mitades de secuencia <strong><em>cuentareferencia<\/em><\/strong>(<em>mitadsecuencia<\/em>)<\/p>\n\n\n\n<p>- Crear vector de \u00edndices donde se encuentra la referencia <em><strong>entregaindices<\/strong><\/em>(<em>inversa<\/em>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2018TI_T1 Busca especie con ADN Propuesta de soluci\u00f3n en Python: primero se obtiene una secuencia del listado Para obtener la inversa se empieza copiando desde el \u00faltimo caracter de la secuencia con \u00edndice j=m-1, siendo m la cantidad de caracteres de la secuencia. el resultado esperado es: El an\u00e1lisis se realiza en dos partes: [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[130],"tags":[58,157],"class_list":["post-5360","post","type-post","status-publish","format-standard","hentry","category-fp-s1eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=5360"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5360\/revisions"}],"predecessor-version":[{"id":23600,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5360\/revisions\/23600"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}