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 }