Algoritmo de Smith-Waterman en Python
El algoritmo de Smith-Waterman se utiliza para realizar la alineación de secuencia local de cadenas. Las cadenas representan principalmente cadenas de ADN o secuencias de proteínas.
Este artículo analiza la implementación del algoritmo Smith-Waterman en Python.
Algoritmo de Smith-Waterman en Python
El módulo swalign
contiene varias funciones para implementar el algoritmo Smith-Waterman en Python. Puede instalar el módulo swalign
usando PIP
ejecutando la siguiente declaración en la línea de comando.
pip3 install swalign
La declaración anterior instala el módulo para la versión 3 de Python. Para instalar el módulo en la versión 2 de Python, puede usar el siguiente comando.
pip install swalign
Después de instalar el módulo swalign
, usaremos los siguientes pasos para implementar el algoritmo Smith-Waterman en nuestro programa Python.
-
Primero, importaremos el módulo
swalign
utilizando la instrucciónimport
. -
Para realizar la alineación, debemos crear una matriz de puntuación de nucleótidos. En la matriz, proporcionamos una puntuación para cada coincidencia y discrepancia.
Comúnmente, usamos 2 para una puntuación de coincidencia y -1 para una falta de coincidencia.
-
Para crear la matriz de puntuación de nucleótidos, utilizaremos el método
NucleotideScoringMatrix()
. LaNucleotideScoringMatrix()
toma la puntuación de coincidencia como su primer argumento de entrada y la puntuación de desajuste como su segundo argumento de entrada.Después de la ejecución, devuelve un objeto
IdentityScoringMatrix
. -
Una vez que obtengamos la matriz de nucleótidos, crearemos un objeto
LocalAlignment
utilizando el métodoLocalAlignment()
. El métodoLocalAlignment()
toma la matriz de puntuación de nucleótidos como entrada y devuelve un objetoLocalAlignment
. -
Una vez que obtengamos el objeto
LocalAlignment
, podemos ejecutar el algoritmo Smith-Waterman utilizando el métodoalign()
. -
El método
align()
, cuando se invoca en un objetoLocalAlignment
, toma una cadena que representa una hebra de ADN como su primer argumento de entrada. Toma otra cadena que representa la hebra de ADN de referencia. -
Después de la ejecución, el método
align()
devuelve un objetoAlignment
. El objetoAlignment
contiene los detalles de la coincidencia y la falta de coincidencia de las cadenas de entrada y varios otros detalles.
Puedes observar todo el proceso en el siguiente ejemplo.
import swalign
dna_string = "ATCCACAGC"
reference_string = "ATGCAGCGC"
match_score = 2
mismatch_score = -1
matrix = swalign.NucleotideScoringMatrix(match_score, mismatch_score)
lalignment_object = swalign.LocalAlignment(matrix)
alignment_object = lalignment_object.align(dna_string, reference_string)
alignment_object.dump()
Producción :
Query: 1 ATGCAGC-GC 9
||.|| | ||
Ref : 1 ATCCA-CAGC 9
Score: 11
Matches: 7 (70.0%)
Mismatches: 3
CIGAR: 5M1I1M1D2M
Conclusión
Este artículo analiza cómo podemos implementar el algoritmo de Smith-Waterman utilizando el módulo swalign
de Python.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub