es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer un alineamiento de múltiples secuencias en R como un boxplot y un scatterplot?

Tengo un archivo fasta que contiene 16 proteínas y las alineé con el paquete “msa”. Ahora necesito visualizar mis resultados de secuencias similares utilizando boxplots y scatterplot.

Leí sobre “ggmsa” pero no está funcionando en mi versión de R, y probé muchas otras versiones pero aún así no funciona.

Mi código:

if (!requireNamespace("BiocManager", quietly = TRUE))
#install.packages("BiocManager")

BiocManager::install("msa")
library("msa")

mySequenceFile <- file.choose(file.choose())
mySequences <- readAAStringSet(mySequenceFile)

----doAlignment-----------------------------------------------
Multiple_Alignment <- msa(mySequences)

----showWholeWidth--------------------------------------------
sink("align.txt") #Enviar la salida de R a un archivo
print(Multiple_Alignment, show="complete")
sink()
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para visualizar los resultados de secuencias similares utilizando boxplots y scatterplot, existen otros paquetes en R que pueden ser utilizados aparte de ggmsa, como tidyverse y ggplot2. El primer paso sería convertir el objeto Multiple_Alignment en un data frame utilizando la función MSAtoFrame() del paquete msa. Esta función convierte el objeto Multiple_Alignment en un data frame con cada secuencia como una fila y las columnas representando las posiciones alineadas.

    # Convertir Multiple_Alignment en un data frame
    Aligned_seq <- MSAtoFrame(Multiple_Alignment)
    
    # Instalar y cargar los paquetes tidyverse y ggplot2
    install.packages("tidyverse")
    install.packages("ggplot2")
    library(tidyverse)
    library(ggplot2)
    
    # Boxplot mostrando la distribución de aminoácidos en cada posición alineada
    Aligned_seq %>%
      pivot_longer(cols = everything()) %>%
      ggplot(aes(x=name, y=value)) +
      geom_boxplot() +
      labs(x = "Posición de Alineamiento", y = "Aminoácido")
    
    # Scatterplot mostrando la similitud entre pares de secuencias alineadas
    Aligned_seq %>%
      pairwise_identity() %>%
      ggplot(aes(x = Var1, y = Var2, fill = value)) +
      geom_tile() +
      scale_fill_gradient(low = "white", high = "blue") +
      labs(x = "Secuencia", y = "Secuencia", fill = "Identidad")
    

    Si el paquete ggmsa sigue sin funcionar después de probar diferentes versiones de R, puede ser útil comunicarse con los mantenedores del paquete para obtener soporte o buscar alternativas para lograr la visualización deseada.

Comments are closed.