Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

protein_quant: combine different emeta_cols values mapping to a protein #308

Merged
merged 9 commits into from May 15, 2024

Conversation

evanglass
Copy link
Collaborator

@evanglass evanglass commented Feb 6, 2024

Putting this here to be a bit more visible, but there are still a couple things that need to be addressed:

  • Wording of the warning
  • What to do with isoform e_meta version
  • Ensure tests pass

Example test cases:

# This code should succeed without any warnings, with column B remaining in e_meta
mypepData <- group_designation(omicsData = pep_object, main_effects = c("Phenotype"))
mypepData = edata_transform(omicsData = mypepData, "log2")

imdanova_Filt <- imdanova_filter(omicsData = mypepData)
mypepData <- applyFilt(filter_object = imdanova_Filt, omicsData = mypepData, min_nonmiss_anova = 2)

imd_anova_res <- imd_anova(omicsData = mypepData, test_method = 'comb', pval_adjust_a_multcomp = 'bon', pval_adjust_g_multcomp = 'bon')

mypepData$e_meta$B <- sapply(mypepData$e_meta$RazorProtein, nchar)

results <- protein_quant(pepData = mypepData, method = 'rollup', combine_fn = 'median', emeta_cols = "B")
print(names(results$e_meta))
# This code should give a warning and remove the A column from e_meta
mypepData <- group_designation(omicsData = pep_object, main_effects = c("Phenotype"))
mypepData = edata_transform(omicsData = mypepData, "log2")

imdanova_Filt <- imdanova_filter(omicsData = mypepData)
mypepData <- applyFilt(filter_object = imdanova_Filt, omicsData = mypepData, min_nonmiss_anova = 2)

imd_anova_res <- imd_anova(omicsData = mypepData, test_method = 'comb', pval_adjust_a_multcomp = 'bon', pval_adjust_g_multcomp = 'bon')

mypepData$e_meta$A <- round(runif(nrow(mypepData$e_meta)), 1)*10

results <- protein_quant(pepData = mypepData, method = 'rollup', combine_fn = 'median', emeta_cols = "A")
print(names(results$e_meta))
# This code should give a warning about and remove column A, but still keep the B column in the e_meta
mypepData <- group_designation(omicsData = pep_object, main_effects = c("Phenotype"))
mypepData = edata_transform(omicsData = mypepData, "log2")

imdanova_Filt <- imdanova_filter(omicsData = mypepData)
mypepData <- applyFilt(filter_object = imdanova_Filt, omicsData = mypepData, min_nonmiss_anova = 2)

imd_anova_res <- imd_anova(omicsData = mypepData, test_method = 'comb', pval_adjust_a_multcomp = 'bon', pval_adjust_g_multcomp = 'bon')

mypepData$e_meta$A<- round(runif(nrow(mypepData$e_meta)), 1)*10
mypepData$e_meta$B<- sapply(mypepData$e_meta$RazorProtein, nchar)

results <- protein_quant(pepData = mypepData, method = 'rollup', combine_fn = 'median', emeta_cols = c("A", "B"))
print(names(results$e_meta))
# This code should also give a warning about column A and keep column B, but should use isoforms.
mypepData <- group_designation(omicsData = pep_object, main_effects = c("Phenotype"))
mypepData = edata_transform(omicsData = mypepData, "log2")

imdanova_Filt <- imdanova_filter(omicsData = mypepData)
mypepData <- applyFilt(filter_object = imdanova_Filt, omicsData = mypepData, min_nonmiss_anova = 2)

imd_anova_res <- imd_anova(omicsData = mypepData, test_method = 'comb', pval_adjust_a_multcomp = 'bon', pval_adjust_g_multcomp = 'bon')

isoformRes = bpquant(statRes = imd_anova_res, pepData = mypepData)

mypepData$e_meta$A<- round(runif(nrow(mypepData$e_meta)), 1)*10
mypepData$e_meta$B<- sapply(mypepData$e_meta$RazorProtein, nchar)

protein_quant(pepData = mypepData, method = 'rollup', combine_fn = 'median', isoformRes = isoformRes, emeta_cols = c("A", "B"))

@evanglass evanglass marked this pull request as draft February 6, 2024 23:50
@evanglass evanglass changed the title Draft: protein_quant: warn when invalid column is in emeta_cols protein_quant: warn when invalid column is in emeta_cols Feb 6, 2024
@clabornd clabornd marked this pull request as ready for review February 8, 2024 17:45
@clabornd clabornd marked this pull request as draft February 8, 2024 17:45
@evanglass evanglass marked this pull request as ready for review February 13, 2024 22:51
@evanglass evanglass changed the title protein_quant: warn when invalid column is in emeta_cols protein_quant: combine different emeta_cols values mapping to a protein Mar 9, 2024
@clabornd
Copy link
Contributor

Ran through all the examples and looks good to me. For the tests, basically the construction of the 'standards' needs to be updated to have the emeta_cols included. The original tests just seem to ignore this.

e.g. the construction of stan_mea

stan_mea <- as.proData(
needs to include a column 'Peptide_Sequence'

add argument for separator of collapsed emeta_cols values in protein_quant
@clabornd
Copy link
Contributor

@evanglass I wanted to get these changes in before I do a release, added one small change that I think resolves the test failures. I believe it was that rows for the extra emeta_cols were being collapsed before the counting of peps_per_pro/n_peps_used could be done.

Nothing to do on your part I think unless you see a problem with my commit.

@clabornd clabornd merged commit 798eceb into master May 15, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

protein_quant() -- Argument emeta_cols doesn't seem to keep the columns specified?
2 participants