Jump to content

Salva Roselló

Members
  • Content Count

    48
  • Joined

  • Last visited

  • Days Won

    1

Salva Roselló last won the day on November 1 2018

Salva Roselló had the most liked content!

About Salva Roselló

  • Rank
    Member

Converted

  • Campos
    ;

Recent Profile Visitors

224 profile views
  1. Hola de nuevo, asunto resuelto. He hecho los cambios sugeridos y ahora funciona. No me percaté de que las funciones Application.WorksheetFunction.Combin requieren dos argumentos de tipo Double. Con los datos que uso uno de los argumentos siempre toma valores enteros, por eso lo definí como integer. Al cambiar todas las variables a Double ya no hay problema. Muchas gracias por la ayuda @bigpetroman. Saludos.
  2. Muchas gracias @bigpetroman por la ayuda. Reviso los cambios que me sugieres e informaré del resultado. Saludos.
  3. Hola a todos, He escrito un macro con un bucle (Do/Loop Until) para que realice iterativamente el cálculo de una probabilidad hasta que esta sea mayor que el valor umbral fijado. Cuando se supera este valor, la macro debe de escribir en unas celdas determinadas el resultado del calculo inmediatamente anterior al que superó el umbral. Lo he probado y al ejecutarlo el cursor no para de girar y me dice que Excel No Responde. Supongo que entra en un bucle infinito. No se que he hecho mal. Os subo el archivo por si me podeis ayudar. Gracias de antemano. Saludos. Cálculo tamaño familias_m2.xlsm
  4. Hola de nuevo a todos. Sigo construyendo mis simulaciones genéticas. Quiero generar la forma en que se observa un carácter en un individuo a partir de la información que este contiene (disculpa @Antoni pero me resulta complicado ser conciso con este tema). Adjunto un archivo con un ejemplo de lo que quiero conseguir. https://1drv.ms/u/s!ArSI6ZjR1bGVlYRKJdj0eGq5jDa87Q Partimos de: Unos caracteres ya definidos (hoja naranja “Color_y_tamaño_flor_CL”). La definición de caracteres condiciona como se expresa el carácter y el código tendrá que buscar en la hoja de caracteres los diferentes parámetros de expresión. Esta definición implica: Indicar cuantos caracteres son. En el ejemplo dos, color de flor y tamaño de flor. Indicar cuantos genes controlan cada carácter: El carácter Color de flor tiene dos genes (los dos de color rojo) El carácter Tamaño de flor tiene tres genes (varios colores) Para cada gen (que en realidad tiene dos copias), definir qué relación hay entre las dos copias del gen. Esta relación condicionará como se expresa el carácter. Las relaciones posibles son tres: Dominancia. Color oscuro y color claro en cada una de las dos copias de un gen se expresa como color oscuro (oscuro domina sobre clara y con una sola copia del gen que tenga color oscuro este se expresará como oscuro). Codominancia. Cada uno de los colores del gen participa en el carácter. El resultado cuando hay una copia del gen oscura y otra clara es de color intermedio (ningún color domina sobre el otro). La opción intermedia para cada color es la que aparece en la hoja de caracteres en la columna C (el código la tendrá que tomar de aquí) Recesividad. Lo contrario que dominancia. El carácter solo se expresa cuando las dos copias del gen son del mismo color (el indicado en la hoja de caracteres). Se quiere para cada individuo de la población: · Colorear los genes de cada carácter en cada genotipo con la información de la hoja de caracteres. Esto ya lo hace el código (macro asignado al botón obtener fenotipos de la hoja Poblaciones y caracteres). Ejemplo ya realizado en la hoja verde “P1_color_tam”. El primer genotipo tiene puestos "a mano" los resultados a conseguir con código. · Obtener la expresión de cada par de genes coloreado en el apartado anterior representándola “gráficamente” en el rango de celdas llamadas fenotipo y recuadradas en la zona adyacente a cada genotipo (esto y lo que viene después falta porque no me aclaro a conseguirlo con código). Para ello: El código tendrá que consultar el color del par de copias de un gen en la hoja de la población en la que se trabaja (“P1_color_tam”) (Ej: gen A, Locus 16 en cromosomas 5 y 5’) Tendrá que consultar en la hoja de caracteres (“Color_y_tamaño_flor_CL”) la relación entre estos dos genes (Ej: Dominancia en el desplegable y lo mismo en la celda asociada oculta AM10). Aplicar la expresión resultante (Ej: rojo claro-rojo oscuro da un fenotipo rojo oscuro) en la celda combinada del recuadro fenotipo de coordenadas equivalentes (Ej: locus 16 cromosoma 5 (celda AT30)). La expresión siempre se hace para cada par de genes. · Cuando ya se ha obtenido la expresión del fenotipo de cada par de genes, el código debe de dar el resultado de la expresión total del carácter como un valor numérico en el rango de celdas recuadrado como “Evaluación fenotipo” (sumatorio de todos los genes que lo forman). Se toma el siguiente criterio según el valor de fenotipo expresado: Dominante = 1 Codominante = 0 Recesivo = -1 · En ejemplo, el primer individuo tiene como resultados para la evaluación de los caracteres: Carácter 1 = 2 (1 +1) Carácter 2 = 0 (1+ 0 - 1) Lamento el tocho. Espero que sea suficientemente claro. Si tengo que aclarar alguna cosa, decídmelo. Gracias de antemano. Un saludo.
  5. Hola @Antoni, la verdad es que probé esa modificación del código (por evidente) y no me funcionó. No sé porque. Igual la debí de guardar al salir y no me acuerdo. Ya te dije que ayer era difícil concentrarse el el ordenador con los crios tan revolucionado. En fin. De todos modos muchas gracias por todo. Respecto al 'olvido' de sus mejestades, seguro que no es por ser republicano o del Barça (mi mujer ha tenido muchos regalos). Tampoco creo que sea por ser catalán (tengo muchos amigos catalanes con regalos). Presentaré una reclamación en tu nombre. Seguro que lo resuelven. Saludos
  6. Hola de nuevo @Antoni, Ya está resuelta la permutación de coordenadas cromosoma/locus. No me preguntes como lo he resuelto porque no tengo ni idea. Lo unico que he hecho es lo siguiente: hacer visible otra plantilla de definición de caracteres (en este caso cuantitativos) que estaba oculta. Copiar el código que pusiste en el objeto Hoja CARACTERES CL y pegarlo en el objeto Hoja CARACTERES CT. Probar a usar las dos plantillas. Ahora funciona todo bien. Igual, han sido los Reyes Magos de Oriente que han arreglado mi ordenador (o mis manazas) esta noche. En cualquier caso, muchas gracias, y disculpa los embrollos. PD: Espero que sus majestades te hayan traido todos los regalos (muchos) que tu altruista interés por los demás merece.
  7. Hola de nuevo @Antoni, Mi curiosidad ha podido mucho más que las revoluciones de mis hijos pequeños. Funciona todo estupendamente. Solo una pequeña pega. Al colorear el cromosoma/locus las coordenadas de cromosoma y locus que aparecen en las columnas AC y AD están permutadas. He pensado dos soluciones: Intento corregir yo el código (no me ha salido, tu código aún es demasiado sofisticado para mi) Permuto los rótulos de las columnas AC y AD (está no es una solución elegante pero si que funciona). No obstante, me gustaría sabe en que punto del código se tendría que cambiar eso si no es molestia. Moltes gràcies.
  8. Hola @Antoni, Muchas gracias por la ayuda. Lo miro mañana y te digo. Hoy es complicado ponerse delante del ordenador con los crios a 10000 revoluciones. Te prometo que les he pedido a los reyes magos de oriente (esos llegan esta noche) que me traigan dos carros llenos de brevedad y concisión. Espero (esperas) que mis plegarias sean escuchadas. Saludos.
  9. No te preocupes. Se que son fechas complicadas. Muchas gracias por el interés. Saludos.
  10. Hola @Antoni, en Genetica la "información codificada" en un gen (es como llamamos a la parte de "codigo" que hay en un locus de un cromosoma) se puede considerar única. Por eso la contestación a tu pregunta es que no puede estar duplicado ni en un caracter ni en el conjunto de caracteres que consideremos. Otra cosa es que esa restricción sea fácil de programar (eso no lo sé). Ten en cuenta que con el rediseño que he hecho la idea es que los caracteres se guarden en hojas específicas (copias de la plantilla que ahora está visible) como hacemos con las de poblaciones. En principio podrá haber tantas hojas de caracteres como queramos (eso me facilitará preparar muchos tipos de datos para problemas de simulaciones y guardarlos para ser usados en otro momento). Luego al evaluar caracteres en poblaciones "aplicaremos" uno o varios caracteres (guardados en una hoja o en varias) a la población elegida. Para eso ya preparaste una macro que conservo y actualizaré más adelante. Volviendo a tu pregunta. Lo ideal es que exista la restricción que te comentaba al principio, pero no se a la hora de programar si se puede poner para los caracteres de una hoja o para todos. Si solo se puede para los de una hoja, no hay problema, ya les pido a mis alumnos que comprueben que no haya "solapes" si usamos más de una hoja de caracteres. Si se puede hacer para todo, genial. En cualquier caso muchas gracias por el interés y las contribuciones. @Haplox me guataria que tu también te lo pasases bien con la "genética VBA" que vemos por aquí. En el fondo en Genética también se trabaja con código. De hecho esta aplicación intenta traducir a VBA procesos que son resultado de aplicar "codigo genético". Además, me viene muy bien ver como vosotros, que sois profanos en el tema, vais entendiendo la utilidad de lo que construyo porque así tengo la seguridad de que mis alumnos también lo entenderán (cuando empiezan con mi asignatura ellos no han visto mucho de genética). De nuevo, muchas gracias por todo.
  11. Hola a todos, en primer lugar os deseo Felices Fiestas a todos. Vuelvo con consultas para ir completando mi trabajo de simulaciones genéticas en Excel. Necesito ayuda con una de las plantillas que utilizo para definir caracteres en la aplicación. En su día @Antoni me ayudó escribiendo una macro para que cuando se seleccionara una celda de la plantilla, esta se coloreara con un color seleccionado previamente. Esto funciona muy bien, pero ahora necesito ampliar la funcionalidad de ese macro para definir más ampliamente los caracteres que uso en las simulaciones. Intento explicar lo que necesito. Adjunto el archivo de Excel con el que trabajo. Están visibles solo dos hojas. La principal (Poblaciones y Caracteres) y otra que cuando esté finalizada será un plantilla oculta a la que llamará un formulario y la copiará para su uso. Esta segunda hoja (Caracteres CL) es sobre la que necesito ayuda. La idea de la funcionalidad que quiero seguiria los siguentes pasos: Pulsar en alguna de las celdas coloreadas de la columna A para elegir el color. Al hacer esto las celdas G12 y K12 toman el color seleccionado (esto ya lo hace gracias a @Antoni) Pulsar en la celda deseada de la columna AA y que al hacerlo adquiera el color seleccionado. En la hoja de ejemplo se ha simulado manualmente en las celdas AA10 y AA21. Digo que se ha simulado porque esto no lo hace automaticamente al pinchar en ellas. He intentado modificar el código que en su día preparó @Antoni pero no me sale lo que quiero y lo he dejado como estaba. El código de @Antoni está en el objeto ThisWorkbook y en el módulo AsignarCaracteres del editor de VBA. Pulsar en alguna de las celdas de la plantilla de 10 cromosomas y 64 locus/cromosoma y que automáticamente tome el color seleccionado (esto si que lo hace gracias al código de @Antoni) y que escriba las coordenadas (con referencia a cromosoma y locus no a la dirección Excel de la celda) en las celdas correspondientes a cromosoma y locus de la fila donde en el paso 1 se ha marcado el color deseado. Para ilustrar esto en la hoja de ejemplo he escrito a mano esta dirección en la fila 10 (gen rojo del caracer 1) y en la 21 (gen azul del caracter 2). En el caso del gen rojo estas coordenadas son cromosoma 3, locus 23 y en las del gen azul cromosoma 6 locus 15. Esto no lo hace y no se que código me permitiría obtenerlo automáticamente. Estas coordenadas serán importantes más adelante para completar la evaluación de los caracteres definidos en las poblaciones escogidas para tal fin. Bueno espero haber sido suficientemente claro. Si debo explicar algo más o mejor, decidmelo. Adjunto el archivo comprimido. https://1drv.ms/u/s!ArSI6ZjR1bGVlP8Hkp1S6NikTUx72A Espero vuestras sugerencias y comentarios. Muchas gracias de antemano.
  12. FastKeys. Es un automatizador de tareas repetitivas. Lo uso para añadir texto que repito mucho. Lo guardas y le defines una secuencia de pulsaciones de teclas, cuando detecta esa secuencia inserta el texto. Pero claro esta permanentemente escaneado lo que pasa. Con la ultima actualización han aparecido los problemas.
  13. Hola a todos, @bigpetroman gracias por el interés y la sugerncia aunque no era un complemento de excel lo que estaba fastidiando. Ya lo he resuelto. Lo que estaba tocando las narices era otro programa que tengo instalado y que se carga al iniciar windows. Ha sido desactivarlo y Excel vuelve a volar. El ejemplo que venimos probando todos ultimamente ahora en mi ordenador se ejecuta en 25 segundos. Creo que me servirá de lección para no tener tantas cosas instaladas (en este caso el programita de marras ralentizaba la ejecución 120 veces). Lastima que lo he averiguado despues de desinstalar todos los complementos que teneia y volver a reinstalar Excel . Bueno , lo dicho, gracias a todos por el interés y la ayuda. Lamento importunaros con estas cosas.
  14. Hola de nuevo. Ya está comprobado. En otro ordenador normalito (G3250, 2,3 Ghz, 8GB RAM), sin add-ins en Excel y ejecutando el archivo desde pendrive USB, cruzar dos poblaciones (una de 25 y otra de 14, con lo que tiene que incrementar a 25 el número de genotipos de la de 14) pidiendole 5 descendientes/genotipo le cuesta 45 segundos. Tendré que desinstalar add-ins. Muchas gracias @Haplox y @Antoni por las comprobaciones.
×
×
  • Create New...

Important Information

Privacy Policy