# Instalación y carga de Biostrings
#if (!requireNamespace("BiocManager", quietly = TRUE)) { install.packages("BiocManager") }
#install.packages("BiocManager")
library(BiocManager)
#install.packages("Biostrings")
#BiocManager::install("Biostrings")Curso Bioinformática con R 2025
Fundamentos de Bionformática
- ¿Qué es la Bioinformática?
- Integración de biología, informática y estadísticas.
- Tipos de datos bioinformáticos:
Secuencias: ADN, ARN, proteínas.
Estructuras: Modelos tridimensionales de biomoléculas.
Redes: Interacciones proteicas y metabólicas.
Exploración y alineamiento de Secuencias
El alineamiento de secuencias compara dos o más secuencias biológicas para encontrar regiones de similitud que puedan indicar relaciones funcionales, estructurales o evolutivas.
Tipos de Alineamiento:
Alineamiento Global: Alinea secuencias completas. Se utiliza cuando las secuencias son de longitud similar y se busca maximizar la correspondencia en toda su extensión.
Alineamiento Local: Identifica regiones similares dentro de secuencias más largas. Útil cuando las secuencias difieren significativamente en longitud.
Aplicaciones en la Bioinformática:
Identificación de genes homólogos.
Descubrimiento de mutaciones y variantes genómicas.
Reconstrucción filogenética y estudios evolutivos.
Herramientas en R para el Análisis de Secuencias
2.1 Uso del Paquete
Biostrings-
- ¿Qué es
Biostrings? Un paquete de R desarrollado por Bioconductor que proporciona herramientas para manipular secuencias biológicas (ADN, ARN y proteínas).
Principales Funciones:
DNAString/RNAString/AAString: Representa secuencias de ADN, ARN y proteínas, respectivamente.pairwiseAlignment: Realiza alineamientos globales o locales entre dos secuencias.reverseComplement: Genera el complemento inverso de una secuencia de ADN.
Ejemplo Práctico con
Biostrings: - ¿Qué es
library(Biostrings)Cargando paquete requerido: BiocGenerics
Adjuntando el paquete: 'BiocGenerics'
The following objects are masked from 'package:stats':
IQR, mad, sd, var, xtabs
The following objects are masked from 'package:base':
anyDuplicated, aperm, append, as.data.frame, basename, cbind,
colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply,
match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
Position, rank, rbind, Reduce, rownames, sapply, saveRDS, setdiff,
table, tapply, union, unique, unsplit, which.max, which.min
Cargando paquete requerido: S4Vectors
Cargando paquete requerido: stats4
Adjuntando el paquete: 'S4Vectors'
The following object is masked from 'package:utils':
findMatches
The following objects are masked from 'package:base':
expand.grid, I, unname
Cargando paquete requerido: IRanges
Adjuntando el paquete: 'IRanges'
The following object is masked from 'package:grDevices':
windows
Cargando paquete requerido: XVector
Cargando paquete requerido: GenomeInfoDb
Adjuntando el paquete: 'Biostrings'
The following object is masked from 'package:base':
strsplit
# Crear una secuencia de ADN
dna_seq <- DNAString("ATGCGTACGTTAGC")
dna_seq14-letter DNAString object
seq: ATGCGTACGTTAGC
# Obtener el complemento inverso
#Requerimos del paquete pwalign
#BiocManager::install("pwalign")
arev_comp <- reverseComplement(dna_seq)
arev_comp14-letter DNAString object
seq: GCTAACGTACGCAT
# Calcular la frecuencia de nucleótidos
nuc_freq <- letterFrequency(dna_seq, letters = c("A", "T", "G", "C"))
print(nuc_freq)A T G C
3 4 4 3
- Ejemplo Práctico con
Biostrings:
# Creación de una secuencia de ADN
seq1 <- DNAString("ATGCGTACGTTAGC")
seq2 <- DNAString("ATGCGTGCGCTGAC")
seq1 14-letter DNAString object
seq: ATGCGTACGTTAGC
seq214-letter DNAString object
seq: ATGCGTGCGCTGAC
#??BiostringsIntentalo con la secuencia #2 (Seq2)
# Alineamiento global
alignment <- pairwiseAlignment(seq1,
seq2,
substitutionMatrix = NULL,
gapOpening = -2,
gapExtension = -1)Warning in .call_fun_in_pwalign("pairwiseAlignment", ...): pairwiseAlignment() has moved to the pwalign package. Please call
pwalign::pairwiseAlignment() to get rid of this warning.
print(alignment)Global PairwiseAlignmentsSingleSubject (1 of 1)
pattern: ATGCGTACG-TTAG-C
subject: ATGCGTGCGCT--GAC
score: 5.900032
# Generar el complemento inverso
rev_comp <- reverseComplement(seq1)
rev_comp14-letter DNAString object
seq: GCTAACGTACGCAT
Función utilizadas: pairwiseAlignment
- Descripción: Esta función del paquete
Biostringsrealiza un alineamiento de dos secuencias, ya sea global o local. El alineamiento global compara toda la longitud de las dos secuencias desde el principio hasta el final, insertando espacios (gaps) donde sea necesario para maximizar la similitud.
Parámetros:
seq1yseq2:Representan las dos secuencias que deseas alinear.
Estas deben ser objetos
DNAString,RNAString, oAAString(dependiendo del tipo de datos).
substitutionMatrix = NULL:Especifica la matriz de sustitución que determina el puntaje para coincidencias y mismatches (cuando las bases son diferentes).
Al establecerlo en
NULL, se usa la matriz predeterminada para el tipo de secuencia (por ejemplo, ADN).Puedes definir una matriz personalizada si tienes puntajes específicos para mutaciones o transiciones y transversiones.
gapOpening = -2:Es el puntaje de penalización para abrir un gap (inserción o eliminación).
Un valor negativo penaliza más, lo que significa que el algoritmo será más estricto para insertar gaps.
En este caso, cada nuevo gap reduce el puntaje del alineamiento en 2 unidades.
gapExtension = -1:Es el puntaje de penalización para extender un gap existente.
Esto permite controlar cómo se manejan los gaps largos: con valores más negativos, se desincentiva la inserción de gaps extensos.
Resultados:
El alineamiento resalta las similitudes entre las secuencias, indicando posibles relaciones evolutivas.
El complemento inverso permite explorar características específicas de la molécula de ADN.
ACTIVIDAD: buscar dos secuencias en NCBI y Alinearlas con el paquete pairwiseAlignment
Objetivo
Utilizar el portal de NCBI para buscar dos secuencias biológicas de interés, descargarlas y alinearlas utilizando la función pairwiseAlignment del paquete Biostrings en R.
Práctica Adicional: Buscar Secuencias en NCBI y Alinearlas con pairwiseAlignment
Objetivo
Utilizar el portal de NCBI para buscar dos secuencias biológicas de interés, descargarlas y alinearlas utilizando la función pairwiseAlignment del paquete Biostrings en R.
Instrucciones para la Práctica
1. Buscar Secuencias en NCBI
Ve al portal de NCBI Nucleotide.
Busca dos secuencias de ADN relacionadas. Por ejemplo:
Secuencia 1: Gen de hemoglobina en humanos (HBB).
Secuencia 2: Gen de hemoglobina en ratón (Hbb).
Descarga las secuencias en formato FASTA:
Haz clic en la opción “Send to” → “File” → “FASTA”.
Guarda las secuencias en un archivo local.
2. Cargar y Procesar las Secuencias en R
Usa el paquete
Biostringspara leer los archivos FASTA.Alinea las secuencias con
pairwiseAlignment.
Código de Ejemplo
# Cargar los paquetes necesarios
#library(Biostrings)
# Cargar las secuencias desde archivos FASTA descargados
seq1 <- readDNAStringSet("human_hemoglobin.fasta")
seq2 <- readDNAStringSet("mouse_hemoglobin.fasta")
# Imprimir las secuencias cargadas
print(seq1)DNAStringSet object of length 1:
width seq names
[1] 567 TTCATAGACCTCACCCTGTGGAG...GGGCACCTTTGCCACACTGAGTG MZ485458.1 Homo s...
print(seq2)DNAStringSet object of length 1:
width seq names
[1] 639 CACATTTGCTTCTGACATAGTTG...TTATTTCACTGCAATGATGTTTT NM_001201391.1 Mu...
# Alinear las secuencias
alignment <- pairwiseAlignment(seq1, seq2,
substitutionMatrix = NULL,
gapOpening = -2,
gapExtension = -1)Warning in .call_fun_in_pwalign("pairwiseAlignment", ...): pairwiseAlignment() has moved to the pwalign package. Please call
pwalign::pairwiseAlignment() to get rid of this warning.
# Mostrar el alineamiento
print(alignment)Global PairwiseAlignmentsSingleSubject (1 of 1)
pattern: TTCATAGACCTCACCCTGTGGAGCCACACCCTAG...GGGCACCTTTGCCA---CACTG-A--G-TG----
subject: ------------------------CACA---T--...G--CA--TTT---ATTTCACTGCAATGATGTTTT
score: -33.80751
# Visualizar el alineamiento
aligned_seq1 <- as.character(alignment@pattern)
aligned_seq2 <- as.character(alignment@subject)
cat("Alineamiento:\n")Alineamiento:
cat("Secuencia 1:", aligned_seq1, "\n")Secuencia 1: CACACCCTAGGGTTGGCCAATCTACTCCCAGGAGCAGGGAGGGCAGGAGCCAGGGCTGGGCATAAAAGTCAGGGCAGAGCCATCTATTGCTTACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTC---AAACAGACACCATGGTGCACCTGACTCCTGA-G--GAGAAGTCTGCCGT-TACTGCCCTGTGGGGCAAGGTGAACG--TGGATGAAGTTGGTGGTGAGGCCCTGGGCAGG-T--TGGTATCAAGGT-TAC-----AAGAC--AG-G----TTT-A-AG-----GAGACC--------------------------AATAG--AAACTG--GGC--ATGTGGAGACAGAGAA---GA---CT--CTT----G--GG--T---T--TCT--GA-----T-A--GGCAC---TG--A--CTC--T---CTC---TG---C---CT--AT-TGGTCTATTTTCCC-----ACCCTT-AGGCT-----GC----TG---GTG---GT-CT-----ACC--CTTGGACCCAGAGG-TT---------CTTTG---AG--T-CCTT--------TGG-GGATCTG---T--CCACT--CCTGATGCT-----GT-----TATGGGCAAC-------CCTAAG---------GTGAAGGCTCA-TGG-----------CAAGAAAG----TGCTC-G--GT--GC-------------C-TTT---AGTGATGGCCTGGCTC--ACCTGGACAACCTCA-----AGGGCACCTTTGCCA---CACTG-A--G-TG
cat("Secuencia 2:", aligned_seq2, "\n")Secuencia 2: CACA---T----TTG-C---T-T-CT-----GA---------------------------CATA---GT------------------TG--------TG-TT--GAC----------TCAC----AACC-CCAGAAACAGACATCATGGTGCACCTGACT---GATGCTGAGAAGGCTGCTGTCT-CTGGCCTGTGGGGAAAGGTGAACGCC--GATGAAGTTGGTGGTGAGGCCCTGGGCAGGCTGCTGGT-T----GTCTACCCTTG--GACCCAGCGGTACTTTGATAGCTTTGGAGACCTATCCTCTGCCTCTGCTATCATGGGTAAT-GCCAAAGTGAAGGCCCATG-G----CA-AGAAAGTGATAACTGCCTTTAACGATGGCCTGAATCA-CTTGGACAGCCTCAAGGGCACCTTTGCCAGCCTCAGTGAGCTCCACTGTGACAAGCTGCATGTGG---AT----CCTGAGAAC--TTCAGGCTCCTGGGCAATATGATCGTGATTGTGCTGGGCCACCACCTGGG---CA-AGGATTTCACCCCCGCT--GCACAGGCTGCCTTCCAGAAGGTGGTGG--CTGGAGTGGCCGCTGCCCTG--GCTCACAAGTACCACTA-----AACCCCCTTTCCT--GCTCTTGCCTGTGAA----CAATGGTTAATTGTTCCCAAGAGAGCATCTG-TCAGTTGTTGGCAAAATGATAAAGACATTTGAAA---AT---CTG--TCTT--CTG-ACAA----ATAAAAAG--CA--TTT---ATTTCACTGCAATGATG
Interpretación:
El resultado que obtuvimos, es la salida de un alineamiento global generado con pairwiseAlignment en R. A continuación, se explica cada parte del resultado y cómo interpretarlo:
1. Tipo de Alineamiento
Global PairwiseAlignmentsSingleSubject:
Indica que se realizó un alineamiento global.
- Un alineamiento global compara toda la longitud de las secuencias (inicio a fin), insertando espacios (gaps) donde sea necesario para maximizar la similitud.
SingleSubject: Señala que se está alineando una única secuencia de referencia (
pattern) con una secuencia objetivo (subject)
2. Secuencia de referencia y objetivo
pattern:Representa la secuencia de referencia o de entrada que quieres alinear.En este caso:
"ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAACAGACACCATGG...GGGCCTTGAGCATCTGGATTCTGCCTAATAAAAAACATTTATTTTCATTGCAA"Es la secuencia más completa, y el alineamiento tratará de ajustarla con la otra secuencia (
subject).subject:Representa la secuencia objetivo que quieres alinear con el patrón."A----TG--------------GTG--CAC-------CT------GAC----TG-...----------------------------------------------------A"Contiene gaps (
-) que fueron insertados por el algoritmo para maximizar la similitud con el patrón.
4. Gaps en la secuencia de referencia
Los gaps (-) en la secuencia subject indican que el algoritmo insertó espacios en blanco para maximizar la alineación. Por ejemplo:
También puedes descargar directamente las secuencias de NCBI con el codigo de acceso.
pattern: ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAACAGACACCATGG subject: A—-TG————–GTG–CAC——-CT——GAC—-TG-
Cómo interpretar los gaps:
Los gaps pueden representar:
Inserciones o eliminaciones (indels) en la evolución entre las dos secuencias.
Errores o variaciones naturales entre especies relacionadas.
Ejemplo en la biología:
- Si el la secuencia de referencia es un gen humano y el objetivo un gen de ratón, los gaps podrían deberse a variaciones evolutivas entre las dos especies.
Conclusión del Resultado
Similitud Genómica:
- El puntaje alto indica que las dos secuencias son similares, lo que sugiere una posible relación evolutiva o funcional.
Diferencias Locales:
- Los gaps y diferencias en la alineación resaltan variaciones, que podrían ser mutaciones, inserciones, o eliminaciones.
Aplicación:
Este análisis es útil para:
Identificar regiones conservadas entre genes de diferentes especies.
Detectar mutaciones específicas en estudios clínicos o genéticos.
Realizar anotaciones funcionales y filogenéticas.
Uso del Paquete msa
- ¿Qué es
msa? El paquetemsa(Multiple Sequence Alignment) permite realizar alineamientos múltiples utilizando algoritmos como ClustalW, ClustalOmega y Muscle.
El paquete msa (Multiple Sequence Alignment) en R está diseñado para realizar alineamientos múltiples de secuencias, una tarea fundamental en bioinformática para identificar regiones conservadas entre múltiples genes o proteínas. Este paquete es compatible con algoritmos de alineamiento ampliamente utilizados, como ClustalW, ClustalOmega, y Muscle.
Principales Funciones:
msa: Realiza alineamientos múltiples de secuencias.DNAStringSet: Conjunto de secuencias que se pueden alinear.
Instalación y Carga del Paquete
Para usar msa, es necesario instalar el paquete desde Bioconductor:
#if (!requireNamespace("BiocManager", quietly = TRUE)) {
# install.packages("BiocManager")
BiocManager::install("msa")Bioconductor version 3.20 (BiocManager 1.30.25), R 4.4.2 (2024-10-31 ucrt)
Warning: package(s) not installed when version(s) same as or greater than current; use
`force = TRUE` to re-install: 'msa'
Installation paths not writeable, unable to update packages
path: C:/Program Files/R/R-4.4.2/library
packages:
class, cluster, foreign, KernSmooth, MASS, nnet, rpart, spatial, survival
Old packages: 'lme4', 'Rcpp', 'testthat', 'xfun'
library(msa)
Adjuntando el paquete: 'msa'
The following object is masked from 'package:BiocManager':
version
Principales Funciones de msa
msa:Realiza el alineamiento múltiple de secuencias.
Es compatible con varios métodos de alineamiento, como ClustalW, ClustalOmega, y Muscle.
Parámetros importantes:
x: Un objeto que contiene las secuencias a alinear (puede ser unDNAStringSet,RNAStringSet, oAAStringSet).method: El método de alineamiento (por defecto,"ClustalW").order: Define el orden de salida de las secuencias, por ejemplo,"input"para mantener el orden original.
msaConsensusSequence:- Genera la secuencia de consenso, que representa las bases o residuos más comunes en cada posición del alineamiento.
msaPrettyPrint:- Crea una representación gráfica del alineamiento en formato PDF o TEX.
Ejemplo Práctico con msa
En este ejemplo, realizaremos un alineamiento múltiple de tres secuencias de ADN relacionadas.
# Crear un conjunto de secuencias de ADN
seqs <- DNAStringSet(c(
"ATGCGTACGTTAGC", # Secuencia 1
"ATGCGTACGTCGAC", # Secuencia 2
"ATGCGTACGCTAGC" # Secuencia 3
))
# Realizar el alineamiento múltiple utilizando ClustalW
alignment <- msa(seqs, method = "ClustalW")use default substitution matrix
# Imprimir el alineamiento
print(alignment)CLUSTAL 2.1
Call:
msa(seqs, method = "ClustalW")
MsaDNAMultipleAlignment with 3 rows and 14 columns
aln
[1] ATGCGTACGTTAGC
[2] ATGCGTACGCTAGC
[3] ATGCGTACGTCGAC
Con ATGCGTACGTTAGC
# Generar la secuencia de consenso
consensus <- msaConsensusSequence(alignment)
consensus[1] "ATGCGTACGTTAGC"
cat("Secuencia de consenso:", consensus, "\n")Secuencia de consenso: ATGCGTACGTTAGC
Resultados Esperados
Alineamiento: Las secuencias se mostrarán alineadas con gaps (
-) insertados donde sea necesario para maximizar la similitud.Alignment: Sequence1: ATGCGTACGTTAGC Sequence2: ATGCGTACGTCGAC Sequence3: ATGCGTACGCTAGCSecuencia de Consenso:
Secuencia de consenso: ATGCGTACGXTAGCLa “X” representa una posición en la que no hay un carácter mayoritario claro entre las secuencias (En caso de aparecer).
Explicación de cada elemento en el bloque de codigo anterior.
1. CLUSTAL 2.1:
Indica que el alineamiento se realizó utilizando ClustalW, una herramienta estándar para alineamientos múltiples de secuencias.
ClustalW asigna puntajes basados en similitudes entre pares de secuencias, considerando gaps y sustituciones.
2. Call: msa(seqs, method = "ClustalW"):
Muestra el comando utilizado para ejecutar el alineamiento.
seqs: El conjunto de secuencias de ADN proporcionadas como entrada.method = "ClustalW": Especifica que el método de alineamiento utilizado es ClustalW.
3. MsaDNAMultipleAlignment with 3 rows and 14 columns:
3 rows:Se alinearon tres secuencias en total.
Cada fila corresponde a una secuencia del conjunto de entrada.
14 columns:Indica la longitud del alineamiento después de insertar gaps.
En este caso, cada secuencia tiene 14 bases alineadas sin gaps.
4. aln:
Es el objeto de alineamiento resultante.
Cada secuencia alineada se muestra con gaps o espacios si es necesario (aunque no hay gaps en este resultado).
Interpretación del Alineamiento
Alineamiento por filas:
[1] ATGCGTACGTTAGC [2] ATGCGTACGCTAGC [3] ATGCGTACGTCGACCada fila representa una secuencia alineada:
[1]: Primera secuencia (ATGCGTACGTTAGC).
[2]: Segunda secuencia (ATGCGTACGCTAGC).
[3]: Tercera secuencia (ATGCGTACGTCGAC).
En este resultado, no hay gaps insertados porque las secuencias tienen longitudes iguales y las diferencias son menores.
Comparación Base a Base:
Las secuencias muestran coincidencias significativas, pero hay diferencias localizadas:
Entre [1] y [2]: Diferencia en la posición 10:
TvsC.Entre [1] y [3]: Diferencias en las posiciones 10 y 12:
TvsCyAvsG.
Estas diferencias pueden indicar mutaciones o variaciones genéticas específicas.
Secuencia de Consenso
Con ATGCGTACGTTAGC:
La secuencia de consenso generada es idéntica a la primera secuencia (
[1]), lo que sugiere que tiene la mayor similitud con las demás.Consenso: Representa las bases más comunes en cada posición del alineamiento.
Conclusión del Alineamiento
Similitud General:
Las secuencias están altamente relacionadas, con pocas diferencias.
Esto podría indicar que provienen de genes homólogos o variantes dentro de una misma familia genómica.
Diferencias Locales:
Las diferencias puntuales observadas pueden reflejar:
Mutaciones naturales.
Variaciones evolutivas entre especies.
Aplicación Biológica:
- Este tipo de alineamiento es útil para identificar regiones conservadas y estudiar la relación evolutiva entre las secuencias.
Pasos Siguientes
Visualización: Usa
msaPrettyPrintpara exportar un archivo visual (e.g., PDF) del alineamiento.msaPrettyPrint(alignment, file = "alignment_visual.pdf", output = "pdf")library(msa) #msaPrettyPrint(alignment, file = "alignment_visual.pdf", output = "pdf")Análisis de Regiones Conservadas:
Identifica regiones conservadas para buscar posibles motivos funcionales.
Usa herramientas adicionales para explorar diferencias entre las secuencias.
Construcción de Árbol Filogenético:
- Utiliza el alineamiento para inferir relaciones evolutivas entre las secuencias con herramientas como
apeen R.
- Utiliza el alineamiento para inferir relaciones evolutivas entre las secuencias con herramientas como
Alineamiento Múltiple de Secuencias desde NCBI
Este ejemplo muestra cómo descargar secuencias de NCBI usando sus códigos de acceso, alinearlas con ClustalW utilizando el paquete msa, y analizar los resultados.
Paso 1: Instalación y Configuración de Paquetes
Asegúrate de tener los paquetes necesarios instalados:
# Instalar paquetes si no están disponibles
#if (!requireNamespace("BiocManager", quietly = TRUE)) {
# install.packages("BiocManager")
#}
#BiocManager::install(c("rentrez", "msa", "Biostrings"))
library(rentrez)
library(msa)
library(Biostrings)Alineamiento Múltiple con Secuencias del hMPV
El Metaneumovirus Humano (hMPV) es un virus respiratorio que pertenece a la familia Pneumoviridae, similar al Virus Sincitial Respiratorio (RSV). Es una de las principales causas de infecciones del tracto respiratorio en humanos, especialmente en niños, ancianos y personas inmunocomprometidas.
Características:
Fue identificado por primera vez en 2001.
Su genoma es un ARN monocatenario negativo.
Causa enfermedades respiratorias leves a graves, incluyendo bronquiolitis, neumonía, y exacerbaciones asmáticas (N Shafagati et al.).
Zoonosis y Relación con Especies No Humanas:
Existen metaneumovirus relacionados en aves y otros mamíferos, conocidos como AMPV (Avian Metapneumovirus).
Se cree que el hMPV tiene un origen zoonótico, evolucionando a partir de cepas aviares (ST Jesse et al.).
Comparaciones:
- Modelos animales, como primates no humanos y pequeños roedores, han demostrado similitudes y diferencias en la patogénesis del hMPV y sus homólogos no humanos (J Papenburg et al.).
Para descargar las secuencias de la proteína F de fusión del metapneumovirus humano (hMPV) y sus variantes en otras especies, puedes acceder a los siguientes enlaces en NCBI:
Enlaces a las Secuencias
Proteína de Fusión hMPV (humano):
Página: Gene ID: 37626966
Descarga: Archivo FASTA
Proteína de Fusión AMPV Tipo A (aviar):
Página: Gen: JN224984.1
Descarga: Archivo FASTA
Proteína de Fusión AMPV Tipo B (aviar):
Página: Gen: JN224985
Descarga: Archivo FASTA
Proteína de Fusión AMPV Tipo C (aviar):
Página: Gen: MW821345.1
Descarga: Archivo FASTA
Resultados
El código descargará los archivos FASTA correspondientes a las secuencias de proteínas F y los guardará en tu directorio de trabajo con los nombres:
hMPV_fusion_protein.fastaAMPV_typeA_fusion_protein.fastaAMPV_typeB_fusion_protein.fastaAMPV_typeC_fusion_protein.fasta
Para guardar estas secuencias en archivos FASTA en tu directorio de trabajo, puedes utilizar el siguiente código en R:
urls: Es un vector de cadenas de texto que contiene las URLs de las secuencias FASTA de NCB
file_names: Vector de cadenas de texto que contiene los nombres de los archivos donde se guardarán las secuencias descargadas.
for (i in seq_along(urls)): Itera sobre los índices de las URLs y nombres de archivos.seq_along(urls)genera una secuencia de índices del vectorurls.urls[i]yfile_names[i]: Selecciona la URL correspondiente y el nombre del archivo donde se guardará la secuencia.
download.file: Descarga la secuencia desde la URL y la guarda como un archivo local.cat: Imprime un mensaje en la consola confirmando que la secuencia fue descargada y guardada.
# URLs actualizadas de las secuencias
urls <- c(
"https://www.ncbi.nlm.nih.gov/search/api/download-sequence/?db=nuccore&id=AY145294.1&rettype=fasta",
"https://www.ncbi.nlm.nih.gov/search/api/download-sequence/?db=nuccore&id=JN224984.1&rettype=fasta",
"https://www.ncbi.nlm.nih.gov/search/api/download-sequence/?db=nuccore&id=JN224985&rettype=fasta",
"https://www.ncbi.nlm.nih.gov/search/api/download-sequence/?db=nuccore&id=MW821345.1&rettype=fasta"
)
# Nombres de los archivos FASTA
file_names <- c(
"hMPV_fusion_protein.fasta",
"AMPV_typeA_fusion_protein.fasta",
"AMPV_typeB_fusion_protein.fasta",
"AMPV_typeC_fusion_protein.fasta"
)
# Descargar y guardar las secuencias
for (i in seq_along(urls)) {
download.file(urls[i], file_names[i])
cat("Secuencia descargada y guardada en:", file_names[i], "\n")
}Secuencia descargada y guardada en: hMPV_fusion_protein.fasta
Secuencia descargada y guardada en: AMPV_typeA_fusion_protein.fasta
Secuencia descargada y guardada en: AMPV_typeB_fusion_protein.fasta
Secuencia descargada y guardada en: AMPV_typeC_fusion_protein.fasta
Siguientes Pasos
Verifica los archivos descargados para asegurarte de que las secuencias sean correctas.
Carga y analiza las secuencias utilizando herramientas como el paquete
msapara realizar alineamientos múltiples y determinar regiones conservadas.
Paso 2: Cargar las Secuencias y
Paso 3: Realizar el Alineamiento Múltiple
Funciones:
msa: Herramienta para alineamientos múltiples de secuencias.Biostrings: Biblioteca para manipulación de secuencias biológicas en R.ape: Paquete para análisis filogenéticos.readDNAStringSet: Lee un archivo FASTA y lo convierte en un objetoDNAStringSetque contiene las secuencias.
c(...): Combina las secuencias leídas en un único objetoDNAStringSet.print(seqs): Imprime las secuencias cargadas en la consola.
Cada secuencia tiene:
width: Longitud de la secuencia en nucleótidos.seq: Las bases nucleotídicas (representadas parcialmente para ahorrar espacio).names: El identificador de la secuencia, derivado del encabezado del archivo FASTA.
msa: Realiza el alineamiento múltiple.
method = "ClustalW": Especifica el algoritmo usado (ClustalW en este caso).
# Cargar los paquetes necesarios
#if (!requireNamespace("BiocManager", quietly = TRUE)) {
# install.packages("BiocManager")
#}
#BiocManager::install(c("msa", "Biostrings", "ape"))
library(msa)
library(Biostrings)
library(ape)
Adjuntando el paquete: 'ape'
The following object is masked from 'package:Biostrings':
complement
# Leer las secuencias FASTA descargadas
seqs <- DNAStringSet(c(
readDNAStringSet("hMPV_fusion_protein.fasta"),
readDNAStringSet("AMPV_typeA_fusion_protein.fasta"),
readDNAStringSet("AMPV_typeB_fusion_protein.fasta"),
readDNAStringSet("AMPV_typeC_fusion_protein.fasta")
))
# Imprimir las secuencias cargadas
print(seqs)DNAStringSet object of length 4:
width seq names
[1] 1620 ATGTCTTGGAAAGTGGTGATCAT...ATGGCTTCATACCACATAATTAG AY145294.1 Human ...
[2] 1617 ATGGATGTAAGAATCTGTCTCCT...GCAGCATGGCTTATGTGAGTTAA JN224984.1 Avian ...
[3] 1617 ATGTACCTCAAACTGCTACTAAT...GCAACATGGGGTACATCAGTTAA JN224985.1 Avian ...
[4] 1614 ATGTCTTGGAAAGTGGTACTGCT...ACAACAAAGGATTTATCCCTTAA MW821345.1 Avian ...
# Realizar el alineamiento múltiple
alignment <- msa(seqs, method = "ClustalW")use default substitution matrix
# Mostrar el alineamiento en la consola
print(alignment, show = "complete")
MsaDNAMultipleAlignment with 4 rows and 1623 columns
aln (1..54) names
[1] ATGTCTTGGAAAGTGGTGATCATTTTTTCATTGTTAATAACACCTCAACACGGT AY145294.1 Human ...
[2] ATGTCTTGGAAAGTGGTACTGCTACTGGTGTTGCTAGCCACCCCAACAGGGGGG MW821345.1 Avian ...
[3] ATGGATGTAAGAATCTGTCTCCTATTGTTCCTTATATCTAATCCTAGTAGCTGC JN224984.1 Avian ...
[4] ATGTACCTCAAACTGCTACTAATAATTTATTTGGTGGTCGGGGCCAGTGGGAAG JN224985.1 Avian ...
Con ATGT?TT?GAAAGTGGTACTC?TATT?TT?TTG?TAG?CAC?CCTAG?GG?GGG Consensus
aln (55..108) names
[1] CTTAAAGAGAGCTATTTAGAAGAGTCATGTAGCACTATAACTGAAGGATATCTC AY145294.1 Human ...
[2] CTAGAAGAAAGTTACCTGGAAGAGTCATGCAGTACTGTTACTAGAGGATATCTG MW821345.1 Avian ...
[3] ATACAAGAAACATACAATGAAGAATCCTGCAGTACTGTAACTAGGGGTTATAAG JN224984.1 Avian ...
[4] ATACAAGAAACTTACAGTGAAGAATCATGCAGCACTGTAACCAGGGGTTACAAA JN224985.1 Avian ...
Con ?TACAAGAAA?TTACATTGAAGA?TCATGCAG?ACTGTAACTAG?GG?TAT??G Consensus
aln (109..162) names
[1] AGTGTTCTGAGGACAGGTTGGTATACCAACGTTTTTACACTGGAGGTAGGTGAT AY145294.1 Human ...
[2] AGTGTTTTGAGGACAGGGTGGTATACAAATGTGTTTACACTTGAGGTTGGAGAT MW821345.1 Avian ...
[3] AGTGTGTTAAGGACAGGGTGGTATACGAATGTATTTAACCTCGAAATAGGGAAT JN224984.1 Avian ...
[4] AGTGTGCTCAGAACGGGTTGGTATACAAATGTGTTCAACCTAAAAATAGGGAAT JN224985.1 Avian ...
Con AGTGT??TGAGGACAGG?TGGTATACAAATGTGTTTA??CT?GA??TAGGG?AT Consensus
aln (163..216) names
[1] GTAGAGAACCTTACATGTGCTGATGGACCTAGCTTAATAAAAACAGAATTAGAC AY145294.1 Human ...
[2] GTGGAAAATCTCACATGTACTGACGGACCCAGCTTAATAAGAACAGAACTTGAA MW821345.1 Avian ...
[3] GTTGAGAACATCACTTGCAATGATGGACCCAGCCTAATTGACACTGAGTTAGTA JN224984.1 Avian ...
[4] GTGGAGAACATAACATGTAATGATGGTCCTAGCCTTATCAGCACTGAATTGTCA JN224985.1 Avian ...
Con GTGGAGAAC?TCACATGTA?TGATGGACC?AGC?TAATAA??AC?GAATTAGAA Consensus
aln (217..270) names
[1] CTGACCAAAAGTGCACTAAGAGAGCTCAGAACAGTTTCTGCTGATCAACTGGCA AY145294.1 Human ...
[2] CTGACAAAAAATGCACTTGAGGAACTCAAGACAGTATCAGCAGATCAATTGGCA MW821345.1 Avian ...
[3] CTCACAAAGAATGCTTTGAGGGAGCTCAAAACAGTGTCAGCTGATCAAGTGGCT JN224984.1 Avian ...
[4] CTAACTCAGAATGCCTTGCAGGAGCTTAGAACTGTTTCTGCCGATCAGATTACA JN224985.1 Avian ...
Con CTGACAAA?AATGCA?TGA?GGAGCTCA?AACAGTTTC?GCTGATCAA?TGGCA Consensus
aln (271..324) names
[1] AGAGAGGAGCAAATTGAGAATCCCAGACAATCTAGATTTGTTCTAGGAGCAATA AY145294.1 Human ...
[2] AAGGAAGCTAGGATAATGTCACCAAGAAAAGCCCGGTTTGTTCTGGGTGCCATA MW821345.1 Avian ...
[3] AAGGAAAGCAGACTATCCTCACCCAGGAGACGTAGATTTGTACTGGGTGCAATT JN224984.1 Avian ...
[4] AAGGAGAATCGAATCCTTTCCCATAGGAAGAAGAGGTTTGTGTTGGGTGCAATT JN224985.1 Avian ...
Con AAGGA??AT?GAATA?TGTCACCCAG?AAA?CTAG?TTTGTTCTGGGTGCAAT? Consensus
aln (325..378) names
[1] GCACTCGGTGTTGCAACAGCAGCTGCAGTTACAGCAGGTGTTGCAATTGCCAAA AY145294.1 Human ...
[2] GCACTAGGTGTGGCAACTGCCGCTGCAGTAACAGCCGGTGTAGCAGTAGCCAAG MW821345.1 Avian ...
[3] GCACTTGGTGTTGCGACAGCTGCTGCCGTAACAGCTGGTGTAGCACTTGCAAAG JN224984.1 Avian ...
[4] GCCCTTGGAGTGGCCACCACAGCTGCTGTAACAGCCGGCGTAGCTTTAGCTAAA JN224985.1 Avian ...
Con GCACTTGGTGT?GCAACAGCAGCTGCAGTAACAGCCGGTGTAGCA?T?GCCAA? Consensus
aln (379..432) names
[1] ACCATCCGGCTTGAAAGTGAAGTAACAGCAATTAAGAATGCCCTCAAAAAGACC AY145294.1 Human ...
[2] ACAATTAGGCTGGAAGGAGAAGTGGCTGCAATCAAGGGTGCTCTCAAGAAAACA MW821345.1 Avian ...
[3] ACAATTAGATTAGAGGGAGAGGTGAAGGCAATTAAGAATGCCCTCCGGAACACA JN224984.1 Avian ...
[4] ACAATAAGATTAGAAGGGGAGGTGAAAGCCATCAAGCTAGCTTTGCGCAGTACA JN224985.1 Avian ...
Con ACAATTAG??TAGAAGGAGA?GTGA?AGCAAT?AAGAATGC?CTC??GAA?ACA Consensus
aln (433..486) names
[1] AATGAAGCAGTATCTACATTGGGGAATGGAGTTCGAGTGTTGGCAACTGCAGTG AY145294.1 Human ...
[2] AATGAGGCTGTATCTACATTAGGAAATGGTGTGAGAGTACTGGCAACAGCTGCG MW821345.1 Avian ...
[3] AATGAGGCAGTATCCACATTAGGGAATGGTGTGAGGGTACTAGCAACTGCAGTC JN224984.1 Avian ...
[4] AATGAGGCTGTGTCCACATTAGGCAATGGCGTTCGCATCTTGGCAACAGCTGTT JN224985.1 Avian ...
Con AATGAGGC?GTATC?ACATTAGGGAATGGTGT??GAGTA?TGGCAAC?GC?GTG Consensus
aln (487..540) names
[1] AGGGAGCTGAAAGATTTTGTGAGCAAGAATCTAACACGTGCAATCAACAAAAAC AY145294.1 Human ...
[2] AATGATCTCAAGGACTTTATAAGTAAAAAATTGACACCTGCAATAAACAAGAAC MW821345.1 Avian ...
[3] AATGACCTCAAAGAATTTATAAGTAAAAAATTGACTCCTGCTATTAACCAGAAC JN224984.1 Avian ...
[4] AATGACCTAAAAGAATTTATAAGCAAGAAATTAACCCCTGCAATAAACCAAAAC JN224985.1 Avian ...
Con AATGACCTCAAAGAATTTATAAG?AA?AAATT?ACACCTGCAATAAAC?A?AAC Consensus
aln (541..594) names
[1] AAGTGCGACATTGCTGACCTGAAAATGGCCGTTAGCTTCAGTCAATTCAACAGA AY145294.1 Human ...
[2] AAGTGCGACATTTCAGACCTTAAAATGGCAGTAAGCTTCGGACAAAACAATCGA MW821345.1 Avian ...
[3] AAATGCAATATAGCAGATATAAAGATGGCAATTAGTTTTGGCCAAAATAACAGA JN224984.1 Avian ...
[4] AAATGCAACATAGCAGACATAAGGATGGCAATCAGCTTTGGACAGAACAACAGA JN224985.1 Avian ...
Con AA?TGC?ACAT?GCAGAC?TAAA?ATGGCA?TTAGCTT?GGACAAAACAACAGA Consensus
aln (595..648) names
[1] AGGTTTCTAAATGTTGTGCGGCAATTTTCAGACAATGCTGGAATAACACCAGCA AY145294.1 Human ...
[2] AGATTCCTCAATGTGGTGAGACAGTTTTCTGACAATGCAGGTATTACACCTGCA MW821345.1 Avian ...
[3] AGGTTCCTGAATGTGGTGAGGCAATTCTCTGATAGTGCAGGTATCACATCAGCT JN224984.1 Avian ...
[4] AGGTTTCTAAATGTGGTGAGACAATTTTCTGACAGTGCAGGAATAACTTCCGCA JN224985.1 Avian ...
Con AGGTT?CTAAATGTGGTGAG?CAATTTTCTGACA?TGCAGG?ATAACA?CAGCA Consensus
aln (649..702) names
[1] ATATCCTTGGACTTAATGACAGATGCTGAACTAGCCAGAGCTGTTTCCAACATG AY145294.1 Human ...
[2] ATATCTCTAGATTTAATGACTGATGCTGAGCTTGTAAGAGCTGTGAACAACATG MW821345.1 Avian ...
[3] GTGTCTCTTGATTTAATGACAGATGATGAACTTGTTAGAGCAATTAACAGAATG JN224984.1 Avian ...
[4] GTGTCTTTAGATCTTATGACAGATGCAGAATTGGTTAAAGCCATCAACCGAATG JN224985.1 Avian ...
Con ?T?TCT?TAGATTTAATGACAGATGCTGAACTTGTTAGAGCT?TTAACA??ATG Consensus
aln (703..756) names
[1] CCAACATCTGCAGGACAAATAAAACTGATGTTGGAGAACCGTGCAATGGTAAGA AY145294.1 Human ...
[2] CCCACATCTTCAGGACAGATCAATCTGATGCTTGAGAATCGGGCAATGGTCAGA MW821345.1 Avian ...
[3] CCAACTTCATCAGGACAGATTAGTTTGATGTTGAACAATCGTGCCATGGTTAGA JN224984.1 Avian ...
[4] CCAACTTCGTCTGGTCAGATTAGCCTCATGCTGAACAATAGAGCAATGGTTAGG JN224985.1 Avian ...
Con CCAAC?TCTTCAGGACAGATTA?TCTGATG?TG?A?AATCGTGCAATGGTTAGA Consensus
aln (757..810) names
[1] AGAAAGGGGTTCGGAATCCTGATAGGAGTTTATGGAAGCTCCGTAATTTACATG AY145294.1 Human ...
[2] AGGAAAGGGTTTGGGATCTTGATTGGAGTTTATGGTAGTTCCGTGGTCTATATG MW821345.1 Avian ...
[3] AGGAAGGGGTTTGGTATATTGATTGGTGTTTATGATGGAACGGTCGTTTATATG JN224984.1 Avian ...
[4] AAGAAAGGGTTTGGAATACTTATAGGTGTTTACGGGGGGACTGTAGTGTATATG JN224985.1 Avian ...
Con AGGAA?GGGTTTGGAAT??TGAT?GG?GTTTATGGT?G??CCGTAGTTTATATG Consensus
aln (811..864) names
[1] GTGCAACTGCCAATCTTTGGGGTTATAGACACGCCTTGCTGGATAGTAAAAGCA AY145294.1 Human ...
[2] GTGCAGCTTCCTATTTTCGGTGTGATAGACACACCATGTTGGAAGGTGAAGGCT MW821345.1 Avian ...
[3] GTACAACTGCCCATATTCGGCGTGATTGAGACACCTTGTTGGAGGGTGGTGGCA JN224984.1 Avian ...
[4] GTGCAACTCCCAATATTTGGAGTTATAGAGACACCCTGCTGGAGAGTGGTAGCT JN224985.1 Avian ...
Con GTGCAACTGCCAATATT?GG?GT?ATAGA?ACACCTTG?TGGAG?GTG???GC? Consensus
aln (865..918) names
[1] GCCCCTTCTTGCTCAGGAAAAAAGGGAAACTATGCTTGCCTCTTAAGAGAAGAT AY145294.1 Human ...
[2] GCTCCATTATGTTCAGGGAAAGACGGGAGTTATGCATGTCTCTTGCGAGAGGAC MW821345.1 Avian ...
[3] GCACCACTCTGTAGGAAACGCCGCGGCAATTATGCTTGTATACTGAGAGAAGAT JN224984.1 Avian ...
[4] GCACCCCTCTGTAGACATGAGAGGGAGAGTTATGCTTGTCTGCTGCGGGAAGAT JN224985.1 Avian ...
Con GCACCA?TCTGT??AG?AAAAA??GGGA?TTATGCTTGTCTC?TG?GAGAAGAT Consensus
aln (919..972) names
[1] CAAGGATGGTATTGTCAGAATGCAGGGTCAACTGTTTACTACCCAAATGAAAAA AY145294.1 Human ...
[2] CAAGGCTGGTATTGTCAAAATGCTGGATCCACAGTTTATTACCCAAATGAAGAA MW821345.1 Avian ...
[3] CAAGGGTGGTACTGTACAAATGCTGGCTCTACAGCTTATTATCCTAATAAAGAT JN224984.1 Avian ...
[4] CAGGGGTGGTACTGCACTAATGCAGGATCAACTGCTTACTACCCAAATGAAGAT JN224985.1 Avian ...
Con CAAGGGTGGTA?TGT??AAATGC?GGATCAAC?G?TTA?TACCCAAATGAAGA? Consensus
aln (973..1026) names
[1] GACTGCGAAACAAGAGGAGACCATGTCTTTTGCGACACAGCAGCAGGAATCAAT AY145294.1 Human ...
[2] GACTGTGAAGTGAGAAGTGATCATGTGTTTTGTGACACAGCAGCTGGGATAAAT MW821345.1 Avian ...
[3] GATTGTGAGGTAAGGGATGATTATGTATTTTGTGACACAGCAGCTGGCATTAAT JN224984.1 Avian ...
[4] GACTGCGAGGTAAGAGATGACTATGTGTTCTGTGATACTGCAGCAGGTATAAAT JN224985.1 Avian ...
Con GACTG?GA?GTAAGAG?TGA??ATGTGTTTTGTGACACAGCAGC?GG?ATAAAT Consensus
aln (1027..1080) names
[1] GTTGCTGAGCAGTCAAAGGAGTGCAACATCAACATATCCACTACTAATTACCCA AY145294.1 Human ...
[2] GTAGCAAAGGAGTCAGAAGAGTGCAACAGAAACATCTCAACAACAAAGTACCCC MW821345.1 Avian ...
[3] GTGGCCCTAGAAGTTGACCAGTGCAACTATAACATATCGACTTCTAAATACCCA JN224984.1 Avian ...
[4] GTTGCATCAGAGGTGGAGCAGTGCAACCAAAACATATCAACCTCTACTTACCCT JN224985.1 Avian ...
Con GTTGCA?A?GAG??AGAG?AGTGCAACAAAAACATATCAACT?CTAATTACCCA Consensus
aln (1081..1134) names
[1] TGCAAAGTTAGCACAGGAAGACATCCTATCAGTATGGTTGCACTGTCTCCTCTT AY145294.1 Human ...
[2] TGCAAGGTAAGCACAGGGCGTCACCCAATAAGCATGGTAGCTTTATCACCACTG MW821345.1 Avian ...
[3] TGCAAAGTCAGCACAGGTAGACACCCTGTCAGTATGGTAGCCTTAACCCCCCTA JN224984.1 Avian ...
[4] TGCAAAGTTAGCACAGGGAGACACCCTGTAAGCATGGTAGCCTTAACCCCCTTG JN224985.1 Avian ...
Con TGCAAAGTTAGCACAGGGAGACACCCT?T?AG?ATGGTAGCCTTA?CCCCCCTG Consensus
aln (1135..1188) names
[1] GGGGCTTTGGTTGCTTGCTACAAGGGAGTGAGCTGTTCCATTGGCAGCAACAGA AY145294.1 Human ...
[2] GGTGCCTTGGTAGCCTGTTATGATGGGGTGAGTTGTTCCATTGGAAGCAACAAG MW821345.1 Avian ...
[3] GGGGGTCTAGTGTCTTGTTATGAGAGTGTAAGTTGCTCCATAGGTAGCAATAAA JN224984.1 Avian ...
[4] GGAGGTTTAGTATCATGTTATGAAGGTGTGAGTTGCTCCATTGGCAGCAACAAA JN224985.1 Avian ...
Con GGGG?TTT?GTA?CTTGTTATGAGGGTGTGAGTTG?TCCATTGGCAGCAACAAA Consensus
aln (1189..1242) names
[1] GTAGGGATCATCAAGCAACTGAACAAAGGCTGCTCTTATATAACCAACCAAGAT AY145294.1 Human ...
[2] GTTGGAATAATCAGACCTTTGGGGAAAGGGTGTTCATATATTAGCAATCAAGAC MW821345.1 Avian ...
[3] GTAGGGATAATAAAACAGCTAGGCAAAGGGTGCACCCACATTCCCAACAACGAA JN224984.1 Avian ...
[4] GTCGGGATCATTAAACAACTCAACAAAGGATGCACACACATACCCAATAATGAG JN224985.1 Avian ...
Con GTAGGGAT?ATCAAACAACTG??CAAAGGGTGC?CA?A?AT??CCAA??AAGA? Consensus
aln (1243..1296) names
[1] GCAGACACAGTGACAATAGACAACACTGTATACCAGCTAAGCAAAGTTGAGGGC AY145294.1 Human ...
[2] GCTGACACTGTTACAATTGACAACACAGTGTACCAATTGAGCAAAGTAGAGGGA MW821345.1 Avian ...
[3] GCTGACACGATAACCATTGATAACACTGTGTACCAATTGAGCAAGGTTGTAGGC JN224984.1 Avian ...
[4] GCAGACACAATAACTATAGACAACACAATTTATCAACTCAGCAAGGTGGTGGGT JN224985.1 Avian ...
Con GC?GACACA?TAACAAT?GACAACAC?GTGTACCAA?TGAGCAA?GTTG?GGGC Consensus
aln (1297..1350) names
[1] GAACAGCATGTTATAAAAGGAAGGCCAGTGTCAAGCAGCTTTGATCCAGTCAAG AY145294.1 Human ...
[2] GAACAACACACAATCAAAGGGAAGCCCGTATCTAGCAATTTTGACCCGATAGAG MW821345.1 Avian ...
[3] GAACAGAGGACCATAAAAGGAGCTCCAGTTGTGAACAATTTTAACCCAATATTA JN224984.1 Avian ...
[4] GAGCAAAGGACCATCAAAGGAGCTCCGGTGGTAAATAATTTCAACCCTCTACTG JN224985.1 Avian ...
Con GAACA???GACCAT?AAAGGA?C?CCAGTG??AA?CAATTTT?ACCCAATA??G Consensus
aln (1351..1404) names
[1] TTTCCTGAAGATCAATTCAATGTTGCACTTGACCAAGTTTTCGAGAGCATTGAG AY145294.1 Human ...
[2] TTTCCTGAAGACCAATTCAACATAGCCCTGGATCAAGTGTTTGAAAGTGTTGAG MW821345.1 Avian ...
[3] TTCCCTGTGGATCAGTTCAATGTTGCACTTGACCAAGTATTTGAGAGTATAGAT JN224984.1 Avian ...
[4] TTCCCTGAGGATCAATTTAACGTAGCCTTAGATCAAGTATTTGAGAGTGTTGAT JN224985.1 Avian ...
Con TT?CCTGA?GATCAATTCAA?GT?GC?CTTGA?CAAGTATTTGAGAGT?TTGA? Consensus
aln (1405..1458) names
[1] AACAGTCAGGCCTTGGTGGATCAATCAAACAGAATCCTAAGCAGTGCAGAGAAA AY145294.1 Human ...
[2] AAGAGCCAGAATCTGATAGACCAGTCAAACAAGATACTAGATAGCACTGAAAAG MW821345.1 Avian ...
[3] AGATCTCAGGACTTAATAGATAAGTCTAACGACTTGCTAGGTGCAGATGCCAAG JN224984.1 Avian ...
[4] AAATCAAAAGACCTGATTGACAAGTCTAATGACTTACTGGACATAGAGGTTAAG JN224985.1 Avian ...
Con AAA??TCAGGAC?TGATAGA??AGTC?AAC?AC?TACTAG??AGAG?TGA?AAG Consensus
aln (1459..1512) names
[1] GGAAACACTGGCTTCATCATTGTAAT---AATTCTAATTGCTGTCCTTGGCTCT AY145294.1 Human ...
[2] GGGAACGCAGGGTTTGTCATAGTGAT---AGTCCTCATTGTCCTGCTTATGCTA MW821345.1 Avian ...
[3] AGCAAGGCTGGAATTGCTATAGCAATAGTAGTGCTAGTCATTCTAGGAATCTTC JN224984.1 Avian ...
[4] AGTAATATAGGTGCTGCATTAGCCATCACAATTTTAGTAGTGCTTAGCATGTCA JN224985.1 Avian ...
Con ?G?AAC?C?GG?TTTG?CATAG?AAT---A?TTCTA?TTGTTCT?C?TAT?T?A Consensus
aln (1513..1566) names
[1] ACCATGATCCTAGTGAGTGTTTTTATCATAATAAAGAAAACAAAGAAACCCACA AY145294.1 Human ...
[2] GCTGCAGTTGGTGTGGGTATCTTCTTTGTGGTTAAGAAGAGGAAAGCTGCTCCC MW821345.1 Avian ...
[3] TTTTTACTTGCAGTGATATATTACTGTTCCAGAGTCCGGAAGACCAAACCAAAG JN224984.1 Avian ...
[4] ATCATAGTGGGCATAGCTTACTATGTGGTTAAAAAGAGGAAAGCCAAAGCATCC JN224985.1 Avian ...
Con A??ATAGTTGGAGTG?GTT??T??TTTGT?ATAAAGA?GAA?A?CAAA?CAACC Consensus
aln (1567..1620) names
[1] GGAGCACCTCCAGAGCTGAGTGGTGTCACAAACAATGGCTTCATACCACATAAT AY145294.1 Human ...
[2] AAATTCCCAATGGAAATGAATGGTGTGAACAACAAAGGATTTATCCCTTAA--- MW821345.1 Avian ...
[3] CATGATTACCCGGCCACGACAGGTCACAGCAGCATGGCTTATGTGAGTTAA--- JN224984.1 Avian ...
[4] AATGGATATCCTAAAACAACAGGGCAAAGCAACATGGGGTACATCAGTTAA--- JN224985.1 Avian ...
Con AA?G?A??TCCGGAAA?GAC?GGT??CAGCAACA?GGG?T??ATC??TTAA--- Consensus
aln (1621..1623) names
[1] TAG AY145294.1 Human ...
[2] --- MW821345.1 Avian ...
[3] --- JN224984.1 Avian ...
[4] --- JN224985.1 Avian ...
Con --- Consensus
# Mostrar los sitios conservados con logotipo directamente en R
consensusLogo <- msaConsensusSequence(alignment)
cat("Secuencia de consenso:\n", consensusLogo, "\n")Secuencia de consenso:
ATGT?TT?GAAAGTGGTACTC?TATT?TT?TTG?TAG?CAC?CCTAG?GG?GGG?TACAAGAAA?TTACATTGAAGA?TCATGCAG?ACTGTAACTAG?GG?TAT??GAGTGT??TGAGGACAGG?TGGTATACAAATGTGTTTA??CT?GA??TAGGG?ATGTGGAGAAC?TCACATGTA?TGATGGACC?AGC?TAATAA??AC?GAATTAGAACTGACAAA?AATGCA?TGA?GGAGCTCA?AACAGTTTC?GCTGATCAA?TGGCAAAGGA??AT?GAATA?TGTCACCCAG?AAA?CTAG?TTTGTTCTGGGTGCAAT?GCACTTGGTGT?GCAACAGCAGCTGCAGTAACAGCCGGTGTAGCA?T?GCCAA?ACAATTAG??TAGAAGGAGA?GTGA?AGCAAT?AAGAATGC?CTC??GAA?ACAAATGAGGC?GTATC?ACATTAGGGAATGGTGT??GAGTA?TGGCAAC?GC?GTGAATGACCTCAAAGAATTTATAAG?AA?AAATT?ACACCTGCAATAAAC?A?AACAA?TGC?ACAT?GCAGAC?TAAA?ATGGCA?TTAGCTT?GGACAAAACAACAGAAGGTT?CTAAATGTGGTGAG?CAATTTTCTGACA?TGCAGG?ATAACA?CAGCA?T?TCT?TAGATTTAATGACAGATGCTGAACTTGTTAGAGCT?TTAACA??ATGCCAAC?TCTTCAGGACAGATTA?TCTGATG?TG?A?AATCGTGCAATGGTTAGAAGGAA?GGGTTTGGAAT??TGAT?GG?GTTTATGGT?G??CCGTAGTTTATATGGTGCAACTGCCAATATT?GG?GT?ATAGA?ACACCTTG?TGGAG?GTG???GC?GCACCA?TCTGT??AG?AAAAA??GGGA?TTATGCTTGTCTC?TG?GAGAAGATCAAGGGTGGTA?TGT??AAATGC?GGATCAAC?G?TTA?TACCCAAATGAAGA?GACTG?GA?GTAAGAG?TGA??ATGTGTTTTGTGACACAGCAGC?GG?ATAAATGTTGCA?A?GAG??AGAG?AGTGCAACAAAAACATATCAACT?CTAATTACCCATGCAAAGTTAGCACAGGGAGACACCCT?T?AG?ATGGTAGCCTTA?CCCCCCTGGGGG?TTT?GTA?CTTGTTATGAGGGTGTGAGTTG?TCCATTGGCAGCAACAAAGTAGGGAT?ATCAAACAACTG??CAAAGGGTGC?CA?A?AT??CCAA??AAGA?GC?GACACA?TAACAAT?GACAACAC?GTGTACCAA?TGAGCAA?GTTG?GGGCGAACA???GACCAT?AAAGGA?C?CCAGTG??AA?CAATTTT?ACCCAATA??GTT?CCTGA?GATCAATTCAA?GT?GC?CTTGA?CAAGTATTTGAGAGT?TTGA?AAA??TCAGGAC?TGATAGA??AGTC?AAC?AC?TACTAG??AGAG?TGA?AAG?G?AAC?C?GG?TTTG?CATAG?AAT---A?TTCTA?TTGTTCT?C?TAT?T?AA??ATAGTTGGAGTG?GTT??T??TTTGT?ATAAAGA?GAA?A?CAAA?CAACCAA?G?A??TCCGGAAA?GAC?GGT??CAGCAACA?GGG?T??ATC??TTAA------
Resultados:
width: Longitudes de las secuencias (1620, 1617, 1617, 1614 nucleótidos respectivamente).
seq: Las secuencias nucleotídicas truncadas para presentación.names: Identificadores de las secuencias:AY145294.1: Secuencia del metaneumovirus humano.
JN224984.1, JN224985.1, MW821345.1: Secuencias de metaneumovirus aviar (tipos A, B, y
Alineamiento Múltiple en Consola:
Muestra las secuencias alineadas, con gaps (
-) insertados para mantener las correspondencias.Sitios conservados son identificables por la alineación perfecta entre secuencias.
Secuencia de Consenso:
Resalta los nucleótidos más frecuentes en cada posición.
Usa símbolos como
?para indicar variabilidad en posiciones específicas.
Para visualizar directamente el alineamiento en la consola utilizando msaPrettyPrint, puedes usar el siguiente código ajustado para destacar regiones específicas o el alineamiento completo, según tus necesidades.
Código para Visualizar Alineamiento en R Usando msaPrettyPrint
y para exportar el alineamiento como un archivo PDF:
# Visualizar el alineamiento en la consola con msaPrettyPrint
#msaPrettyPrint(
# alignment,
#file = "alignment_visual2.pdf",# El objeto de alineamiento generado por msa() # Mostrar el alineamiento completo. Para un rango, usa c(inicio, fin)
#output = "pdf", # Salida directa en la consola
#showNames = "none", # Mostrar los nombres de las secuencias a la izquierda
#showLogo = "none", # Mostrar el logotipo para resaltar la conservación
#askForOverwrite = FALSE # Evitar preguntas de confirmación
#)Opciones y Personalización
- Mostrar un Rango Específico del Alineamiento: Si deseas enfocarte en un rango específico del alineamiento (por ejemplo, posiciones 50 a 100):
#msaPrettyPrint(
#alignment,
#file = "alignment_visual3.pdf",
#y = c(50, 100), # Rango de posiciones del alineamiento
# output = "pdf",
#showNames = "left",
#showLogo = "top",
#shadingMode = "similar",
#shadingColors = "blues", # Cambiar el esquema de sombreado
#askForOverwrite = FALSE
#)Interpretación del Alineamiento
Con base en los alineamientos mostrados en los documentos cargados ( y ), se identifican las siguientes observaciones:
1. Conservación Global
Las regiones conservadas están marcadas por un símbolo
*, mientras que las similares están señaladas con!en las líneas de consenso.En el alineamiento, se observa un nivel moderado de conservación entre las secuencias humanas y no humanas:
Regiones como
ACGGTCTTAAAGAGAGCTATTTAGAAGAGTCATGTAGCACtienen una alta conservación en varias secuencias.Algunas posiciones muestran variabilidad significativa, lo que puede reflejar adaptaciones específicas en los distintos hospedadores.
2. Sitios Conservados y Variabilidad
Sitios de alta conservación incluyen aquellos marcados con
*en el alineamiento.Las regiones con marcadores
!indican similitudes moderadas, que podrían ser funcionalmente relevantes en algunos casos.
3. Logotipo de Conservación
En el logotipo de consenso, las alturas de las letras reflejan la conservación relativa de cada base en esa posición.
Por ejemplo, en el segmento
TAGTTAACCTGAAGAGG, las posiciones conTyAmuestran una alta conservación en todas las secuencias, mientras que otras bases tienen más variabilidad.
Métodos de Alineamiento Múltiple de Secuencias: ClustalW, ClustalOmega, y MUSCLE
El alineamiento múltiple de secuencias (MSA, por sus siglas en inglés) es un método esencial en bioinformática para comparar múltiples secuencias y encontrar regiones conservadas. A continuación, se describen tres métodos populares: ClustalW, ClustalOmega, y MUSCLE, incluyendo sus características y casos de uso.
1. ClustalW
Descripción:
Es uno de los algoritmos clásicos para el alineamiento múltiple. Utiliza un enfoque progresivo basado en un árbol guía.
El nombre “W” proviene de la ponderación (“weighting”) aplicada a las secuencias para corregir sesgos evolutivos.
Funcionamiento:
Realiza primero alineamientos por pares para construir una matriz de distancias.
Crea un árbol filogenético (árbol guía) a partir de la matriz.
Usa el árbol para alinear secuencias de manera progresiva.
Ventajas:
- Rápido y eficiente para conjuntos de datos pequeños y moderados.
Limitaciones:
Sensible a errores en la construcción del árbol guía.
Menos preciso que algoritmos modernos para grandes conjuntos de datos o secuencias muy divergentes.
Referencia: Eskioğlu et al., 2024
2. ClustalOmega
Descripción:
Versión moderna de ClustalW diseñada para manejar un gran número de secuencias y mejorar la precisión del alineamiento.
Combina enfoques progresivos con estrategias de perfiles iterativos.
Funcionamiento:
Retiene el enfoque progresivo de ClustalW pero optimiza los cálculos de distancia y perfiles para mejorar la escalabilidad.
Es capaz de manejar miles de secuencias simultáneamente.
Ventajas:
Ideal para grandes conjuntos de datos (> 10,000 secuencias).
Más preciso que ClustalW en la mayoría de los casos.
Limitaciones:
- Requiere más tiempo y recursos computacionales.
Referencia: Sievers & Higgins, 2021
3. MUSCLE
Descripción:
Acrónimo de Multiple Use for Sequence Comparison by Log-Expectation.
Diseñado para ser rápido y preciso, especialmente en conjuntos de datos moderados.
Funcionamiento:
Utiliza un enfoque iterativo para optimizar los alineamientos, mejorando tanto la velocidad como la precisión.
No depende de un árbol guía estático, lo que reduce los errores asociados.
Ventajas:
Excelente precisión en comparación con ClustalW.
Rápido para secuencias con identidad moderada a baja.
Limitaciones:
- Menos eficiente que ClustalOmega para datos muy grandes.
Referencia: Pais et al., 2014
Paso 4: Generar un Árbol Filogenético
- Carga la librería
seqinr, que contiene funciones para análisis filogenéticos y de secuencias.
Uso:
- Proporciona herramientas como
dist.alignmentpara calcular matrices de distancia a partir de un alineamiento.
- Proporciona herramientas como
msaConvert:- Convierte el objeto de alineamiento múltiple generado por
msaen diferentes formatos compatibles con otras librerías.
- Convierte el objeto de alineamiento múltiple generado por
Parámetros:
alignment: El objeto de alineamiento múltiple (generado pormsa()).type = "seqinr::alignment": Especifica que se convierte al formatoalignmentutilizado porseqinr.
Propósito:
- Adaptar el alineamiento al formato necesario para calcular distancias filogenéticas.
dist.alignment:- Calcula una matriz de distancias basada en el alineamiento.
Parámetros:
alignment_phy: Alineamiento en formatoseqinr::alignment."identity": Define la métrica de distancia:La identidad mide el porcentaje de posiciones idénticas entre pares de secuencias.
Un valor más bajo indica mayor divergencia entre secuencias.
Resultado:
- Una matriz simétrica en la que cada celda representa la identidad entre dos secuencias.
Construir el Árbol Filogenético:
La función nj:
- Construye un árbol filogenético usando el método Neighbor-Joining.
Transformación de la Distancia:
1 - dist_matrix: Convierte la identidad en una métrica de divergencia (distancia).as.dist: Convierte la matriz de distancia en un objeto de tipodist, compatible connj.
Neighbor-Joining:
Es un método basado en distancias para construir árboles filogenéticos.
Busca minimizar la longitud total del árbol (sumatoria de las distancias).
Graficar el Árbol
plot:- Genera una visualización gráfica del árbol filogenético.
Parámetros:
phylo_tree: Árbol filogenético generado pornj.main: Título del gráfico.cex: Ajusta el tamaño del texto en la gráfica.
Resultado:
Una representación visual del árbol filogenético, donde:
Las ramas representan las distancias evolutivas entre las secuencias.
Las secuencias más cercanas en el árbol tienen mayor similitud.
# Instalar y cargar seqinr si no está disponible
#if (!requireNamespace("seqinr", quietly = TRUE)) {
# install.packages("seqinr")
#}
library(seqinr)
Adjuntando el paquete: 'seqinr'
The following objects are masked from 'package:ape':
as.alignment, consensus
The following object is masked from 'package:Biostrings':
translate
# Convertir el alineamiento a un formato de distancia
alignment_phy <- msaConvert(alignment, type = "seqinr::alignment")
# Calcular las distancias
dist_matrix <- dist.alignment(alignment_phy, "identity")
# Generar un árbol filogenético
phylo_tree <- nj(as.dist(1 - dist_matrix)) # Usar Neighbor-Joining
# Graficar el árbol filogenético
plot(phylo_tree, main = "Árbol Filogenético de la Proteína F de Metaneumovirus", cex = 0.8)Interpretación del Árbol Filogenético
1. Relaciones Evolutivas
Las secuencias del metaneumovirus humano y del avian metapneumovirus tipo C parecen más cercanas en el árbol filogenético, lo que puede indicar un ancestro común reciente o similitudes evolutivas.
Las secuencias tipo A y tipo B del avian metapneumovirus muestran mayor distancia evolutiva respecto a la secuencia humana, lo que sugiere divergencia evolutiva.
2. Distancias Evolutivas
La longitud de las ramas en el árbol refleja las diferencias acumuladas entre las secuencias. Ramas más largas indican mayores divergencias.
Estas distancias pueden relacionarse con presiones evolutivas específicas, como la adaptación a diferentes huéspedes.
Análisis Funcional: Identificación de Motivos Conservados
1. Motivos Conservados
Las regiones de alta conservación son candidatas para estudios funcionales, ya que pueden estar relacionadas con funciones esenciales como la unión a receptores celulares o la mediación de la fusión de membranas.
Ejemplo de región altamente conservada:
ACGGTCTTAAAGAGAGCTATTTAGAAGAGTCATGTAGCAC.
2. Aplicaciones Potenciales
Estas regiones pueden servir como objetivos para:
Desarrollo de vacunas: Motivos conservados son menos propensos a mutar, lo que puede mejorar la eficacia de las vacunas.
Diseño de antivirales: Identificar sitios clave en la proteína F que pueden ser bloqueados para inhibir la entrada viral.
3. Herramientas para Estudio
- Herramientas como
MEMEoFIMOpueden usarse para identificar y analizar motivos conservados con mayor detalle.
Siguientes Pasos
1. Validación Experimental
- Realizar estudios in vitro para confirmar la funcionalidad de las regiones conservadas identificadas.
2. Análisis Computacional Adicional
Usar herramientas como Homology Modeling para estudiar las estructuras 3D de las proteínas y localizar regiones funcionales clave.
Analizar las mutaciones dentro de las regiones no conservadas para explorar su impacto en la función de la proteína.
3. Estudios Evolutivos
- Comparar las secuencias de estas proteínas con otras cepas de metaneumovirus para entender las presiones selectivas.