Skip to content

Commit 25dd815

Browse files
authored
Merge pull request #45 from jasenfinch/devel
v0.7.10
2 parents 5e859b0 + fa02e80 commit 25dd815

File tree

4 files changed

+64
-25
lines changed

4 files changed

+64
-25
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: MFassign
22
Title: Molecular Formula Assignment for High Resolution metabolomics
3-
Version: 0.7.9
3+
Version: 0.7.10
44
Authors@R: person("Jasen", "Finch", email = "jsf9@aber.ac.uk", role = c("aut", "cre"))
55
Description: Molecular formula assignment for high resolution metabolomics.
66
Depends: R (>= 3.5.0),

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ importFrom(crayon,yellow)
2626
importFrom(dplyr,arrange)
2727
importFrom(dplyr,bind_cols)
2828
importFrom(dplyr,bind_rows)
29+
importFrom(dplyr,contains)
2930
importFrom(dplyr,desc)
3031
importFrom(dplyr,distinct)
3132
importFrom(dplyr,filter)

R/allClasses.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ setClass('AssignmentParameters',
3838
prototype = list(
3939
technique = 'FIE',
4040
correlations = list(method = 'pearson',pAdjustMethod = 'bonferroni',corPvalue = 0.05),
41-
filter = list(rthresh = 0.7,n = 100000,rIncrement = 0.01,nIncrement = 20000),
41+
filter = list(rthresh = 0.7,n = 200000,rIncrement = 0.01,nIncrement = 20000),
4242
maxM = 1000,
4343
maxMFscore = 5,
4444
ppm = 5,

R/relationships-method.R

Lines changed: 61 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#' @importFrom furrr future_map
2-
#' @importFrom dplyr mutate bind_rows filter vars
2+
#' @importFrom dplyr mutate bind_rows filter vars contains
33
#' @importFrom dplyr inner_join semi_join select mutate_at
44
#' @importFrom stringr str_sub str_replace_all
55
#' @importFrom mzAnnotation relationshipCalculator
@@ -20,37 +20,75 @@ setMethod('relationships',signature = 'Assignment',
2020
cors <- assignment@preparedCorrelations
2121

2222
if (isTRUE(transformations)) {
23-
trans <- parameters@transformations
23+
trans <- c(NA,parameters@transformations)
2424
} else {
25-
trans <- c()
25+
trans <- NA
2626
}
2727

2828
rel <- cors %>%
2929
select(`m/z1`,`m/z2`,Mode1,Mode2) %>%
3030
split(1:nrow(.)) %>%
3131
future_map(~{
32-
relationshipCalculator(.x %>%
33-
select(`m/z1`,`m/z2`) %>%
34-
unlist(),
35-
limit = parameters@limit,
36-
modes = .x %>%
37-
select(Mode1,Mode2) %>%
38-
unlist(),
39-
adducts = parameters@adducts,
40-
isotopes = parameters@isotopes,
41-
transformations = trans,
42-
adductTable = parameters@adductRules,
43-
isotopeTable = parameters@isotopeRules,
44-
transformationTable = parameters@transformationRules)
32+
33+
mzs <- bind_rows(
34+
.x %>%
35+
select(contains('1')) %>%
36+
setNames(stringr::str_remove(names(.),'1')),
37+
.x %>%
38+
select(contains('2')) %>%
39+
setNames(stringr::str_remove(names(.),'2'))
40+
)
41+
42+
modes <- mzs$Mode %>%
43+
unique()
44+
45+
if (length(modes) > 1){
46+
adducts <- parameters@adducts %>%
47+
unlist()
48+
} else {
49+
adducts <- parameters@adducts[[modes]]
50+
}
51+
52+
relationships <- relationshipCalculator(mzs$`m/z`,
53+
limit = parameters@limit,
54+
adducts = adducts,
55+
isotopes = c(NA,parameters@isotopes),
56+
transformations = trans,
57+
adductTable = parameters@adductRules,
58+
isotopeTable = parameters@isotopeRules,
59+
transformationTable = parameters@transformationRules) %>%
60+
left_join(mzs,by = c('m/z1' = 'm/z')) %>%
61+
rename(Mode1 = Mode) %>%
62+
left_join(mzs,by = c('m/z2' = 'm/z')) %>%
63+
rename(Mode2 = Mode) %>%
64+
dplyr::relocate(contains('Mode'),.after = `m/z2`)
65+
66+
if (length(modes) > 1){
67+
adduct_modes <- parameters@adducts %>%
68+
map(tibble::enframe,value = 'Adduct') %>%
69+
bind_rows(.id = 'Mode') %>%
70+
select(-name)
71+
72+
relationships <- relationships %>%
73+
inner_join(adduct_modes,
74+
by = c('Mode1' = 'Mode',
75+
'Adduct1' = 'Adduct')) %>%
76+
inner_join(adduct_modes,
77+
by = c('Mode2' = 'Mode',
78+
'Adduct2' = 'Adduct'))
79+
}
80+
81+
return(relationships)
4582
}) %>%
4683
bind_rows() %>%
47-
inner_join(cors,by = c('m/z1' = 'm/z1','m/z2' = 'm/z2')) %>%
48-
select(Feature1:Mode2,
49-
`m/z1`,
50-
`m/z2`,
51-
RetentionTime1,
52-
RetentionTime2,
53-
Adduct1:Transformation2,
84+
inner_join(cors,by = c('m/z1','m/z2','Mode1','Mode2')) %>%
85+
select(contains('Feature'),
86+
contains('Mode'),
87+
contains('m/z'),
88+
contains('RetentionTime'),
89+
contains('Adduct'),
90+
contains('Isotope'),
91+
contains('Transformation'),
5492
log2IntensityRatio,
5593
r,
5694
Error,

0 commit comments

Comments
 (0)