4.3 PrimerVerifier
4.3.1 Instrucciones de uso
4.3.1.2 Visualización de resultados
Una vez que se carga la dirección de un archivo FASTA válido y los dos primers, al presionar el botón “Buscar Primers” activa la tercera y cuarta pestaña, cambiando la pestaña actual automáticamente a la tercera pestaña “Posiciones”
En esta pestaña se muestran los resultados en el siguiente orden: Para cada una de las secuencias del archivo FASTA, se muestra una línea con el identificador de la secuencia, una línea que imprime: “***Posiciones donde coincide primer FORWARD:***”, otra línea donde están las posiciones donde coincide el primer forward separadas por espacio, una línea que imprime: “***Posiciones donde coincide primer REVERSE:***” y una última línea que indica las posiciones donde coincide el primer reverse, separadas por espacio. Cada una de estas líneas mencionadas está separada por una línea en blanco de la siguiente. En caso de que no existan posiciones donde coinciden los primers tanto forward como reverse, se imprimirá la línea “No se encontraron primers forward” o “No se encontraron primers reverse” respectivamente. Una explicación más gráfica de esta pestaña puede observarse en la Figura 36.
Figura 36 – Tercera pestaña de PrimerVerifier, mostrando los resultados de búsqueda de primers de dos secuencias.
La cuarta pestaña muestra un poco más de información en referencia a los fragmentos creados a partir de las posiciones encontradas. Para cada una de las secuencias en el FASTA muestra una primera línea con el identificador de la secuencia, una segunda línea con el total de fragmentos encontrados en función de los primers, y luego dos líneas por cada uno de los fragmentos encontrados. La primera línea indica el número del fragmento, las posiciones que abarcan el fragmento, y el tamaño del fragmento en pares de bases. Nótese que el número que se toma para el tamaño que abarca el fragmento y el tamaño del fragmento, no solo incluye la posición donde coincide con el primer reverse sino que a este se le suma el largo de este primer. La segunda línea muestra la secuencia de nucleótidos del fragmento. Una explicación más gráfica de esta pestaña puede observarse en la Figura 37.
Figura 37 – Cuarta pestaña de PrimerVerifier mostrando los resultados de la búsqueda de fragmentos de dos secuencias.
4.3.2 Funcionamiento interno 4.3.2.1 Descripción de paquetes
El programa contiene tres paquetes. El primer paquete se llama archivos y tiene las clases para manejar lectura y escritura de archivos. Las dos clases que posee son ArchivoGrabacion y ArchivoLectura. El segundo paquete se llama interfaz y contiene el JFrame
MenuPrincipal. El tercer y último paquete es logica y contiene las clases IO, Primers, Secuencia, Sistema, SubSecuencia y main.
4.3.2.2 Descripción de clases principales
Las clases más importantes en el programa son las que se encuentran dentro del paquete
logica. A continuación se hará una breve descripción de estas. El código fuente de todas las
clases con sus respectivos métodos estará disponible en el CD entregado para cualquier consulta.
4.3.2.2.1 main
Esta clase contiene el método principal que inicia el programa. Instancia MenuPrincipal.
4.3.2.2.2 IO
Esta clase contiene métodos para manejar la lectura de archivos FASTA y la escritura de resultados. En la versión actual del programa nada más se usan los métodos para leer archivos FASTA implementados por nosotros.
4.3.2.2.3 Primers
Esta clase maneja las parejas de primers agregadas por el usuario. Cada objeto de la clase
Primers contiene cuatro Strings. Uno guarda la secuencia del primer forward, otro guarda la
secuencia del primer reverse, otro guarda la secuencia del inverso y complementario del reverse, y otro guarda el nombre de la pareja de primers.
4.3.2.2.4 Secuencia
Esta clase es la encargada de guardar la información de una secuencia de nucleótidos, incluyendo las posiciones donde coinciden los primers, y los fragmentos.
4.3.2.2.4.1 Variables de clase
Cada secuencia tiene un nombre, una secuenciaADN (que es la secuencia de nucleótidos), un ArrayList de enteros llamado posicionesForward donde se guardan las posiciones donde coincide el primer forward, un ArrayList de enteros llamado posicionesReverse donde se guardan las posiciones donde coincide el primer reverse. También posee un ArrayList de SubSecuencia llamado fragmentos, donde se guarda la información de todos los fragmentos posibles que pueden formar los primers en la secuencia. Secuencia también tiene la secuencia del primer reverse. Esta secuencia se utiliza para calcular correctamente el largo de los fragmentos, ya que para calcularlo se debe conocer el largo del primer reverse, además de la posición.
Además, cada secuencia tiene dos Strings llamados informePosiciones e
informeFragmentos, que es lo que se imprime en las dos pestañas de resultados en el MenuPrincipal.
4.3.2.2.5 Sistema
Sistema es la clase encargada de retener la información de todas las secuencias, y tiene
algunos métodos donde se requiere de ellas. Sistema tiene un ArrayList de Secuencia, y dos parámetros que consigue de la interfaz: dos enteros llamados min y max, que se refieren al mínimo y máximo tamaño de los fragmentos de los productos de PCR.
4.3.2.2.6 SubSecuencia
La clase SubSecuencia hace referencia a los fragmentos de nucleótidos formados por los productos de PCR. Cada SubSecuencia posee dos enteros, que son la posición en la que inicia el fragmento en la secuencia, y la posición en la que termina el fragmento en la secuencia. Además, posee un String que es la secuencia de nucleótidos que está dentro comprendida entre la posición inicial y final.