Version updates will be tracked and explained here. Major updates & releases will be particularly highlighted.
\dontrun{} to \donttest{} in .Rd filesDESCRIPTIONsample()Roxgyen2 & devtools::check()tests/testthat/test-BasicRFunctionality.R, test-ResultsFollowupAnalysisAndPlotting.R, test-Stephens2013PLoSONE.globallipids.GLCfuncs.R, and test-Stephens2013PLoSONE.test.funcs.RModels output more user-friendly versions
Models and directed users in main vignette to utilize GetModelPriorMatrix() for a more interpretable version of ModelPriorsreleases on the github repo#pkgdown website for the github repoREADME.mdroxygen2 comments & examplesGetModelPriorMatrix() in ResultsFollowupAnalysisAndPlotting.R so that SigmaAlphas is given a default value to begin with and therefore positioned after LogFilebmass() with some data already created (ie a merged dataset, a phenotype correlation matrix, and priors)
ZScoresCorMatrix should have the same phenotype order as DataSourcesPassChecksForDataSources.R additionsCheckMergedDataSources as an analogue to CheckIndividualDataSources for when a merged dataset is provided.MergeDataGWASAnnotateAndGetMarginalSNPs.R) & that A1 part of ExpectedColumnNamesGetModelPriorMatrix() in the advanced, introductory vignette*.R fileRoxygen2 comments and the first vignette, and finished creating unit testsdevtools::check() results and made required editsbmass.R, Stephens2013PLoSONE.globallipids.GLCfuncs.R, & Stephens2013PLoSONE.test.funcs.Rbmass.R changed GWASThreshFlag from 0/1 to FALSE/TRUE
DetermineAndApplyPriors in GetResultsFromMarginalSNPsAndFormat.RGWASThreshFlag to default as TRUEResultsFollowupAnalysisAndPlotting.R removed a large number of the functions that were potentially more manuscript-specific and likely to become deprecated (most of which were plotting-related)library() calls to proper use of Imports in DESCRIPTION fileGetResultsFromMarginalSNPsAndFormat.R (ie CHECK_0 -- Prob: Throw an error/fail thing here)bmass.R changed PrintLogStatements to PrintProgressbmass.R removed the loadings of library(ggplot2) and library(reshape2)bmass.R removed the commented out ExploreBestModelsUsingPosteriors()bmass.R & main bmass() call added "A1" to ExpectedColumnNamesModels and ModelPriors outputs to more user-friendly versions
Models and possibly condense ModelPriors across all the SigmaAlphasbmass() with some data already created (ie a merged dataset, a phenotype correlation matrix, and priors)
ZScoresCorMatrix should have the same phenotype order as DataSourcestest-ResultsFollowupAnalysisAndPlotting.R, particularly evaluate issues with GetTopModelsPerSNPViaPosteriorstest-Stephens2013PLoSONE.globallipids.GLCfuncs.R and test-Stephens2013PLoSONE.test.funcs.Rmerge() unit tests in tests/testthat/test-BasicRFunctionality.RCheckMergedDataSources as an analogue to CheckIndividualDataSources for when a merged dataset is provided.PassChecksForDataSources.R additions
Marker column, input MergeDataSources file, etc… as wellMergeDataGWASAnnotateAndGetMarginalSNPs.R) & that A1 part of ExpectedColumnNameswrite(...stderr()) is functioning in bmass.R (since it seems like that might not be occuring like I was expecting it to?)ResultsFollowupAnalysisAndPlotting.R (eg GetModelPriorMatrix, GetTopModelsPerSNPViaPosteriors, ``, etc…)GWASThreshFlag & GWASThreshValue functionalityMergeDataSources() from AnnotateMergedDataWithGWASSNPs() in main bmass() call since the two parts take very different times, ie former is longer than the latter.AnnotateDataWithGWASSNPs to a quicker version where the loop is over the GWAS SNPs and not the merged dataset; taking advantage of in-line conditional statements as well for row selection.PrintMergedData to indicate whether bmassOutput$MergedDataSources should be included as part of the output and not made NULL. This would be for whether a user wants to save a copy of MergedDataSources and reuse it for later runs.bmass() input variable ZScoresCorMatrix that allows users to manually use a specified phenotype correlation matrix.DetermineAndApplyPriors to output PreviousSNPs$logBFs in the sections when ProvidedPriors is not NULL and when UseFlatPriors is TRUE.Marker column as an expectation for input files in lieu of the ChrBP column I constructed. If ChrBP is desired to be used as marker names, it can be created by users before submitting the files to bmass().GWASsnps not only by input GWASsnps file but also by a GWAS p-value threshold (via GWASThreshFlag & GWASThreshValue)PreviousSNPs sections in GetResultsFromMarginalSNPsAndFormat.R (both DetermineAndApplyPriors and FinalizeAndFormatResults) with ...if (!is.null(GWASsnps)) {... encapsulation as neededwrite(..., stderr()) statements to mimic calls to LogFile1 to be produced as bmass() runs, eg giving user a live look into how/where the script is proceeding. These statements are a bit more broad/higher-level than the LogFile1 calls themselves. Also created PrintLogStatements (default FALSE) to turn this functionality on/off.MergeDataSources, added in section post-merge that checks SNPs still have correct MAF (eg <= .5).
CheckIndividualDataSources section.
CheckDataSourceMAFIsMAF and CheckDataSourceMAFFixed functions.bmass.devlog.vs1.txt to bmass.devlog.vs1.md.GetSumAcrossSigmaAlphas_withPriors.$ from atomic vector style calling in AnnotateDataWithGWASSNPs after move away from apply function.logBF to logBFs.ProvidedPriors in CheckIndividualDataSources to expect 3 ^ (length(DataSources) * length(SigmaAlphas)), not 3 ^ length(DataSources).bmass.R changed if (is.null(PrintMergedData)) { to if (PrintMergedData == FALSE) {, and changed default value of PrintMergedData from NULL to FALSE.posteriorprob so that prior in apply(prior * 10^lbf,2,normalize) now specifies the proper matrix dimensions rather than assuming, given proper length, prior will be multiplied along lbf filling column-wise first (which it does by default).MergedDataSources as one of the return values of ProcessMergedAndAnnotatedDataSources in MergeDataGWASAnnotateAndGetMarginalSNPs.RSigmaAlphas as an input to GetModelPriorMatrix in ResultsFollowupAnalysisAndPlotting.RZScoreHitFlag1 cutoff by including 2*pnorm...if (nrow(SummaryOfTopModels) > 1) {... to GetTopModelsPerSNPViaPosteriors in ResultsFollowupAnalysisAndPlotting.R because (apparently) reordering a single-row matrix in the way that I’m doing it messes up its classification as a matrix; after this command, and loss of matrix class, the following colnames() command throws an error. This does not occur when there are more than one row and an actualy ‘re-ordering’ occurs (presumably).CheckMergedDataSources as an analogue to CheckIndividualDataSources for when a merged dataset is provided.PassChecksForDataSources.R additions
Marker column, input MergeDataSources file, etc… as wellExpectedColumnNamestestthatPrepareData.R to better designated .R filesNewHits to NewSNPsNewSNPs creation section to after creation of logBFs and PosteriorProbabilities matrices from MarginalHits; moved NewHits <- NULL initialization section of entire codeLogFile1 to LogFileProvidedPriors to be the first option in the if/elseif/else block that also checks is.null(GWASsnps)..., etc…testthat, including for basic R functionality, PassChecksForDataSources.R, andGWASsnps_AnnotateWindowMarginalHits to MarginalSNPs, including in variable names, eg PruneMarginalHits and PruneMarginalHits_bpWindowGetLogBFsFromData into GetLogBFsFromData and DetermineAndApplyPriorsGetResultsFromMarginalSNPs.R to GetResultsFromMarginalSNPsAndFormat.R, moved FinalizeAndFormatResults() back to GetResultsFromMarginalSNPsAndFormat.R, and removed FormatAndPrepareResults.RExploreBestModelsUsingPosteriors to put code chunks dealing with posteriors and related analyses such as BestClassFollowupResultsAnalysisFormattingAndPlotting.R to ResultsFollowupAnalysisAndPlotting.RExploreBestModelsUsingPosteriors into ResultsFollowupAnalysisAndPlotting.RTestData1.txt, TestData2.txt, and TestSigSNPs.txt to bmass_TestData1.txt, bmass_TestData2.txt, and bmass_TestSigSNPs.txtCheckCharacterFormat to CheckCharacterClassCheckDataSourceDirectionColumn, moving from a for loop to use of ...if (length(...[...!= "+" & ... != "-"]) > 0 )...LogFile to bmassOutput$LogFile in main bmass.R filebmassOutput as a way to hold temp variables since can output and assign multiple variables via the list structure and self-made functions. Eg cannot do c(var1, var2) <- function(input1), but can do list1[c("var1", "var2")] <- function(input1) assuming function outputs a list with two entriespaste(..., collapse=" ") at end of stop() calls that had DataSources[!DataSources...]-type error messages
stop() seems to already have some automatic paste()-type calls? Eg how it can incorporate my call to paste() at the end without any additional specificationsLogBF to logBF in all instances except for function name GetLogBFsFromDataif (!is.null(bmassSeedValue)) {... section to within the else{...} portion of the if (!is.null(ProvidedPriors)) {... blockPriors_Used to ModelPriors_UsedGetSumAcrossSigmaAlphas_withPriors changed ModelPriors to ModelPriors_MatrixGetSumAcrossSigmaAlphas_withPriors in FinalizeAndFormatResults, including ...matrix(...nrow=length(ModelPriors)...)... to make the number of rows explicitbmassOutput to include the list() structure of MaringalSNPs, NewSNPs, and PreviousSNPsbmassOutput: NewSNPs, NewSNPs$SNPs, NewSNPs$logBFs, NewSNPs$Posteriors
bmassOutput variables and associated lists at beginning of functionSNPMarginalpValThreshold to SNPMarginalUnivariateThreshold and SNPMarginalMultivariateThresholdPosteriorProbabilities to PosteriorsMarginalSNPs, NewSNPs, and PreviousSNPs setup with list() formatting
PreviousSNPs from GWAShitsBestModel_Posterior to PreviousSNPs mostly has a reminder/placeholder for the time being to expand on it later for both NewSNPs and MarginalSNPsbmassOutput warranted moving to version 0.1.0
BestModel as a variable for every SNP? Include posterior as well as the model itself?ModelMatrix, AllBut1Assoc, and MarginalPosteriors into this area?bmassOutput variableis.null(GWASsnps) & else subsectionsPruneMarginalHits flaglogBFs and PosteriorProbabilities output matrices
GetSumAcrossSigmaAlphas_withPriors()NewSNPs output variable, in conjunction with GWASlogBFMinThresholdbmassOutputbmassOutput:
MarginalSNPsModelPriorslogBFsPosteriorProbabilitiesGWASlogBFMinThresholdNewSNPsbmassOutputbmassOutput associated variables
bmassOutput results