Curso Bioinformática con R 2025

Author

Dr. Juan Fidel Osuna-Ramos

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

  • https://master.bioconductor.org/help/course-materials/2019/CSAMA/materials/lectures/lecture-02-bioc-intro.html#1

    • ¿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:
    # 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")
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_seq
14-letter DNAString object
seq: ATGCGTACGTTAGC
# Obtener el complemento inverso
#Requerimos del paquete pwalign 
#BiocManager::install("pwalign")

  arev_comp <- reverseComplement(dna_seq)
  arev_comp
14-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
seq2
14-letter DNAString object
seq: ATGCGTGCGCTGAC
#??Biostrings

Intentalo 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_comp
14-letter DNAString object
seq: GCTAACGTACGCAT

Función utilizadas: pairwiseAlignment

  • Descripción: Esta función del paquete Biostrings realiza 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:

  1. seq1 y seq2:

    • Representan las dos secuencias que deseas alinear.

    • Estas deben ser objetos DNAString, RNAString, o AAString (dependiendo del tipo de datos).

  2. 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.

  3. 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.

  4. 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

  1. Ve al portal de NCBI Nucleotide.

  2. 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).

  3. 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

  1. Usa el paquete Biostrings para leer los archivos FASTA.

  2. 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

  1. Similitud Genómica:

    • El puntaje alto indica que las dos secuencias son similares, lo que sugiere una posible relación evolutiva o funcional.
  2. Diferencias Locales:

    • Los gaps y diferencias en la alineación resaltan variaciones, que podrían ser mutaciones, inserciones, o eliminaciones.
  3. 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 paquete msa (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

  1. 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 un DNAStringSet, RNAStringSet, o AAStringSet).

      • 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.

  2. msaConsensusSequence:

    • Genera la secuencia de consenso, que representa las bases o residuos más comunes en cada posición del alineamiento.
  3. 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: Sequence

    1: ATGCGTACGTTAGC Sequence

    2: ATGCGTACGTCGAC Sequence

    3: ATGCGTACGCTAGC

  • Secuencia de Consenso:

    Secuencia de consenso: ATGCGTACGXTAGC

    La “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

  1. Alineamiento por filas:

    [1] ATGCGTACGTTAGC [2] ATGCGTACGCTAGC [3] ATGCGTACGTCGAC

    • Cada 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.

  2. Comparación Base a Base:

    • Las secuencias muestran coincidencias significativas, pero hay diferencias localizadas:

      • Entre [1] y [2]: Diferencia en la posición 10: T vs C.

      • Entre [1] y [3]: Diferencias en las posiciones 10 y 12: T vs C y A vs G.

    • 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

  1. 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.

  2. Diferencias Locales:

    • Las diferencias puntuales observadas pueden reflejar:

      • Mutaciones naturales.

      • Variaciones evolutivas entre especies.

  3. 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

  1. Visualización: Usa msaPrettyPrint para 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")
  2. Análisis de Regiones Conservadas:

    • Identifica regiones conservadas para buscar posibles motivos funcionales.

    • Usa herramientas adicionales para explorar diferencias entre las secuencias.

  3. Construcción de Árbol Filogenético:

    • Utiliza el alineamiento para inferir relaciones evolutivas entre las secuencias con herramientas como ape en R.

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.

  1. 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.).

  2. 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.).

  3. 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

    1. Proteína de Fusión hMPV (humano):

    2. Proteína de Fusión AMPV Tipo A (aviar):

    3. Proteína de Fusión AMPV Tipo B (aviar):

    4. Proteína de Fusión AMPV Tipo C (aviar):

    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.fasta

    • AMPV_typeA_fusion_protein.fasta

    • AMPV_typeB_fusion_protein.fasta

    • AMPV_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 vector urls.

    • urls[i] y file_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

  1. Verifica los archivos descargados para asegurarte de que las secuencias sean correctas.

  2. Carga y analiza las secuencias utilizando herramientas como el paquete msa para 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 objeto DNAStringSet que contiene las secuencias.

  • c(...): Combina las secuencias leídas en un único objeto DNAStringSet.

  • 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

  1. 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 ACGGTCTTAAAGAGAGCTATTTAGAAGAGTCATGTAGCAC tienen 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 con T y A muestran 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.alignment para calcular matrices de distancia a partir de un alineamiento.
  • msaConvert:

    • Convierte el objeto de alineamiento múltiple generado por msa en diferentes formatos compatibles con otras librerías.
  • Parámetros:

    • alignment: El objeto de alineamiento múltiple (generado por msa()).

    • type = "seqinr::alignment": Especifica que se convierte al formato alignment utilizado por seqinr.

  • 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 formato seqinr::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 tipo dist, compatible con nj.

  • 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 por nj.

    • 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 MEME o FIMO pueden 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.