Skip to content

Commit dd3bc3a

Browse files
authored
Merge pull request #17 from EMSL-Computing/bugfix/mass_filter
hard code mass filter columns
2 parents 6df6a14 + b10ac32 commit dd3bc3a

3 files changed

Lines changed: 11 additions & 7 deletions

File tree

R/applyFilt.R

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,16 @@ applyFilt.massFilt <- function(filter_object, ftmsObj, min_mass = 200, max_mass
124124
if(length(max_mass) != 1) stop("max_mass must be of length 1")
125125

126126
edata_cname <- getEDataColName(ftmsObj)
127-
mass_cname = getMassColName(ftmsObj)
128127

129-
mass_info <- filter_object[,mass_cname]
128+
mass_info <- filter_object[,"Mass"]
130129

131130
# get indices for which ones meet the requirement #
132131
inds <- which(mass_info <= max_mass & mass_info >= min_mass)
133132

134133
if(length(inds) < 1) stop("Filtering using the specified minimum and maximum masses results in no peaks left in the data.")
135134

136135
# sample identifiers to keep #
137-
edata_ids = filter_object[inds, edata_cname]
136+
edata_ids = filter_object[inds, "ID__"]
138137

139138
temp_edata = ftmsObj$e_data[which(ftmsObj$e_data[,edata_cname] %in% edata_ids),]
140139
temp_emeta = ftmsObj$e_meta[which(ftmsObj$e_meta[,edata_cname] %in% edata_ids),]

R/mass_filter.R

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,10 @@ mass_filter <- function(ftmsObj){
2626
mass_id = getMassColName(ftmsObj)
2727

2828
# pull two columns from e_meta #
29-
res = data.frame(ID = ftmsObj$e_meta[,edata_id], ftmsObj$e_meta[,mass_id])
30-
names(res)[2] = mass_id
29+
res = data.frame(`ID__` = ftmsObj$e_meta[,edata_id], Mass = ftmsObj$e_meta[,mass_id])
3130

3231
# make sure mass column is numeric #
33-
res[,mass_id] = as.numeric(as.character(res[,mass_id]))
32+
res[,"Mass"] = as.numeric(as.character(res[,"Mass"]))
3433

3534
class(res) = c("massFilt", "data.frame")
3635

tests/testthat/test_filters.R

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,17 @@ context("filtering on peakData objects")
66
test_that("mass filters work correctly on peakData", {
77
data("examplePeakData")
88

9+
# test with a random mass column name and make sure it is unique
10+
tmp_masscol = sample(LETTERS, 10)
11+
tmp_masscol = make.unique(c(colnames(examplePeakData$e_meta), tmp_masscol))[ncol(examplePeakData$e_meta) + 1]
12+
13+
examplePeakData$e_meta[[tmp_masscol]] <- examplePeakData$e_meta[[getMassColName(examplePeakData)]]
14+
attributes(examplePeakData)$cnames$mass_cname = tmp_masscol
15+
916
filtData <- mass_filter(examplePeakData)
1017
expect_true(inherits(filtData, "massFilt"))
1118
expect_true(inherits(filtData, "data.frame"))
1219
expect_true(ncol(filtData) == 2)
13-
expect_true(all(c(getEDataColName(examplePeakData), getMassColName(examplePeakData)) %in% colnames(filtData)))
1420

1521
peakObj2 <- applyFilt(filtData, examplePeakData, min_mass = 200, max_mass = 900)
1622
expect_true(inherits(peakObj2, "peakData"))

0 commit comments

Comments
 (0)