jmbm

Fig_14

Oct 10th, 2022 (edited)
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.77 KB | None | 0 0
  1. pdf("fig_14.pdf", width = 5, height = 5)
  2. par(bty = "n", las = 0, mar = c(4, 4, 2, 1) + 0.2)
  3.  
  4. # función suma armónicos
  5. sum_arm <- function(n) {
  6.   a <- numeric(n)
  7.   for (i in 1:n) {
  8.     for (j in 1:i) {
  9.       a[j] <- a[j] + 1/i
  10.     }
  11.   }
  12.   a/n
  13. }
  14.  
  15. # la secuencia de un archivo txt
  16. sec <- readChar("secuencia.txt", file.info("secuencia.txt")$size)
  17. longitud <- nchar(sec)
  18.  
  19. # posiciones de las metioninas
  20. mets <- unlist(gregexpr("M", sec))
  21. # distancias entre ellas
  22. n <- length(mets) - 1
  23. distancias <- numeric(n)
  24. for (i in 1:n) {
  25.   distancias[i] <- mets[i + 1] - mets[i]
  26. }
  27. # ordenar de mayor a menor distancia
  28. distancias <- sort(distancias, decreasing = TRUE)
  29.  
  30. # prueba estadística (coeficiente de variación)
  31. # distribución de probabilidad
  32. repetir <- 10000
  33. cvS <- numeric(repetir)
  34. trozosS <- numeric(n)
  35. for (j in 1:repetir){
  36.   p_azar <- longitud*runif(n + 1)    # elegir los puntos de corte al azar
  37.   p_azar <- sort(p_azar)               # ordenar los cortes
  38.   for (i in 1:n){
  39.     trozosS[i] <- p_azar[i + 1] - p_azar[i]
  40.   }
  41.   trozosS <- sort(trozosS, decreasing = TRUE)
  42.   cvS[j] <- sd(trozosS)/mean(trozosS)
  43. }
  44.  
  45. # dibujamos el histograma
  46. hist(cvS, freq = FALSE, main = "", border = "lightgrey", xlab = expression("Coeficiente de variación"), ylab = "Densidad de probabilidad")
  47.  
  48. # vemos dónde quedan los límites de confianza clásicos
  49. limites <- quantile(cvS, probs = c(0.05, 0.95))
  50. abline(v = limites, col = "red", lty = 2)
  51. axis(3, at = limites, labels = round(limites, 2), lwd = 0, cex.axis = 0.8, col.axis = "red")
  52.  
  53. # calculamos cv en la proteína y lo representamos
  54. cvP <- sd(distancias)/mean(distancias)
  55. abline(v = cvP, col = "darkgreen", lwd = 2)
  56. axis(3, at = cvP, labels = round(cvP, 2), lwd = 0, cex.axis = 0.8, col.axis = "darkgreen")
  57.  
  58. dev.off()
Advertisement
Add Comment
Please, Sign In to add comment