Mercurial > repos > marie-tremblay-metatoul > 2dnmrannotation
comparison annotationRmn2D.R @ 4:cf11fa0c47c8 draft default tip
planemo upload for repository https://github.com/workflow4metabolomics/tools-metabolomics commit b5f7f56b5ffc3c900236c077f72b321df20647be
author | workflow4metabolomics |
---|---|
date | Thu, 23 Jan 2025 15:28:44 +0000 |
parents | 546c7ccd2ed4 |
children |
comparison
equal
deleted
inserted
replaced
3:546c7ccd2ed4 | 4:cf11fa0c47c8 |
---|---|
7 # ppm2Tol : tolerance ppm axe ordonnees # | 7 # ppm2Tol : tolerance ppm axe ordonnees # |
8 # nb_ligne_template : preciser le nombre total de ligne de la feuille de calcul a annoter # | 8 # nb_ligne_template : preciser le nombre total de ligne de la feuille de calcul a annoter # |
9 ####################################################################################################### | 9 ####################################################################################################### |
10 annotationRmn2D <- function(matriceComplexe, BdDStandards, nom_sequence, ppm1Tol = 0.01, ppm2Tol = 0.01, | 10 annotationRmn2D <- function(matriceComplexe, BdDStandards, nom_sequence, ppm1Tol = 0.01, ppm2Tol = 0.01, |
11 seuil = 0, unicite = "NO") { | 11 seuil = 0, unicite = "NO") { |
12 ## Longueur de la peak-list de la matrice a annoter | 12 ## Longueur de la peak-list de la matrice a annoter |
13 PeakListLength <- length(matriceComplexe[, 1]) | 13 PeakListLength <- length(matriceComplexe[, 1]) |
14 | 14 |
15 ## Nombre de metabolites inclus dans BdD de composes standards | 15 ## Nombre de metabolites inclus dans BdD de composes standards |
16 nbMetabolitesBdD <- length(BdDStandards) | 16 nbMetabolitesBdD <- length(BdDStandards) |
17 matrixAnnotation <- data.frame() | 17 matrixAnnotation <- data.frame() |
18 allMetabolitesList <- data.frame() | 18 allMetabolitesList <- data.frame() |
19 seuil_score <- seuil | 19 seuil_score <- seuil |
20 | 20 |
21 ## Boucle sur les metabolites inclus dans BdD | 21 ## Boucle sur les metabolites inclus dans BdD |
22 for (i in seq_len(nbMetabolitesBdD)) { | |
23 ## Infos metabolite en cours | |
24 iMetabolite <- BdDStandards[[i]] | |
25 ppm1M <- iMetabolite[, 1] | |
26 ppm2M <- iMetabolite[, 2] | |
27 nbPeakMetabolite <- length(ppm1M) | |
28 MetaboliteName <- names(BdDStandards[i]) | |
29 | |
30 ## Initialisation | |
31 k <- 0 | |
32 presenceScore <- 0 | |
33 annotatedPpmRef <- data.frame() | |
34 annotatedPpmList <- data.frame() | |
35 annotatedPeakLength <- 0 | |
36 metabolites <- data.frame() | |
37 metabolitesList <- data.frame() | |
38 | |
39 ## Boucle sur les couples de pics de la matrice a annoter | |
40 for (p in seq_len(PeakListLength)) { | |
41 ppmAnnotationF1 <- as.numeric(matriceComplexe[p, 3]) | |
42 ppmAnnotationF2 <- as.numeric(matriceComplexe[p, 2]) | |
43 e <- simpleMessage("end of file") | |
44 tryCatch({ | |
45 if (!is.na(ppmAnnotationF1)) { | |
46 matrixAnnotation <- unique.data.frame(rbind.data.frame(matrixAnnotation, matriceComplexe[p, ])) | |
47 } | |
48 # Recherche du couple de pics de la matrice la liste des couples du metabolite standard | |
49 metaboliteIn <- (ppm1M >= (ppmAnnotationF2 - ppm1Tol) & ppm1M <= (ppmAnnotationF2 + ppm1Tol) & | |
50 ppm2M >= (ppmAnnotationF1 - ppm2Tol) & ppm2M <= (ppmAnnotationF1 + ppm2Tol)) | |
51 WhichMetaboliteIn <- which(metaboliteIn) | |
52 # Si au moins un couple de la matrice a annoter dans liste couples metabolite standard | |
53 if (length(WhichMetaboliteIn) > 0) { | |
54 for (a in seq_len(length(WhichMetaboliteIn))) { | |
55 annotatedPpmList <- data.frame(ppm1 = ppm1M[WhichMetaboliteIn[a]], ppm2 = ppm2M[WhichMetaboliteIn[a]], theoricalLength = nbPeakMetabolite) | |
56 annotatedPpmRef <- rbind(annotatedPpmRef, annotatedPpmList) | |
57 } | |
58 } | |
59 }, error = function(e) { | |
60 cat("End of file \n"); | |
61 }) | |
62 } | |
63 | |
64 # Au - 1 couple de ppm de la matrice complexe annote | |
65 if (nrow(annotatedPpmRef) >= 1) { | |
66 ## Nombre couples annotes | |
67 annotatedPeakLength <- nrow(annotatedPpmRef) | |
68 | |
69 ## Recherche doublons | |
70 annotatedDoublons <- duplicated(annotatedPpmRef) | |
71 if (sum(duplicated(annotatedPpmRef)) > 0) { | |
72 annotatedPeakLength <- nrow(annotatedPpmRef) - sum(duplicated(annotatedPpmRef)) | |
73 annotatedPpmRef <- annotatedPpmRef[-duplicated(annotatedPpmRef), ] | |
74 } | |
75 presenceScore <- round(annotatedPeakLength / nbPeakMetabolite, 2) | |
76 } | |
77 | |
78 ## Conservation metabolites dont score > seuil | |
79 if (presenceScore > seuil_score) { | |
80 metabolites <- data.frame(Metabolite = MetaboliteName, score = presenceScore) | |
81 metabolitesList <- cbind.data.frame(annotatedPpmRef, metabolites) | |
82 allMetabolitesList <- rbind.data.frame(allMetabolitesList, metabolitesList) | |
83 } | |
84 } | |
85 | |
86 # Initialisation | |
87 commonPpm <- data.frame() | |
88 commonPpmList <- data.frame() | |
89 metaboliteAdd <- data.frame() | |
90 metaboliteAddList <- data.frame() | |
91 commonMetabolitesList <- data.frame() | |
92 commonMetabolitesPpmList <- data.frame() | |
93 commonMetabolitesPpmAllList1 <- data.frame() | |
94 commonMetabolitesPpmAllList <- data.frame() | |
95 listeTotale_2D_unicite <- allMetabolitesList[, 1:4] | |
96 allMetabolitesList <- allMetabolitesList[, -3] | |
97 metabolitesAllUnicite <- data.frame() | |
98 | |
99 ## Boucle sur tous couples annotes | |
100 for (j in seq_len(length(allMetabolitesList$ppm1))) { | |
101 ## Boucle sur metabolites dans BdD composes standards | |
102 for (i in seq_len(nbMetabolitesBdD)) { | 22 for (i in seq_len(nbMetabolitesBdD)) { |
103 ppmMetaboliteBdD <- BdDStandards[[i]] | 23 ## Infos metabolite en cours |
104 ppm1M <- ppmMetaboliteBdD[, 1] | 24 iMetabolite <- BdDStandards[[i]] |
105 ppm2M <- ppmMetaboliteBdD[, 2] | 25 ppm1M <- iMetabolite[, 1] |
106 # Nombre de couples metabolite | 26 ppm2M <- iMetabolite[, 2] |
107 nbPeakMetabolite <- length(ppm1M) | 27 nbPeakMetabolite <- length(ppm1M) |
108 MetaboliteName <- names(BdDStandards[i]) | 28 MetaboliteName <- names(BdDStandards[i]) |
109 | 29 |
110 metabolitesInAll <- (ppm1M >= (allMetabolitesList[j, 1] - ppm1Tol) & ppm1M <= (allMetabolitesList[j, 1] + ppm1Tol) & | 30 ## Initialisation |
111 ppm2M >= (allMetabolitesList[j, 2] - ppm2Tol) & ppm2M <= (allMetabolitesList[j, 2] + ppm2Tol)) | 31 k <- 0 |
112 WhichMetabolitesInAll <- which(metabolitesInAll) | 32 presenceScore <- 0 |
113 | 33 annotatedPpmRef <- data.frame() |
114 if (MetaboliteName != allMetabolitesList[j, 3] & length(WhichMetabolitesInAll) > 0) { | 34 annotatedPpmList <- data.frame() |
115 metabolitesAllUnicite <- rbind.data.frame(metabolitesAllUnicite, listeTotale_2D_unicite[j, ]) | 35 annotatedPeakLength <- 0 |
116 commonPpm <- data.frame(ppm1 = allMetabolitesList[j, 1], ppm2 = allMetabolitesList[j, 2]) | 36 metabolites <- data.frame() |
117 commonPpmList <- rbind.data.frame(commonPpmList, commonPpm) | 37 metabolitesList <- data.frame() |
118 commonPpmList <- unique(commonPpmList) | 38 |
119 metaboliteAdd <- data.frame(nom_metabolite = MetaboliteName) | 39 ## Boucle sur les couples de pics de la matrice a annoter |
120 metaboliteAddList <- rbind.data.frame(metaboliteAddList, metaboliteAdd) | 40 for (p in seq_len(PeakListLength)) { |
121 commonMetabolitesList <- rbind.data.frame(data.frame(nom_metabolite = allMetabolitesList[j, 3]), metaboliteAddList) | 41 ppmAnnotationF1 <- as.numeric(matriceComplexe[p, 3]) |
122 commonMetabolitesPpmList <- cbind.data.frame(commonPpm, commonMetabolitesList) | 42 ppmAnnotationF2 <- as.numeric(matriceComplexe[p, 2]) |
123 commonMetabolitesPpmAllList1 <- rbind.data.frame(commonMetabolitesPpmAllList1, commonMetabolitesPpmList) | 43 e <- simpleMessage("end of file") |
124 commonMetabolitesPpmAllList1 <- unique.data.frame(commonMetabolitesPpmAllList1) | 44 tryCatch( |
125 } | 45 { |
126 } | 46 if (!is.na(ppmAnnotationF1)) { |
127 commonMetabolitesPpmAllList <- rbind.data.frame(commonMetabolitesPpmAllList, commonMetabolitesPpmAllList1) | 47 matrixAnnotation <- unique.data.frame(rbind.data.frame(matrixAnnotation, matriceComplexe[p, ])) |
128 commonMetabolitesPpmAllList <- unique.data.frame(commonMetabolitesPpmAllList) | 48 } |
129 | 49 # Recherche du couple de pics de la matrice la liste des couples du metabolite standard |
130 #initialisation des data.frame | 50 metaboliteIn <- (ppm1M >= (ppmAnnotationF2 - ppm1Tol) & ppm1M <= (ppmAnnotationF2 + ppm1Tol) & |
51 ppm2M >= (ppmAnnotationF1 - ppm2Tol) & ppm2M <= (ppmAnnotationF1 + ppm2Tol)) | |
52 WhichMetaboliteIn <- which(metaboliteIn) | |
53 # Si au moins un couple de la matrice a annoter dans liste couples metabolite standard | |
54 if (length(WhichMetaboliteIn) > 0) { | |
55 for (a in seq_len(length(WhichMetaboliteIn))) { | |
56 annotatedPpmList <- data.frame(ppm1 = ppm1M[WhichMetaboliteIn[a]], ppm2 = ppm2M[WhichMetaboliteIn[a]], theoricalLength = nbPeakMetabolite) | |
57 annotatedPpmRef <- rbind(annotatedPpmRef, annotatedPpmList) | |
58 } | |
59 } | |
60 }, | |
61 error = function(e) { | |
62 cat("End of file \n") | |
63 } | |
64 ) | |
65 } | |
66 | |
67 # Au - 1 couple de ppm de la matrice complexe annote | |
68 if (nrow(annotatedPpmRef) >= 1) { | |
69 ## Nombre couples annotes | |
70 annotatedPeakLength <- nrow(annotatedPpmRef) | |
71 | |
72 ## Recherche doublons | |
73 annotatedDoublons <- duplicated(annotatedPpmRef) | |
74 if (sum(duplicated(annotatedPpmRef)) > 0) { | |
75 annotatedPeakLength <- nrow(annotatedPpmRef) - sum(duplicated(annotatedPpmRef)) | |
76 annotatedPpmRef <- annotatedPpmRef[-duplicated(annotatedPpmRef), ] | |
77 } | |
78 presenceScore <- round(annotatedPeakLength / nbPeakMetabolite, 2) | |
79 } | |
80 | |
81 ## Conservation metabolites dont score > seuil | |
82 if (presenceScore > seuil_score) { | |
83 metabolites <- data.frame(Metabolite = MetaboliteName, score = presenceScore) | |
84 metabolitesList <- cbind.data.frame(annotatedPpmRef, metabolites) | |
85 allMetabolitesList <- rbind.data.frame(allMetabolitesList, metabolitesList) | |
86 } | |
87 } | |
88 | |
89 # Initialisation | |
131 commonPpm <- data.frame() | 90 commonPpm <- data.frame() |
91 commonPpmList <- data.frame() | |
132 metaboliteAdd <- data.frame() | 92 metaboliteAdd <- data.frame() |
133 metaboliteAddList <- data.frame() | 93 metaboliteAddList <- data.frame() |
134 metabolite_ref <- data.frame() | |
135 commonMetabolitesList <- data.frame() | 94 commonMetabolitesList <- data.frame() |
136 commonMetabolitesPpmList <- data.frame() | 95 commonMetabolitesPpmList <- data.frame() |
137 commonMetabolitesPpmAllList1 <- data.frame() | 96 commonMetabolitesPpmAllList1 <- data.frame() |
138 } | 97 commonMetabolitesPpmAllList <- data.frame() |
139 | 98 listeTotale_2D_unicite <- allMetabolitesList[, 1:4] |
140 unicityAllList <- listeTotale_2D_unicite | 99 allMetabolitesList <- allMetabolitesList[, -3] |
141 if (nrow(listeTotale_2D_unicite) != 0 & nrow(metabolitesAllUnicite) != 0) | 100 metabolitesAllUnicite <- data.frame() |
142 unicityAllList <- setdiff(listeTotale_2D_unicite, metabolitesAllUnicite) | 101 |
143 | 102 ## Boucle sur tous couples annotes |
144 unicitynbCouplesRectif <- data.frame() | 103 for (j in seq_len(length(allMetabolitesList$ppm1))) { |
145 for (g in seq_len(nrow(unicityAllList))) { | 104 ## Boucle sur metabolites dans BdD composes standards |
146 metaboliteUnicity <- (unicityAllList$Metabolite == unicityAllList$Metabolite[g]) | 105 for (i in seq_len(nbMetabolitesBdD)) { |
147 WhichMetaboliteUnicity <- which(metaboliteUnicity) | 106 ppmMetaboliteBdD <- BdDStandards[[i]] |
148 nb_occurence <- length(WhichMetaboliteUnicity) | 107 ppm1M <- ppmMetaboliteBdD[, 1] |
149 unicitynbCouplesRectif <- rbind.data.frame(unicitynbCouplesRectif, nb_occurence) | 108 ppm2M <- ppmMetaboliteBdD[, 2] |
150 } | 109 # Nombre de couples metabolite |
151 names(unicitynbCouplesRectif) <- "NbCouplesAnnotes" | 110 nbPeakMetabolite <- length(ppm1M) |
152 unicityAllList <- cbind.data.frame(unicityAllList, unicitynbCouplesRectif) | 111 MetaboliteName <- names(BdDStandards[i]) |
153 | 112 |
154 unicityAllList <- cbind.data.frame(unicityAllList, score_unicite = unicityAllList$NbCouplesAnnotes / unicityAllList$theoricalLength) | 113 metabolitesInAll <- (ppm1M >= (allMetabolitesList[j, 1] - ppm1Tol) & ppm1M <= (allMetabolitesList[j, 1] + ppm1Tol) & |
155 unicityAllList <- unicityAllList[, -3] | 114 ppm2M >= (allMetabolitesList[j, 2] - ppm2Tol) & ppm2M <= (allMetabolitesList[j, 2] + ppm2Tol)) |
156 unicityAllList <- unicityAllList[, -4] | 115 WhichMetabolitesInAll <- which(metabolitesInAll) |
157 | 116 |
158 unicityAllList <- unicityAllList[unicityAllList$score_unicite > seuil_score, ] | 117 if (MetaboliteName != allMetabolitesList[j, 3] & length(WhichMetabolitesInAll) > 0) { |
159 | 118 metabolitesAllUnicite <- rbind.data.frame(metabolitesAllUnicite, listeTotale_2D_unicite[j, ]) |
160 listeTotale_metabo <- data.frame() | 119 commonPpm <- data.frame(ppm1 = allMetabolitesList[j, 1], ppm2 = allMetabolitesList[j, 2]) |
161 if (nrow(commonPpmList) != 0) { | 120 commonPpmList <- rbind.data.frame(commonPpmList, commonPpm) |
162 for (o in seq_len(length(commonPpmList[, 1]))) { | 121 commonPpmList <- unique(commonPpmList) |
163 tf6 <- (commonMetabolitesPpmAllList$ppm1 == commonPpmList[o, 1] & commonMetabolitesPpmAllList$ppm2 == commonPpmList[o, 2]) | 122 metaboliteAdd <- data.frame(nom_metabolite = MetaboliteName) |
164 w6 <- which(tf6) | 123 metaboliteAddList <- rbind.data.frame(metaboliteAddList, metaboliteAdd) |
165 | 124 commonMetabolitesList <- rbind.data.frame(data.frame(nom_metabolite = allMetabolitesList[j, 3]), metaboliteAddList) |
166 for (s in seq_len(length(w6))) { | 125 commonMetabolitesPpmList <- cbind.data.frame(commonPpm, commonMetabolitesList) |
167 metaboliteAdd <- data.frame(nom_metabolite = commonMetabolitesPpmAllList[w6[s], 3]) | 126 commonMetabolitesPpmAllList1 <- rbind.data.frame(commonMetabolitesPpmAllList1, commonMetabolitesPpmList) |
168 commonMetabolitesList <- paste(commonMetabolitesList, metaboliteAdd[1, ], sep = " ") | 127 commonMetabolitesPpmAllList1 <- unique.data.frame(commonMetabolitesPpmAllList1) |
169 } | 128 } |
170 liste_metabo_ppm <- cbind.data.frame(ppm1 = commonPpmList[o, 1], ppm2 = commonPpmList[o, 2], commonMetabolitesList) | 129 } |
171 listeTotale_metabo <- rbind.data.frame(listeTotale_metabo, liste_metabo_ppm) | 130 commonMetabolitesPpmAllList <- rbind.data.frame(commonMetabolitesPpmAllList, commonMetabolitesPpmAllList1) |
172 commonMetabolitesList <- data.frame() | 131 commonMetabolitesPpmAllList <- unique.data.frame(commonMetabolitesPpmAllList) |
173 } | 132 |
174 } | 133 # initialisation des data.frame |
175 | 134 commonPpm <- data.frame() |
176 # Representation graphique | 135 metaboliteAdd <- data.frame() |
177 if (nom_sequence == "HSQC" | nom_sequence == "HMBC") { | 136 metaboliteAddList <- data.frame() |
178 atome <- "13C" | 137 metabolite_ref <- data.frame() |
179 indice_positif <- 1 | 138 commonMetabolitesList <- data.frame() |
180 indice_negatif <- -10 | 139 commonMetabolitesPpmList <- data.frame() |
181 } else { | 140 commonMetabolitesPpmAllList1 <- data.frame() |
182 atome <- "1H" | 141 } |
183 indice_positif <- 0.5 | 142 |
184 indice_negatif <- -0.5 | 143 unicityAllList <- listeTotale_2D_unicite |
185 } | 144 if (nrow(listeTotale_2D_unicite) != 0 & nrow(metabolitesAllUnicite) != 0) { |
186 | 145 unicityAllList <- setdiff(listeTotale_2D_unicite, metabolitesAllUnicite) |
187 matriceComplexe <- matrixAnnotation | 146 } |
188 ppm1 <- as.numeric(matriceComplexe[, 2]) | 147 |
189 ppm2 <- as.numeric(matriceComplexe[, 3]) | 148 unicitynbCouplesRectif <- data.frame() |
190 | 149 for (g in seq_len(nrow(unicityAllList))) { |
191 if (unicite == "NO") { | 150 metaboliteUnicity <- (unicityAllList$Metabolite == unicityAllList$Metabolite[g]) |
192 listeTotale_2D_a_utiliser <- allMetabolitesList | 151 WhichMetaboliteUnicity <- which(metaboliteUnicity) |
193 d1.ppm <- allMetabolitesList$ppm1 | 152 nb_occurence <- length(WhichMetaboliteUnicity) |
194 d2.ppm <- allMetabolitesList$ppm2 | 153 unicitynbCouplesRectif <- rbind.data.frame(unicitynbCouplesRectif, nb_occurence) |
195 } else { | 154 } |
196 listeTotale_2D_a_utiliser <- unicityAllList | 155 names(unicitynbCouplesRectif) <- "NbCouplesAnnotes" |
197 d1.ppm <- listeTotale_2D_a_utiliser$ppm1 | 156 unicityAllList <- cbind.data.frame(unicityAllList, unicitynbCouplesRectif) |
198 d2.ppm <- listeTotale_2D_a_utiliser$ppm2 | 157 |
199 } | 158 unicityAllList <- cbind.data.frame(unicityAllList, score_unicite = unicityAllList$NbCouplesAnnotes / unicityAllList$theoricalLength) |
200 | 159 unicityAllList <- unicityAllList[, -3] |
201 if (nrow(listeTotale_2D_a_utiliser) > 0) { | 160 unicityAllList <- unicityAllList[, -4] |
202 ## Taches de correlations | 161 |
203 # Matrice biologique + Annotations | 162 unicityAllList <- unicityAllList[unicityAllList$score_unicite > seuil_score, ] |
204 maxX <- max(round(max(as.numeric(matriceComplexe[, 2]))) + 0.5, round(max(as.numeric(matriceComplexe[, 2])))) | 163 |
205 maxY <- max(round(max(as.numeric(matriceComplexe[, 3]))) + indice_positif, round(max(as.numeric(matriceComplexe[, 3])))) | 164 listeTotale_metabo <- data.frame() |
206 probability.score <- as.factor(round(listeTotale_2D_a_utiliser[, 4], 2)) | 165 if (nrow(commonPpmList) != 0) { |
207 lgr <- length(unique(probability.score)) | 166 for (o in seq_len(length(commonPpmList[, 1]))) { |
208 sp <- ggplot(matriceComplexe, aes(x = ppm1, y = ppm2)) | 167 tf6 <- (commonMetabolitesPpmAllList$ppm1 == commonPpmList[o, 1] & commonMetabolitesPpmAllList$ppm2 == commonPpmList[o, 2]) |
209 sp <- sp + geom_point(size = 2) + scale_x_reverse(breaks = seq(maxX, 0, -0.5)) + | 168 w6 <- which(tf6) |
210 scale_y_reverse(breaks = seq(maxY, 0, indice_negatif)) + | 169 |
211 xlab("1H chemical shift (ppm)") + ylab(paste(atome, " chemical shift (ppm)")) + ggtitle(nom_sequence) + | 170 for (s in seq_len(length(w6))) { |
212 geom_text(data = listeTotale_2D_a_utiliser, aes(d1.ppm, d2.ppm, label = str_to_lower(substr(listeTotale_2D_a_utiliser[, 3], 1, 3)), col = probability.score), | 171 metaboliteAdd <- data.frame(nom_metabolite = commonMetabolitesPpmAllList[w6[s], 3]) |
213 size = 4, hjust = 0, nudge_x = 0.02, vjust = 0, nudge_y = 0.2) + scale_colour_manual(values = viridis(lgr)) | 172 commonMetabolitesList <- paste(commonMetabolitesList, metaboliteAdd[1, ], sep = " ") |
214 print(sp) | 173 } |
215 } | 174 liste_metabo_ppm <- cbind.data.frame(ppm1 = commonPpmList[o, 1], ppm2 = commonPpmList[o, 2], commonMetabolitesList) |
216 | 175 listeTotale_metabo <- rbind.data.frame(listeTotale_metabo, liste_metabo_ppm) |
217 # Liste des resultats (couples pmm / metabolite / score) + liste ppms metabolites communs | 176 commonMetabolitesList <- data.frame() |
218 if (unicite == "NO") { | 177 } |
219 return(list(liste_resultat = allMetabolitesList, listing_ppm_commun = listeTotale_metabo)) | 178 } |
220 } else { | 179 |
221 return(list(liste_resultat_unicite = unicityAllList, listing_ppm_commun_affichage = listeTotale_metabo)) | 180 # Representation graphique |
222 } | 181 if (nom_sequence == "HSQC" | nom_sequence == "HMBC") { |
182 atome <- "13C" | |
183 indice_positif <- 1 | |
184 indice_negatif <- -10 | |
185 } else { | |
186 atome <- "1H" | |
187 indice_positif <- 0.5 | |
188 indice_negatif <- -0.5 | |
189 } | |
190 | |
191 matriceComplexe <- matrixAnnotation | |
192 ppm1 <- as.numeric(matriceComplexe[, 2]) | |
193 ppm2 <- as.numeric(matriceComplexe[, 3]) | |
194 | |
195 if (unicite == "NO") { | |
196 listeTotale_2D_a_utiliser <- allMetabolitesList | |
197 d1.ppm <- allMetabolitesList$ppm1 | |
198 d2.ppm <- allMetabolitesList$ppm2 | |
199 } else { | |
200 listeTotale_2D_a_utiliser <- unicityAllList | |
201 d1.ppm <- listeTotale_2D_a_utiliser$ppm1 | |
202 d2.ppm <- listeTotale_2D_a_utiliser$ppm2 | |
203 } | |
204 | |
205 if (nrow(listeTotale_2D_a_utiliser) > 0) { | |
206 ## Taches de correlations | |
207 # Matrice biologique + Annotations | |
208 maxX <- max(round(max(as.numeric(matriceComplexe[, 2]))) + 0.5, round(max(as.numeric(matriceComplexe[, 2])))) | |
209 maxY <- max(round(max(as.numeric(matriceComplexe[, 3]))) + indice_positif, round(max(as.numeric(matriceComplexe[, 3])))) | |
210 probability.score <- as.factor(round(listeTotale_2D_a_utiliser[, 4], 2)) | |
211 lgr <- length(unique(probability.score)) | |
212 sp <- ggplot(matriceComplexe, aes(x = ppm1, y = ppm2)) | |
213 sp <- sp + geom_point(size = 2) + scale_x_reverse(breaks = seq(maxX, 0, -0.5)) + | |
214 scale_y_reverse(breaks = seq(maxY, 0, indice_negatif)) + | |
215 xlab("1H chemical shift (ppm)") + ylab(paste(atome, " chemical shift (ppm)")) + ggtitle(nom_sequence) + | |
216 geom_text( | |
217 data = listeTotale_2D_a_utiliser, aes(d1.ppm, d2.ppm, label = str_to_lower(substr(listeTotale_2D_a_utiliser[, 3], 1, 3)), col = probability.score), | |
218 size = 4, hjust = 0, nudge_x = 0.02, vjust = 0, nudge_y = 0.2 | |
219 ) + scale_colour_manual(values = viridis(lgr)) | |
220 print(sp) | |
221 } | |
222 | |
223 # Liste des resultats (couples pmm / metabolite / score) + liste ppms metabolites communs | |
224 if (unicite == "NO") { | |
225 return(list(liste_resultat = allMetabolitesList, listing_ppm_commun = listeTotale_metabo)) | |
226 } else { | |
227 return(list(liste_resultat_unicite = unicityAllList, listing_ppm_commun_affichage = listeTotale_metabo)) | |
228 } | |
223 } | 229 } |