From a09b9bdf1d16e2597ee8f5d9447e2a90d6b4e10b Mon Sep 17 00:00:00 2001 From: Tony Wu Date: Tue, 27 Aug 2024 15:47:04 -0400 Subject: [PATCH] docs(vignette): Integrate MSstats workflow into vignette and test data --- R/getSubnetworkFromIndra.R | 2 +- R/visualizeNetworks.R | 2 +- inst/extdata/groupComparisonModel.csv | 8 +++++ inst/extdata/indraResponse.rds | Bin 0 -> 1362 bytes .../subnetwork.rds | Bin inst/processed_data/groupComparisonModel.csv | 5 --- inst/processed_data/indraResponse.rds | Bin 17738 -> 0 bytes inst/script/groupComparisonModel.R | 31 ++++++++++++++++++ man/getSubnetworkFromIndra.Rd | 2 +- man/visualizeNetworks.Rd | 2 +- tests/testthat/test-getSubnetworkFromIndra.R | 18 +++++----- tests/testthat/test-visualizeNetworks.R | 4 +-- vignettes/MSstatsBioNet.Rmd | 10 ++++-- 13 files changed, 61 insertions(+), 23 deletions(-) create mode 100644 inst/extdata/groupComparisonModel.csv create mode 100644 inst/extdata/indraResponse.rds rename inst/{processed_data => extdata}/subnetwork.rds (100%) delete mode 100644 inst/processed_data/groupComparisonModel.csv delete mode 100644 inst/processed_data/indraResponse.rds create mode 100644 inst/script/groupComparisonModel.R diff --git a/R/getSubnetworkFromIndra.R b/R/getSubnetworkFromIndra.R index 1cd3655..6541565 100644 --- a/R/getSubnetworkFromIndra.R +++ b/R/getSubnetworkFromIndra.R @@ -11,7 +11,7 @@ #' #' @examples #' input <- data.table::fread(system.file( -#' "processed_data/groupComparisonModel.csv", +#' "extdata/groupComparisonModel.csv", #' package = "MSstatsBioNet" #' )) #' # subnetwork = getSubnetworkFromIndra(input, pvalue_cutoff = 0.05) diff --git a/R/visualizeNetworks.R b/R/visualizeNetworks.R index 6ec8520..e61ba13 100644 --- a/R/visualizeNetworks.R +++ b/R/visualizeNetworks.R @@ -13,7 +13,7 @@ #' #' @examples #' input <- data.table::fread(system.file( -#' "processed_data/groupComparisonModel.csv", +#' "extdata/groupComparisonModel.csv", #' package = "MSstatsBioNet" #' )) #' # subnetwork = getSubnetworkFromIndra(input) diff --git a/inst/extdata/groupComparisonModel.csv b/inst/extdata/groupComparisonModel.csv new file mode 100644 index 0000000..86bd535 --- /dev/null +++ b/inst/extdata/groupComparisonModel.csv @@ -0,0 +1,8 @@ +"Protein","Label","log2FC","SE","Tvalue","DF","pvalue","adj.pvalue","issue","MissingPercentage","ImputationPercentage","HgncId" +"B9A064","neg vs pos",0.289168813227902,0.0290298430266267,9.96108773177556,2,0.00992843836713075,0.0694990685699153,NA,0,0,"38476" +"O00391","neg vs pos",0.61514367352039,0.607915303579319,1.01189042272585,1,0.496237573382871,0.496237573382871,NA,0.25,0,"9756" +"O14818","neg vs pos",-0.351724166825181,0.180293183487185,-1.95084561724532,2,0.190360070677825,0.333130123686193,NA,0.208333333333333,0.208333333333333,"9536" +"O43598","neg vs pos",0.444322024324174,0.222001037180599,2.00144120931613,2,0.18330743657428,0.333130123686193,NA,0.1875,0.1875,"21218" +"O43707","neg vs pos",-0.678628567390453,0.196242424527707,-3.45811344832135,2,0.0744090385980984,0.260431635093345,NA,0.140625,0.140625,"166" +"P16050","neg vs pos",0.239036560821488,0.213802694760769,1.11802407864388,2,0.379829709925256,0.443134661579466,NA,0.134615384615385,0.134615384615385,"11390" +"P84243","neg vs pos",-1.03311234546861,0.833093604461367,-1.24009155746258,2,0.3406963949584,0.443134661579466,NA,0.125,0.125,"4765" diff --git a/inst/extdata/indraResponse.rds b/inst/extdata/indraResponse.rds new file mode 100644 index 0000000000000000000000000000000000000000..8b36c36b02fc3dd3bb816e99b78ecb2ae6fd9b09 GIT binary patch literal 1362 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�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