Note: as of 2009/03/10, changes that lead to different calculational results are marked as DIFF. 2023/12/06: 1.72-5 . Minor fixes in code and help files 2023/12/06: 1.72-4 . Minor fixes in code and help files 2023/11/27: 1.72-3 . Several minor fixes in help files. . Minor changes in internal code for labeledHeatmap . Fixes in internal code to remove compile warnings and use of deprecated functions 2023/08/14: 1.72-2 . Bugfix in function plotEigengeneNetworks reported by Ramón Fallon . Minor changes in internal code for labeledHeatmap 2023/01/18: 1.72-1 . Minor changes to compy with CRAN requirements 2023/01/07: 1.72 . Version bump for release 2022/12/29: 1.71-7 . Small changes in default position of legend label in labeledHeatmap . C code reorganized to conform to the requirement of declaring all function prototypes before definition . Fixed version numbers in changelog. 2022/11/01: 1.71-6 . Bugfix in modulePreservation fixes checking for testNetworks out of range. The bug made no difference for valid inputs. 2022/10/24: 1.71-5 . Function overlapTable nwo also returns a matrix of expected overlap counts and a matrix of ratios of observed and expected overlap counts. . Bugfix in individualTOMs that fixes a crash in hierarchicalConsensusModules when networkOptions are given as a single object of class networkOptions. . Internal functions for creating heatmaps with legend are improved. 2022/09/14: 1.71-4 . Function overlapTable now optionally returns logarithms of the overlap p-values. 2022/07/03: 1.71-3 . Function prependZeros now gets the number of characters correctly even for numbers like 100000 which were previously formatted to 1e05. 2022/07/02: 1.71-2 . Functions matchLabels and overlapTable now work also in the case where one set of labels consists entirely of ignored labels. . Function imputeByModule only imputes data in those modules that actually contain missing data. 2022/05/22: 1.71-1 . empiricalBayesLM is a bit informative about failed initial regressions. 2022/04/22: 1.71 . Version bumb for release 2022/04/08: 1.70-80 . Bugfix in blueWhiteRed and greenWhiteRed that makes the pallettes symmetric for small odd values of n. . Function sampleModules now runs nRuns sampled calculations (and optionally also the unsampled calculation) rather than always running precisely nRuns calculations. . Function blueWhiteRed now accepts arguments giving the blue end, red end and middle colors. . Fixed bug in positioning color legend label for labeledHeatmap and related functions. . verboseIplot now accepts argument showMSE that can supress printing of MSE in the title of the plot. . verboseScatterplot now accepts argument showPValue that can suppress printing of the p-value in the title of the plot. . addGrid now accepts arguments linesPerTick.horiz and linesPerTick.vert allowing the user to set the number of lines per tick separately for the vertical and horizontal lines . empiricalBayesLM now accepts argument scaleMeansOfSamples that works in conjunction with scaleMeansToSamples to fine tune how the adjustment is applied. 2021/03/01: 1.70-4 . plotColorUnderTree and plotDendroAndColor now work also when there the 'colors' argument has length zero, producing an empty color plot. . Improvements in internal code plotting legends for labeledHeatmap. 2021/02/17: 1.70-3: . Bugfixes of bugs introduced in 1.70-2 2021/02/13: 1.70-2: . Fixed problem in moduleEigengenes with argument 'expr' not having 'rownames'. 2021/02/13: 1.70-1: . Fixed several old web links in help files 2021/02/10: 1.69-86, 1.70 . Internal code for generating axis ticks now works when the limits have zero range. . Help files for blockwiseIndividualTOMs and blockwiseConsensusModules updated. 2020/12/18: 1.69-85 . Internal code for plotting legends for heatmaps expanded to be able to plot several color columns per legend. 2020/11/03: 1.69-84 . Internal code for plotting color scale/axis for heatmaps can now add an axis label. . Corrected help files. 2020/07/12: 1.69-83: . Code for labeledHeatmap.multipage was simplified by taking advantage of arguments showRows and showCols to labeledHeatmap. This also solves incorrect font size and colors for the row and column labels. 2020/05/08: 1.69-82: . blockwiseConsensusModules and friends now use make.unique before assigning rownames, to guard against duplicate rownames errors. 2020/04/30: 1.69-81 . Bugfix in internal code fixes failure of labeledHeatmap with only one column or row. 2020/03/03: 1.69-80 . Minor enhancements in internal code (function .plotOrderedColorSubplot). 2020/02/28: 1.68-86, 1.69 . Argument nameOut to userListEnrichment now accepts value NULL to suppress generating a file with the results. . lmRob has been removed as an automatically supported optional initial fit function in empiricalBayesLM (due to the package 'robust' having been orphaned and archived on CRAN). . labeledHeatmap and internal function heatmapWithLegend now take optional argument colorMat allowing the user to specify the cell colors explicitly. . Internal function heatmapWithLegend shoudl be able to use handle transparent as color for missing data. . Bugfix in internal function used in plotColorUnderTree and plotOrderedColor. 2020/02/08: 1.68-84 . Further bugfixes in plotOrderedColor. 2020/02/06: 1.68-83 . plotOrderedColors, plotColorUnderTree and plotDendroAndColors gain argument separatorLine.col to set (or omit) separator lines between color rows. . plotOrderedColors also gains argument align to provide some degree of control over alignment of color rectangles. 2020/02/03: 1.68-82 . Bugfixes in prependZeros and internal code (.boxDimensionsForHeatmapWithLegend). . Internal change: plotOrderedColor is now split into user-facing wrapper and the workhorse internal function that can be called from other functions as well. . Internal change: split off labeledHeatmap into is own file. . prependZeros now handles fractional numbers better. . goodSamplesMS and goodSamplesGenesMS now copy the 'names' attribute of the input 'multiExpr' to the output. . Function hierarchicalConsensusModules and pruneAndMergeConsensusModules now calculate eigengenes with more regard to resource utilization, skipping the some unneeded calcualtions. . Bugfix in labeledHeatmap and related functions; showing two separators at the same position now works. . metaAnalysis now works with a single data set. . Example for chooseTopHubInEachModule has been simplified. . DIFF: Argument scaleMeanToSamples for function empiricalBayesLM now defaults to fitToSamples. This will produce adjusted data wwith different means than before if non-trivial fitToSamples is used. (The variation of the adjusted data is unchanged, i.e., correlations of the adjusted data will be the same as before.) To reproduce old results, use scaleMeanToSamples = NULL when calling empiricalBayesLM. 2019/06/18: 1.68-80 . binarizeCategoricalColumns.forPlots now accepts argument checkNames. 2019/06/02: 1.68-2 . Internal code checking and scaling multiData weights is now more general. 2019/05/30: 1.68-1 . Function matchLabels is now nearly two orders of magnitude faster. . Bugfix in sizeRestrictedClusterMerge fizes an error that ocurred when some clusters were of size 1 2019/05/22: 1.68 . Bugfix in sizeRestrictedClusterMerge which also benefits projectiveKMeans and blockwiseModules fixes an occasional crash. Bug reports and assistance of several users, especially Luis Revilla, is gratefully acknowledged. . Bugfixes in blockwiseModules, blockwiseConsensusModules and individualTOMs fix non-propagation of randomSeed to projectiveKMeans. The default randomSeed for the 3 functions has changed to match that of projectiveKMeans and consensusProjectiveKMeans to make previous results reproducible. . plotOrderedColor now returns some of the plotting information, useful for adding to the plot. . modulePreservation gains arguments multiWeights representing optional observation weights of expression data, and goldName that can be used to change the label used for all-network sample. . Adding arguments horizontalSeparator.interval and verticalSeparator.interval to labeledHeatmap . Change in sampledHierarchicalModules: saveIndividualTOMs and saveConsensusTOM arguments for the underlying hierarchicalConsensusModules can be set as arguments rather than being hardcoded. 2019/05/05: 1.67-90 . Bugfix in sizeRestrictedClusterMerge and projectiveKMeans that calls it fixes occassional crash (reported on Stackexchange by user holly) . Bugfix in modulePreservation: empty rownames of certain matrices do not cause a crash anymore. . New (experimental) versions of Topological Overlap (TOM) are available. . bugfix in exportNetworkToVisANT thanks to Guangjian Du . consensusProjectiveKMeans is a bit more efficient, especially when the number of sets is 1. . goodGenes should be faster when weights are not supplied 2019/04/11: 1.67 . moduleEigengenes and derived functions (multiSetMEs) now copy row names of the input data as row names of the output matrices. . blockwiseModules, blockwiseConsensusModules, their 'recut' versions and blockwiseHierarchicalModules now copy the column names of input data into names of output module labels and colors. Row names of input data are copied into row names of the corresponding module eigengene matrices. . Startup message regarding setting up multi-threading is now disabled. 2019/04/09: 1.66-92 . bugfix in labeledHeatmap makes vertical separator lines better aligned with standard position of labels. . exportNetworkToCytoscape does not check column names in nodeAttr for being valid language names. 2019/02/25: 1.66-90 . Bugfix in consensusTOM: saving calibrated TOMs should work now. . Function formatLabels now accepts optional argument font. . Function hierarchicalConsensusKME now accepts argument getMetaColsFor1Set that controls whether meta-statistics are returned when the consensus only has 1 input set. . One more bugfix in internal code (.interleave) . Bugfix in internal code (.interleave) fixes crashes in hierarchicalConsensusKME . Bugfix in multiGrep fixes sorting order when returning values rather than indices. . Functions consensusKME and hierachicalConsensusKME now don't throw an error on duplicate column names in input data. . Changed default for argument saveConsensusData from TRUE to NULL (automatically determined from input data) in function consensusCalculation . Signed TOM described by Nowick et al (PNAS, 2009) is implemented and can be accessed using TOMType = "signed Nowick" for all TOM calculation and module identification functions that take argument TOMType. Argument suppressNegativeTOM can be used to automatically set all negative TOM values to zero. . New argument suppressNegativeResults for newConsensusOptions. . New function sizeRestrictedClusterMerge for merging clusters such that the resulting clusters do not exceed a specified size. . hierarchicalConsensusKME is now more robust and works with a single module as well. 2018/10/22: 1.66 . Function consensusDissTOMandTree is now a it faster because of more efficient garbage collection. . Function verboseBarplot can now optionally add text labels to the (also optional) scatterplot. . In internal functions plotting heatmap legends, widths are now specified in inches rather than in user coordinates. . Hierarchical consensus module merging is now more robust to unusual cases with 0 or only 1 module. . Bugfix in hierarchicalConsensusModules: supplying a single networkOptions dows not produce an error. . pruneAndMergeConsensusModules now checks for presence of at least one module; if no modules are present, it returns the input labels rather than throwing an error. . DIFF: Bugfix in hierarchicalConsensusModules changes the order of imputation and removal of genes and samples with too many missing values. This may lead to slightly different module eigengenes. 2018/10/02: 1.65 . Bugfix in modulePreservation fixes duplicate rownames error. . Function signedKME now checks that colnames of the input data are unique and makes them unique if not. . Consensus calculations now return origin count for all consensus quantiles and the mean consensus. Origin count for each set is the number of (calibrated) values from the set that are less than or equal the consensus. . New function consensusTreeInputs for getting inputs of a consensus tree. 2018/09/24: 1.64-81 . Fixed crash in softConnectivity when weights are used. . Fixed bug in labeledHeatmap that transposed a 1-row matrix into a 1-column one. . Fixed minor typos in errors emitted by labeledHeatmap. 2018/09/14: 1.64-80 . empiricalBayesLM now accepts optional argument fitToSamples that can restrict the fitting process to a subset of samples. The argument order was also rearranged to make the order more logical. 2018/09/09: 1.64-1 . binarizeCategoricalColumns.for... have re-ordered and in some cases added arguments to make them more useful. 2018/09/05: 1.64 . Web site link updated . Documentation for cor has been improved by making more precise what nThreads actually affects . Documentation for pickSoftThreshold.fromSimilarity has been improved thanks to a suggestion from Paolo Inglese. . Function signedKME has been streamlined and a bug in which gene names in the output were passed through check.names in coercing the input to a data frmae is now fixed. . New functions binarizeCategoricalVariable, binarizeCategoricalColumns, and related wrappers for binarizing categorical covariates into sets of binary indicators . labeledHeatmap now accepts arguments showRows and showCols that allow one show a subset of the heatmap without having to explicitly subset all row- and column-specific arguments . branchSplitFromStabilityLabels.individualFraction can now work with missing entries in cluster labels . New function signifNumeric for rounding numeric columns of a data frame. . Bugfix in corFast: argument 'use' is now interpreted properly (thanks to Thomas Mohr for the report). . Argument networkType has been removed from the function pickSoftThreshold.fromSimilarity where it has not been used; help file has been adjusted accordingly (thanks to Max Moldovan for reporting the issue). . mtd.mapply now prints a more informative error message. . bugfix in GOenrichmentAnalysis which now works again. 2018/03/21: 1.63-2 . TOM calculation now gives 0 for completely unconnected nodes, instead of returning NaN 2018/02/26: 1.63 . Bugfix in blockwiseModules fixes a crash caused by supplying weights to bicor . DIFF: correlation options such as maxPOutliers are now by default used throughout function blockwiseModules. New argument useCorOptionsThroughout can be used to switch to old behaviour where the arguments were used only for network construction. 2018/02/10: 1.62 . New functions sampledBlockwiseModules and sampledHierarchicalConsensusModules carry out network analysis repeatedly on resampled data. . TOM calculations can optionally use internal matrix algebra rather than R- (or system-)provided BLAS, controlled by argument useInternalMatrixAlgebra. . Pearson correlation (function cor) now accepts individual sample weights for arguments x and y. When both weights are supplied (and for correlation of a columns in a single matrix), the weights are a product of the weights for the two vectors being correlated. Denominators are calculated separately using separate weights, which leads to slightly different results than standard weighted correlation. . Most network construction functions now also accept optional weights. . hierarchicalConsensusModules can now optionally perform gene/module pruning and merging iteratively. . New functions pruneConsensusModules and pruneAndMergeConsensusModules implement the pruning and iterative pruning/merging of hierarchical consensus modules. . Network construction functions now accept argument suppressTOMForZeroAdjacencies whose effect is to set TOM to zero for all node pairs with zero adjacency. . Bugfix in individualTOMs: function now works with default useDiskCache . Module eigengenes returned by blockwiseConsensusModules now carry names copied from names of multiExpr . New function imputeByModule . Bugfix in verboseBoxplot and verboseBarplot: the function now honors the setting of addScatterplot and correctly interprets point color and other arguments when they are vectors. . Enhancements and bugfixes in TOMplot which should work with all data sizes and dendrogram complexities. . Function formatLabels now avoids over-splitting labels that already contain a newline character. . Function labeledHeatmap can plot row labels on the right, specified via argument yLabPosition. . Bugfix in internal function .networkCalculation 2017/08/04: 1.61 . Bugfix in consensusCalculation: function works with mean consensus. . New arguments pch and plotPriority for verboseScatterplot. . Function pmin has been removed since it incorrectly duplicates base::pmin. . Function GOenrichmentAnalysis is deprecated. Please use function enrichmentAnalysis from R package anRichment, available from https://labs.genetics.ucla.edu/horvath/htdocs/CoexpressionNetwork/GeneAnnotation/ 2017/07/07: 1.60 . empiricalBayesLM expanded with additional arguments allowing specification of initial fit function . DIFF: New branch split function that works with stability labels, branchSplitFromStabilityLabels.individualFraction, that tweaks the branch dissimilarity measure to work better when one branch is large and one small. To reproduce old results, use argument stabilityCriterion = "Common fraction" to functions hierarchicalConsensusModules and blockwiseConsensusModules. . verboseBoxplot and verboseBarplot can now optionally overlay scatterplots of the underlying data (thanks to Zhijin (Jean) Wu for suggestion and code). . Bugfix in enrichmentAnalysis: function does work when the number of reported terms is zero. (Thanks to Zhijie Cao for bug report and fix.) . New functionality that allows a hierarchical calculation of consensus modules, with multiple new functions. . New arguments colorHeightBase, colorHeightMax control layout in function plotDendroAndColors . Arguments controlling the legend size in heatmaps with legends been tweaked to make the legend width independent of the width of the plotting region. . The horizontal adjusting of row labels in labeledHeatmap can now be set using the new argument x.adj.lab.y. . Bugfix in mtd.susbet: function now works properly when invert is TRUE. . formatLabels can now format strings to a maximum width in user coordinates and shorten the results to a given number of lines. . Limitation to block sizes less than the integer addressing limit (sqrt(2^31)) has been removed. . Multiple mtd.... functions now return NULL when the input multiData argument has length zero. . Function adjacency now accepts corOptions in both character and list formats. . New function minWhichMin that calculates the row- or column-wise minimum and index of the minimum. . New functions pmin.fromList, pmean.fromList, pquantile.fromList, for parallel minimum, mean and quantile whose input is a list of identically sized arrays; functions pmin, pmean and pquantile now use compiled code and should be substantially faster and more memory efficient. . Bugfix in function blockwiseModules: corrected conditional module removal if too few genes remain. . pickSoftThreshold is now faster thanks to Alexey Sergushichev; new argument gcInterval allows the user to fine tune frequency of garbage collection to suit the size of the data. . verboseBarplot now takes argument ylim which defaults to incorporating all bar heights plus error bars (if requested) . Cleanup in function labeledHeatmap: incorrect text and color label offsets and widths fixed. The corresponding arguments xColorWidth, yColorWidth are now measured in user units rather than fractions of overall width and height. . New functions bicovWeightFactors and bicovWeightsFromFactors 2016/05/30: 1.52 . New function plotMultiHist for plotting multiple histograms in one plot . New functions multiGrep, multiGrepl, multiSub, multiGSub . New argument invert in mtd.subset allows consistent excluding of rows and columns from multiData structures. . Bugfix in modulePreservation: accuracy statistics now work also with a single module. Thanks to Victor Hanson-Smith for pointing this out. . mtd.rbindSelf now warns when colnames of the individual data sets do not agree. 2016/03/08: 1.51 . DIFF: Defaults for the number of pre-clustering centers in blockwise[Consensus]Modules, projectiveKMeans and consensusProjectiveKMeans have changed to prevent the pre-clustering from becoming too long. To reproduce old results, use (nPreclusteringCenters or nCenters) = min(nGenes/20, maxBlockSize^2/nGenes), where nGenes is the number of genes (variables) in the input data. 2016/02/23: 1.50 . Bugfix in function cor: function now correctly handles cases where columns have missing data placed such that the remaining entries (after removing missing values) have zero variance. Thanks to Pasha Mazin for pointing this out. . New function consensusRepresentatives for selecting consensus representatives from multi-data. . Cleanup in plotOrderedColors should results in better placement of 'rowText' under blocks of colors. . Minor change in spacing for row text in plotOrderedColors that also affects plotColorUnderTree and plotDendroAndColors . TOM calculation functins (TOMsimilarity, blockwiseIndividualTOMs, blockwiseModules) now accept argument replaceMissingAdjacencies that allows the underlying code to replace missing adjacencies with an appropriate value for zero-strength link. . moduleEigengenes is now more resistant to problems with missing data and zero-variance variables. 2015/12/27: 1.49 . DIFF: goodGenes, goodGenesMS, goodSamplesGenes, goodSamplesGenesMS get an argument `tol' to compare the variance against, rather than against zero. This prevents erroneous retaining of zero-variacen genes because of numeric under/overflow errors in the fast calculation of variance. This may possibly result in removal of genes that were retained in WGCNA versions 1.47-2 and newer, but should remove the same genes as 1.47-1 and older. 2015/12/16: 1.48-2 . Bugfix in our local copy of heatmap, called from TOMplot, based on the bug report https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=16583 . Thanks to Duncan Murdoch for pointing it out . Function goodSamplesGenesMS can now work with data frames within the multiExpr structure, rather than just matrices. 2015/11/03: 1.48-1 . TOMplot now uses my own dendrogram drawing routine which should not run into the stack/memory allocation problems of the standard plot.dendrogram function. 2015/10/29: 1.48 . Bugfix in pickHardThreshold (and pickHardThreshold.fromSimilarity): when the input is a similarity matrix rather than expression data, the function no longer crashes. 2015/10/09: 1.47-6 . Bug in consensusTOM fixed that caused a spurious error "File names to save blocks of consensus TOM are not unique." when calculating with more than on block. . DIFF: Function consensusProjectiveKMeans can (and will by default) impute missing data. This may cause differences in preclustering when missing data are present. To reproduce old results, use argument imputeMissing = FALSE. 2015/09/30: 1.47-5 . Function consensusKME is now using internal code for re-arranging rather than relying on reshape's melt-cast combination due to performance issues with larger data sets. . Imports from/dependence on reshape have been dropped. . blockwiseConsensusModules accepts argument cacheBase which replaces the default "." that has been used. . labelPoints now returns a data frame with the label positions, and accepts argument doPlot that optionally turns off the plotting of the labels. . bicor now produces a better-worded warnings about zero or missing MAD. 2015/08/07: 1.47-4 . DIFF: projectiveKMeans now by default imputes missing data in datExpr at the start of the function. This can lead to somewhat different output; old behaviour can be forced by setting imputeMissing = FALSE. This change does not affect blockwiseModules since blockwiseModules imputed missing data before calling projectiveKMeans. . Internal code cleanup: several ifelse calls changed to if else constructs to avoid issues with ifelse generics defined by bioconductor . pickHardThreshold is now more resistant to genes (columns) that have zero variance. However, their connectivity is considered 0. . DIFF: Bugfix in internal code fixes an error in blockwiseModules and blockwiseConsensusModules where blocks determined by pre-clustering were incorrectly merged. In rare cases this may cause differences to previous results. Thanks to Elmar Tobi for reporting this. 2015/06/27: 1.47-2 . goodGenes and goodSamples, along with their MS versions, should now run faster thanks to a code clean-up 2015/06/18: 1.47-1 . Bugfix in empiricalBayesLM fixes a crash in the function. 2015/06/13: 1.47 . Functions plotCor, plotMat and rgcolors.func from sma have been re-introduced . empiricalBayesLM is now more robust to missing values, particularly when OLS regression fails due to missing values making some of the covariates constant. . Bugfix in bicovWeights fixes crash when there is one variable with MAD = 0. . Function blockwiseModules can now optionally use module merging criteria derived from stability studies. . Functions blockwiseModules, blockwiseIndividualTOMs and consensusBlockwiseModules now accept argument blockSizePenaltyPower that lets the user specify the severity of penalty for blocks exceeding maximum size. . Functions projectiveKMeans and consensusProjectiveKMeans now accept Inf for sizePenaltyPower. . Function labeledHeatmap.multiPage now accepts more explicit arguments (rather than relying on ... as before) and correctly handles separator lines. 2015/03/28: 1.46 . Functions inherited from the now-defunct package sma have been removed. 2015/03/27: 1.45 . New function empiricalBayesLM for removing unwanted variation due to given covariates from high-dimensional data . New function bicovWeights for assigning weights to observations based on whether they are suspected outliers . labeledHeatmap and friends now accept argument keepLegendSpace . labeledHeatmap now returns information about positions of individual boxes in the heatmap. . labeledHeatmap now accepts argumens xColorOffset and yColorOffset controling the gap between color labels and the heatmap itself. 2015/02/06: 1.43-11 . Bugfix in C code fixes memory allocation errors with large data sets. The C code was also made more consistent in the use of size_t whenever needed and possible. . Bugfix in labeledHeatmap fixes the direction of extended separator lines for x-axis labels with angle other than the default 45 degrees. 2015/01/23: 1.43-10 . Bugfix in function blockwiseIndividualTOMs and functions that use it (blockwiseConsensusModules, consensusTOM) fixes a bug that caused crashes when more than one blocks were used. 2015/01/15: 1.43 . Package now imports AnnotationDbi and GO.db . Function blueWhiteRed gains argument endSaturation that allows the user to lighten the colors at the end of the range, at the expense of saturation. . Function labeledHeatmap gains additional arguments allowing the user to place horizontal and vertical divider lines into the heatmap. . Bugs introduced into GOenrichmentAnalysis in the previous release are now fixed. 2014/11/25: 1.42 . Function TrueTrait has been re-worked and the argument Strata to it is no longer accepted. . labeledHeatmap.multiPage now works with 1-column or 1-row matrices. . The textMatrix argument to labeledHeatmap and labeledHeatmap.multiPage is now allowed to be a (dimensionless) vector as long as its length is consistent with the dimensions of the input Matrix. . Bugfix in function formatLabels fixes sometimes incorrect start of formatted labels. . Bugfixes in function TrueTrait . DIFF: Bugfix in mtd.branchEigengeneDissim that primarilly affects blockwiseConsensusModules. The consensus quantile was incorrectly applied, which led to overly aggressive module merging. The bugfix will lead to a different final modules if useBranchEigengeneDissim was TRUE. To reproduce old behavior, use argument reproduceBranchEigennodeQuantileError = TRUE. . New function consensusTOM implements calculation of consensus TOM in a stand-alone function; this calculation was previously hidden inside blockwiseConsensusModules. . Network calibration methods in consensusTOM now include full quantile normalization . DIFF: bugfix in blockwiseIndividualTOMs that affects blockwiseIndividualTOMs as well as blockwiseConsensusModules: The soft-thresholding power for set 1 was used for all sets. This bug has bow been fixed; to reproduce old calculations, change the old code to use the same power for all sets. I apologize for this rather serious omission. . blockwiseIndividualTOMs gains additional output components. . Internal C code changed some index variables from int to size_t. . Function individualTOMs now uses a more memory-efficient way to call the internal compiled code. . Bugfix in mtd.apply fixes occasional spurious crashes . Function mtd.apply now copies the 'names' attribute from input to the output . Function mtd.subset can now subset columns based on column names, not just numeric indices. . Function votingLinearPredictor can now tolerate missing data in the predictor variables (features). . blockwiseModules gains a new argument loadTOM. 2014/06/13: 1.41-1 . DUP = FALSE removed from all .C calls since the argument is deprecated. This means that memory requirements may increase in some situations. 2014/06/12: 1.41 . New function shortenStrings . Changed several packages we depend on from Depends: to Imports: . New functions prependZeros and formatLabels . Bugfix in userListEnrichment: function no longer crashes when there are no "significant" overlaps . New function intramodularConnectivity.fromExpr 2014/05/07: 1.40 . Functions blockwise[Consensus]Modules and recut[Blockwise,Consensus]Trees get new arguments minSplitHeight and minAbsSplitHeight that get passed to cutreeDynamic. . Arguments for blockwiseModules have been re-ordered to group them and make it easier to find the right setting. 2014/04/28: 1.39 . Function exportNetworkToVisANT can now restrict connections to a given number of top connections. . Function exportNetworkToVisANT returns the resulting data frame invisibly. . Function modulePreservation gains the ability to run the calculations in parallel, controlled by argument 'parallelCalculation'. . Function modulePreservation gains the ability to explicitly specify test sets for each reference network, via parameter testNetworks. . Functions matchLabels and overlapTable have been expanded with new functionality and arguments. matchLabels now works with any labels (not just numeric or color labels) and can handle missing labels by removing them. . Bug in function multiData2list fixed: function now returns a simpler (and correct) list. . Crash-causing bug in mtd.rbindSelf fixed. 2014/01/08: 1.37 . New functions multiUnion and multiIntersect . New function labeledHeatmap.multiPage produces labeled heatmaps divided into multiple plots (pages). . plotColorUnderTree and plotOrderedColorsnow produce more precise "center" and "right" text alignment. . Maximum block size in blockwiseModules, blockwiseConsensusModules and blockwiseIndividualTOMs (argument 'maxBlockSize') is now limited to be less than sqrt(2^31) to prevent problems with C and Fortran routines. The same limitation also applies to the 'preferredSize' argument of projectiveKMeans and consensusProjectiveKMeans. . Occasional bug when saving and loading permutation test results in modulePreservation fixed. 2013/11/22: 1.36 . Needs dynamicTreeCut 1.61 or higher. . Bugfix in mtd.mapply fixes a crash. . Warning message in mtd.subset cleaned up. . New function multiData to conveniently create multiData structures. . The color palette of blueWhiteRed has been tweaked to provide lighter extreme colors which makes it easier to read black text superimposed on the strongest colors. . More descriptive error message in cor() and bicor() when input contains missing data and 'use = "all.observations"'. 2013/11/04: 1.35 . Function accuracyMeasures now works also with factors. . Function moduleEigengenes calls impute.knn only if there are any missing data. . Functions mtd.apply, mtd.applyToSubset, and mtd.mapply gain arguments controling whether and how progress should be displayed; they also gain arguments that let the user specify calculation on only a subset of the input sets. 2013/10/10: 1.34 . Function verboseBarplot gains argument addCellCounts that enables display of counts above each bar. . Function mtd.subset gains the argument 'permissive' that allows subsetting of "loose" multiData structures as well as 'drop' that controls dropping of dimensions with extent 1. . Internal: Depends and Imports fields were cleaned up as per new CRAN requirements. Users should be aware that loading and attaching WGCNA now does not automatically attach all packages from which WGCNA imports. . Potentially serious bug has been fixed in the internal C code for calculations of correlation (function cor()). This bug seems to have led to correlation sometimes returning 0 where it should have returned an NA. 2013/08/29: 1.33 . mtd.apply and mda.applyToSubset gain argument mdaCopyNonData that controls whether non-data components of input should be copied to output . Bug in matchLabels fixed that led to non-integer color labels if two reference modules had the same size. . New function plotOrderedColors that extends plotColorUnderTree to the case where the plot 'above' is not a dendrogram but a general plot (a useful example is a barplot). . DIFF: bugfix in blockwiseModules, recutBlockwiseTrees, blockwiseConsensusModules, recutConsensusTrees: gene reassignment by kME now reassigns correct genes. Previously, the the reassigned genes were incorrectly chosen. This may make a small difference in the module assignments if reassignThreshold was above zero (as it was by default). The default was also changed to not perform module re-assignment. . Switching to dynamicTreeCut 1.60: this dynamicTreeCut uses external criteria that are supplied by the blockwise* functions. The criteria are implemented in functions branchEigengeneDissim, mtd.branchEigengeneDissim, branchSplit, branchSplit.dissim To preserve results of older calculations, new features are disabled by default. . New functions for convenient handling of multiData structures: mtd.apply, mtd.applyToSubset, mtd.mapply, mtd.rbindSelf, mtd.setAttr, mtd.colnames, mtd.setColnames mtd.simplify mtd.subset, list2multiData, multiData2list, isMultiData . Function randomGLMPredictor has been removed. Please use the package randomGLM and the function randomGLM in that package. . Internal C code has been simplified. 2013/07/20: 1.30 . Functions blockwiseModules and TOMsimilarityFromExpr are now more memory-efficient: only 2 copies of the potentially large TOM matrix are needed, down from 3 before. . Function mergeCloseModules can now optionally perform quantile equalization (normalization) on to make eigengene (dis-)similarities comparable across the data sets. . Argument order in mergeCloseModules has changed to a more logical order 2013/07/18: 1.29 . Functions determining the number of available cores are now more robust. . labeledHeatmap gains argument naColor that controls the color for missing values. 2013/07/09: 1.28 . Help files formatted to narrower line width. . bugfix in pickSoftThreshold when dataIsExpr is FALSE: function now correctly checks similarity (thanks to Lourdes Pena Castillo for reporting it). . updateProgInd now only updates display if the value to be displayed is actually different from the one already displayed. This can lead to somewhat better performance if updateProgInd is the performance bottleneck. . DIFF: Bug fix in GOenrichmentAnalysis: all evidence codes listed on http://www.geneontology.org/GO.evidence.shtml are now recognized. This will likely may change GO enrichment results. We apologize for this omission. . Bug fix in userListEnrichment: p-values of comparisons with no overlapping genes are now 1, instead of 0. . plotColorUnderTree and plotDendroAndColors gain new arguments rowTextAlignment and rowTextIgnore that afford more flexibility in how the row text is formatted. 2013/04/01: 1.27-1 ("This one's no April 1 joke!") . userListEnrichment now contains a new set of gene lists compiled mostly by Mike Palazzolo and Jim Wang at CHDI. . userListEnrichment now runs faster . Bug fix in verboseBarplot: p-values are now consistently diplayed with two significant digits. . Bug fix in blockwiseConsensusModules: function now works correctly (and faster) when not using disk cache 2013/03/06: 1.26 ("Spring growth") . Bug fix in blockwiseModules, blockwiseConsensusModules and blockwiseIndividualTOMs: functions now use consisten block labels [thanks to Austin Hilliard for pointing it out]. . Function accuracyMeasures has been re-written to accept directly vectors of predicted and observed values, and work also for prediction of continuous outcomes. The new function is backwards-compatible with older versions except for the name of the first argument. . Function verboseScatterplot gains a new argument displayAsZero that allows displaying small correlations as 0 (rather than say 1e-13). . New function returnGeneSetsAsList returns gene sets used by function userListEnrichment. 2012/12/01: 1.25-2 ("We ain't done fixin' yet") . Bugfix in blockwise[Consensus]Modules fixes a crash under certain circumstances (when some of the initial modules are removed). [Thanks to Nicola Soranzo for pointing this out.] . Bad choice of return value in WGCNAnThreads() that caused a crash in pickSoftThreshold is now fixed. [Thanks to multiple users who noticed this.] 2012/11/09: 1.25-1 ("The Election Fix") . Internal C++ code now compliant with older compilers that don't implement vector::data() 2012/11/06: 1.25 ("The Election Issue", pardon the pun.) . DIFF: bugfix in function modulePreservation: the function now respects the corFnc and corOptions arguments throughout the calculations. This bug affected calculations that used correlation functions other than the default "cor" and options other than the default "use = 'p'". . Introducing parallelization to user-level R functions through the use of packages parallel, foreach and the doParallel backend. The parallelization should work on all R-supported platforms. This change does not affect C-level workhorse functions for calculating correlations. . New function blockSize that attempts to choose a suitable block size for most functions that use a block-wise approach to fit calculations into memory. . Function labels2colors is now more robust and should work for data.frames as well . Function verboseBoxplot gains arguments notch and varwidth that are passed to the underlying boxplot call. . Functions plotDendroUnderTree and plotDendroAndColors now display missing color values as grey. . Function verboseBarplot can now handle binary variables as well and will print Fisher exact test p-value. . Function colQuantileC now ignores missing data . Internal C code cleaned up and small memory leaks plugged. . Function labelPoints has a new argument protectEdges that can prevent labels from going outside of the plot area. . verboseScatterplot now has explicit arguments col and bg to specify colors and fill (background) of the plotting symbols. This makes specifying col and bg work also when only a sample of all points is plotted. . GOenrichmentAnalysis can now optionally shorten output by omitting details of highest-enriched GO terms. . Defaults in randomGLMpredictor have been slightly tweaked for better performance. . New function transposeBigData for transposing big matrices. 2012/08/02: 1.23-1 . Examples in help files are now shorter to speed up execution as per CRAN requests. 2012/07/27: 1.23 . Function userListEnrichment is now improved with more categories of gene lists . DIFF: bugfix in functions corAndPvalue and bicorAndPvalue: calculation of the Z statistic is now corrected. This bug did not affect the calculetion of Student t statistics nor the p-values. . Function standardScreeningBinaryTrait gains argument areaUnderROC (default TRUE) that allows the user to turn off AUC calculation and thus achieve a substantial speedup for large data sets. . Function metaAnalysis now by default turns off AUC calculation, making it much faster on large data sets. The AUC calculation can be enabled using the new argument getAreaUnderROC. . New function randomGLMpredictor that implements an ensemble predictor based on bootstrap aggregation (bagging) of generalized linear models whose covariates are selected using forward stepwise regression according to AIC criteria. 2012/06/18: 1.22 . DIFF: Bugfix in function blockwiseConsensusModules: the module colors are now correct (and not scrambled) when some genes are excluded due to too many missing entries. Apologies for any non-sense results this error may have generated. . Bugfix in the function modulePreservation when used on adjacency input: clustering coefficient calculations are now corrected. . Function modulePreservation gains an additional argument calculateClusterCoeff, with default value FALSE, that can be used to enable/disable clustering coefficient calculations. These tend to be slow and for efficiency purposes the default is FALSE. . DIFF: because of the above, clustering coefficient calculations in function modulePreservation are disabled as a default. . Error message in modulePreservation about input containing genes with too many missing values is now more informative. . Bugfix in function numbers2colors: function now properly accounts for the presence of positive and negative entries when automatically deciding whether the input should be considered signed or unsigned. . Function rankPvalue now doesn't warn about weights not summing to 1. . DIFF: bugfix in function userListEnrichment corrects output. Previously, UNcorrected p-values were returned when corrected p-values were requested, and no p-values were returned when uncorrected p-values were requested. . p-value display in function verboseBarplot is now cleaned up by properly arranging spaces. . Bugfix in mergeCloseModules: function now completes correctly when all modules are merged into a single module. . Internal bugfix in C function minWhichMin: function now works correctly when the first entry is NA or NaN. 2012/04/23: 1.20 . New function blueWhiteRed that produces a color sequence distinguishable by people with the most common kind of color blindness (green-red color blindness). The currently much-used greenWhiteRed now outputs a warning to that effect. We recommend that users switch to blueWhiteRed. . The default color palette for numbers2colors is now blueWhiteRed. . Function TOMsimilarity now forces the diagonal of the input adjacency matrix to be 1. The diagonal is not really meaningful in a network analysis, but the underlying C code assumes the diagonal to be 1 since it simplifies calculations. This change also applies to TOMdist (which calls TOMsimilarity). . Function blockwiseConsensusModules now accepts argument trimmingConsensusQuantile and makes the consensus in module trimmimg consistent with the consensus in network construction and module identification. . Function recutConsensusTrees now accepts arguments trimmingConsensusQuantile and mergeConsensusQuantile with the same effect as in blockwiseConsensusModules. . Removed argument minKMEtoJoin from blockwise* and recut* functions as it has not been used by the actual code. . Function verboseBarplot now accepts argument horiz and is capable of creating horizontal barplots. . Internal: C function minWhichMin now ignores missing values. 2012/02/28: 1.19 . Argument name change in function TOMplot: colors and colorsLeft are now Colors and ColorsLeft to avoid conflict with argument col to functions heatmap and image. . Bugfix in internal function .consensusMEDissimilarity that caused crashes mergeCloseModules. . DIFF: blockwiseConsensusModules now passes the argument mergeConsensusQuantile to mergeCloseModules, which can lead to different module merging compared to previous versions. Use mergeConsensusQuantile = 0 to reproduce results from older versions of this package. . Function mergeCloseModules now takes arguments consensusQuantile, corFnc and corOptions . New function blockwiseIndividualTOMs to calculate individual TOMs across multi-set expression data . New functionality in blockwiseConsensusModules that can now utilize pre-calculated individual TOMs, giving more flexibility . New utility function lowerTri2matrix . Internal change: default chunk size in consensus module calculation is now 1e8 instead of 1e7. Most computers with at least 2GB of memory should be able to handle as much; the size can be lowered (or increased) if necessary. . Function sizeGrWindow now calls dev.new rather than X11 . New function nSets to directly return the number of sets in a multi-set variable. . Function verboseBarplot now returns the midpoints of the drawn bars (as the function barplot does) augmented by the bar heights as attribute "height". . Minor changes and cleanup in code . New citation added for our JSS article 2012/01/12: 1.18-2 . Bugfix in function consensusKME fixes column names of output 2012/01/04: 1.18-1 . Bugfix in function GOenrichmentAnalysis fixes occasional crash of the function 2011/12/22: 1.18 . DIFF: p-value calculation in userListEnrichment is now corrected to give the probability of overlap **as strong or stronger** than observed, rather than that of overlap **stronger** than observed. The resulting p-values are more conservative; the difference can be large for very small categories. . metaAnalysis and consensusKME now also calculate meta-analysis statistics using weights proportional to the square root of the number of samples . Added citation information for the package. The citation is available by typing the command citation("WGCNA"). Please cite the package if you use it in published research. (The citation("WGCNA") gives somewhat mis-formatted results on older R versions, sorry.) 2011/12/20: 1.17-1 . Minor clean-up of greeting message . Functions goodSamples and goodGenes as well as their combined and multi-set versions now properly respect settings of minNSamples and minNGenes 2011/12/06: 1.17 . Function consensusKME now returns additional statistics based on 3 different sets of weights . Bugfix in function TOMplot: the heatmap is now drawn correctly . GOenrichmentAnalysis is now about 40% faster . nearestCentroidPredictor is now more robust to constant variables . Bugfix in function standardScreeningNumericTrait: default value for argument corOptions is now correct 2011/11/16: 1.16 . Bugfix in standardScreeningBinaryTrait: sign of `signed' Kruskal test statistic is now calculated correctly . Function metaAnalysis now (optionally) also calculates meta-analysis statistics using the rankPvalue function. . Function consensusKME now also optionally uses rankPvalue for meta-analysis of kME results across input data sets 2011/11/14: 1.15 . Due to CRAN requirements, R versions below 2.10 are not supported anymore. . New function multiData.eigengeneSignificance for calculating module eigengene significances in multi-set situations. . DIFF: bugfix in function pickSoftThreshold, subtraction of self-connectivity is now corrected which may lead to slightly different scale-free analysis results (thanks to Michael Linderman for reporting it). 2011/11/08: 1.14 . The default value of argument calculateCor.KIMall in function modulePreservation is now FALSE to speed up execution. . New function consensusKME to calculate "consensus" kME across several data sets. . Function standardScreeningBinaryTrait now takes arguments corFnc and corOptions. . Argument 'signed' to function 'numbers2colors' now has a default value that is TRUE if the input contains data with both positive and negative signs. . labels2colors now accepts missing data in input, and the input labels can be non-numeric . Bugfix in standardScreeningNumericTrait: setting qvalues=FALSE now works as intended. . Bugfix in votingLinearPredictor: function now works when xTest is NULL. . DIFF bugfix in rankPvalue: function now returns correct values also when column weights are specified . Default value of argument var.equal in function standardScreeningBinaryTrait has been changed to FALSE to make it consistent with the defaults of function t.test. . Function pickSoftThreshold now alos accepts similarity matrix as input. . Function nearestCentroidPredictor now works also without specifying test data (xtest). . Function nearestCentroidPredictor lost multiple input arguments that related to un-loved sample network options and removal of PCs. . Function accuracyMeasures now also outputs the naive accuracy rate. . New data set SCsList containing stemm cell marker genes that can be used with userListEnrichment. . New function metaAnalysis to calculate meta-analysis significance statistics 2011/08/17: 1.13 . Multi-threading is now disabled by default but can be enabled by setting the environment variable ALLOW_WGCNA_THREADS= or using the function allowWGCNAThreads(). 2011/08/16: 1.12 . Code cleanup to satisfy CRAN package check . Functions plot.cor and plot.mat renamed to plotCor and plotMat to avoid confusion with methods for the plot generic . Function userListEnrichment now returns a slightly more informative output in which the type of the refrence category is also indicated. 2011/07/06: 1.11-3 . bugfix in modulePreservation fixes an additional bug that was introduced in 1.11-1 . bugfix in votingLinearPredictor: function now produces valid output when some (but not all!) features have zero variance . fixed names of output in votingLinearPredictor 2011/06/06: 1.11-2 . bugfix in blockwiseConsensusModules fixes a crash of the function 2011/05/31: 1.11-1 . bugfix in modulePreservation fixes internal errors that appeared under certain circumstances . small changes in compiled code should make the code compatible with older gcc versions 2011/05/11: 1.11 . bugfix in conformityDecomposition: calculation corrected . bugfix in userListEnrichment: internal data sets are now used correctly . bugfix in collapseRows that affected the group2row component in the returned value. The bug caused some of the returned representative rows to be incorrect but had no effect on the collapsed data. . bicor now issues a warning when any of the input variables (or their columns) have zero MAD. . numbers2colors gains the argument commonLim to specify whether limits should be column-specific or universal . bug fix in numbers2colors: having missing data and out of range data at the same time will not cause an error anymore 2011/04/20: 1.10-2 . Bug in function cor fixed that caused an unncessary slowdown. Results were not affected. . Typos in several help files fixed: use = 'Spearman' is now corrected to use = 'spearman' (thanks to Eric L. Du for pointing it out). 2011/04/19: 1.10 . New function accuracyMeasures for summarizing 2x2 confusion tables . New prediction function votingLinearPredictor and nearestCentroidPredictor . New functions proportionsInAdmixture.R and populationMeansInAdmixture.R for estimating proportions and populations meanspopulations means in admixtures . Several additional functions by Jeremy Miller: chooseOneHubInEachModule, consensusDissTOMandTree, kMEcomparisonScatterplot, moduleMergeUsingKME, orderBranchesUsingHubGenes, overlapTableUsingKME, stratifiedBarplot, swapTwoBranches, reflectBranches, selectBranch, userListEnrichment . New function mutualInfoAdjacency by Lin Song . New functions coClustering and coClustering.permutationTest . Due to excessive problems with Tcl/Tk, we dropped the dependency on package qvalue and incorporated the necessary R code directly into WGCNA . plotColorUnderTree and plotDendroAndColors gain additional flexibility when working with rows of text labels. . The argument 'colorText' to the above functions has been renamed to 'rowText'. Sorry for any code that becomes broken because of this! . VerboseScatterplot gains arguments to set the regression line color and type. . Colors for text labels in labeledHeatmap can now be set. 2011/02/05: 1.00 . Functions standardScreeningBinaryTrait and standardScreeningNumericTrait can now optionally turn off the calculation of q-values as the latter sometimes leads to problems. . Character expansion for axis labels in labeledHeatmap can be set separately for x and y axis. . The ubiquitous corOptions argument can now take the value of an empty string (""). . New utility function prepComma. . New set of functions that calculate adjacency from a given similarity matrix. 2010/12/17: 0.99 . Functions [bi]cor gain the ability to calculate cosine [bi]correlations, invoked using the argument cosine = TRUE. Similar functionality added to blockwise[Consensus]Modules and TOMsimilarityFromExpr. For most other functions using correlations, the argument corOptions can be used to request cosine correlations. . Corrected error message in function adjacency . Functions [bi]corAndPvalue now also return the number of observations for each p-value 2010/11/12: 0.98 . Bugfix in functions [bi]corAndPvalue that gave incorrect p-values when input y = NULL . Functions [bi]corAndPvalue now also return the Student t statistic from which the p-values are calculated. . Function standardScreeningNumericTrait now accepts arguments corFnc and corOptions 2010/10/29: 0.97 . Functions [bi]corAndPvalue now also return the Fisher Z statistics. . Function adjacency can now calculate distance-based networks as well, via type="distance". Various distance functions and options can be used. . Functions signedKME and networkScreening now accept arguments cor and corOptions that can be used to specify the correlation function to be used in the calculations. . Argument 'y' in [bi]corAndPvalue now has a default value NULL . DIFF: displayed value of correlation p-value in function verboseScatterplot is now based on Student distribution instead of Fisher normal approximation. This change only affects plots. 2010/09/23: 0.96 . New functions pquantile, pmean, pmedian for calculation of "parallel" quantiles, means, and medians. . Functions cor and bicor now give a more descriptive error description when an argument with one dimension equal zero is passed to the functions. 2010/09/16: 0.95 . More changes to function collapseRows: renamed arguments, changed defaults, code cleaned up and bugs fixed. The function collapseRows should still be considered experimental. 2010/09/05: 0.94 . DIFF: big fixed in modulePreservation that put incorrect input into Zconnectivity.preservation which also affected Zsummary. We apologize for this error. . Bug fixes in function collapseRows 2010/08/25: 0.93 . modulePreservation now also calculates density and connectivity statistics based on clustering coefficient and maximum adjacency ratio. . New functions mutualInfoAdjacency and AUV2predicted provide basic interfacing between mutual information methods and weighted networks . Minor cleanup of help files 2010/07/26: 0.92-3 . Package file cleanup, nothing changed from user perspective 2010/07/14: 0.92-1 . Bug in compiled calculation of adjacency fixed. This may have affected calculations of TOM when TOMType = "signed". Apologies if important results were affected. 2010/06/24: 0.92 . DIFF: in modulePreservation, by default Zsummary is only calculated from meanAdj, cor.kIM and cor.Adj. . DIFF: in modulePreservation, a new option includekMEallInSummary (default FALSE) controls whether cor.kMEall should be included in summary statistis . output of modulePreservation now has names in permutationDetails to facilitate detailed studies of permutation results 2010/06/10: 0.91 . DIFF: in modulePreservation, values of cor.kME, cor.kMEall and meanSignAwarekME are now stripped of their sign, both in observed values and in permutations. This is done because the eigengene may flip sign between data sets, leading to artificially low preservation scores. . DIFF: p-values calculated by modulePreservation are now returned as logarithms in base 10 (previously they were returned as natural logarithms). Names of the returned components also changed slightly to emphasize that the p-values are returned as logarithms. . Additional summarycolumns added to the output of modulePreservation for observed and permutation preservation statistics . Function collapseRows now selects a single probe to represent each gene 2010/06/05: 0.90 . modulePreservation now also returns p-values and optionally the q-values corresponding to the permutation Z scores . simulateDatExpr now sets (artificial) gene and sample names, for easier integration with some analysis functions (notably modulePreservation) . incompatibilities with new versions of R in exportNetworkTo[Visant,Cytoscape] fixed . new function subsetTOM to efficiently calculate TOM among a subset of network nodes . bugs in vectorTOM fixed . DIFF: modulePreservation now limits the size of the gold module to at most half the total number of genes in the comparison, to make sampling and permutation calculations meaningful. This may slightly affect calculated results for the gold module, but will not affect results of any other modules. 2010/05/21: 0.89 . DIFF: definition of cluster coefficient has been slightly changed, which affects approximate conformity-based network concepts . new functions rankPvalue and metaZfunction . new function standardScreeningNumericTrait . bug in automatic labeling of axes in verboseBoxplot has been fixed . several help files added and updated . minor changes in standardScreeningBinaryTrait, standardScreeningCensoredTime . scaleFreeFitIndex now does not calculate a log(log(..)) based fit that often led to errors . new function collapseRows by Jeremy Miller to convert probe-level expression to gene-level expression 2010/05/07: 0.88-2 . unnecessary dependence on package fields removed. 2010/05/07: 0.88-1 . DIFF: bug in cor(x) and bicor(x) fixed that produced incorrect results when a column of x was all missing (NA). We aplogize for any incovenience this error may have caused. 2010/03/17: 0.88 . new functions corAndPvalue and bicorAndPvalue that calculate (bi)correlation p-values efficiently for matrices of correlations 2010/02/19: 0.87 . bicor gets a new argument pearsonFallback that lets the user specify the handling of cases with zero median absolute deviation that would normally lead to NA values. . mergeCloseModules (and blockwise[Consensus]Modules) now more robust: works also in the case of a single module . DIFF: A bug was fixed that affected bicor(x) calculation with missing data on Windows (calculations of 2-variable bicor, single-variable bicor without missing data, and any calculations where multi-threading is available [most platforms except Windows] were not affected by this bug). The bug caused some calculations to be a bit off. We apologize for any problems this may have caused. 2010/02/10: 0.86 . bug in colQuantileC fixed. . EXPERIMENTAL: a major addition to modulePreservation now allows module preservation calculations based on general adjacency matrices. . bugfix in labelPoints fixes a warning message 2009/12/26: 0.85 . DIFF: in modulePreservation, separability now correctly works for signed and signed hybrid networks. . modulePreservation gains argument to specify correlation function 2009/12/05: 0.84 . new function spaste . addtions and corrections to help files . bugfix in standardScreeningCensoredTime . bugfix in blockwiseModules: module colors are now not scrambled when some genes are excluded because they don't pass goodSamplesGenes . improved labelPoints: more consistent label offsets and fixed meaning of 'offs' in help file 2009/11/24: 0.83-1 . help cleaned up . Windows package now compatible with R-2.10 2009/11/22: 0.83 . new function modulePreservation calculates module preservation statistics between independent data sets . new dependence on package splines . new function labelPoints to semi-inteligently label points in a scatterplot. . extended functions pickSoftThreshold, pickHardThreshold . minor bugfix in scaleFreePlot . new function standardScreeningCensoredTime . new function scaleFreeFitIndex 2009/11/17: 0.82-1 . bugfix in plotEigengeneNetworks (thanks to Ronnie Alves for pointing it out) . bugfix in heatmapWithLegend when used with mixed color and text labels 2009/11/10: 0.82 . new function standardScreeningBinaryTrait . bugfix in verboseBarplot: the function now passes the ... arguments to barplot . verboseScatterplot gets argument sample for better handling of large vectors . labeledHeatmap gets arguments xColorWidth and yColorWidth that control the witdth of the color labels 2009/10/29: 0.81-2 . bugfix in blockwise[Consensus]Modules: function now works when number of modules exceeds number of available colors . bugfix in exportNetworkToCytoscape: all nodes are now included in the node file (thanks to Tim Gernat for pointing it out and suggesting the fix) 2009/10/22: 0.81-1 . addTraitToMEs now works with colnames instead of names . bugfix in bicor(x): when x has missing data, bicor now does not crash . minor bugfix in plotEigengeneNetworks: printAdjacency is now respected 2009/10/19: 0.81 . several functions from the now defunct package sma were added, mainly to allow our users to run all tutorials smoothly. Note that if sma package is used concurrently, identical copies of the duplicated functions will be available. Warning messages about this fact can be disregarded safely. . labeledHeatmap re-written to use an internal heatmapWithLegend function. This means labeledHeatmap now works also in complicated sectionings using layout(), which was not the case before. 2009/09/18: 0.80-1 . crash in blockwise[Consensus]Modules and TOM calculations when using bicor fixed; blockwise[Consensus]Modules and TOM calculations using compiled code get a new argument maxPOutliers corresponding to the bicor argument of the same name (see news in 0.80). 2009/09/13: 0.80 . new functions conformityBasedNetworkConcepts and fundamentalNetworkConcepts calculate network concepts (indices) . bicor gains the argument maxPOutliers specifying the maximum fraction of data that can be considered outliers . new function verboseBarplot to produce annotated barplots . verboseBarplot, verboseBoxplot and verboseScatterplot now have complete help files 2009/09/01: 0.79-4 . bug in networkConcepts fixed . goodGenesMS and goodSamplesMS now a bit more robust . new function vectorizeMatrix to turn a matrix into a vector of non-redundant components . orderMEs now works also on the single set output of moduleEigengenes. . plotColorUnderTree, plotDendroAndColors, and plotClusterTreeSamples are now capable of displaying text labels that identify the displayed colors by name. . overlapTable now works when the arguments are 1xn or nx1 matrices. 2009/08/07: 0.79-3 . GOenrichmentAnalysis now works for yeast data as well. Yeast GO mappings are given in a slightly different database (ORF identifiers instead of Entrez) and previous versions of the function did not handle this difference (thanks to Maryam Anwar for pointing this out). 2009/08/05: 0.79-2 . Default color in addGuideLines now darker ((grey30 instead of grey70). . Default color in addGrid now darker (grey30 instead of grey70). . Error in bicor help file corrected. . moduleEigengenes gets the option to turn off scaling expression data before calculating the singular value decomposition. This should only be used to speed up calculation if the data has been scaled previously. . Bugfix in simulateMultiExpr: the function now works when leaveOut=NULL . Minor changes to diagnostic messages in TOM calculations . Minor changes to printed values in verboseBoxplot . GOenrichmentAnalysis a bit more stable . GOenrichmentAnalysis can now analyze several sets of labels at the same time; the idea is to give the user the option to quickly calculate enrichments for a collection of competing module assignments. . Enrichment calculations can optionally be restricted to a subset of modules 2009/06/05: 0.79-1 . GOenrichmentAnalysis now faster and a bug in returned genePositions fixed. . function plotEigengeneNetworks gained two additional arguments controling the printing of numerical values into the adjacency heatmaps. 2009/06/01: 0.79 . Added (experimental) function GOenrichmentAnalysis for automatic GO enrichment analysis 2009/05/26: 0.78 . Package qvalue becomes optional. If it is not installed, q values will not be calculated in the network screening functions. 2009/05/18: 0.77-1 . Hubgene calculation in moduleEigengenes now works even if only one gene has valid data. . Bug in labeledBarplot fixed that crashed the function if no error bars were given. 2009/05/05: 0.77 . DIFF: reverting to default TOM denominator method "min" . Bug fix in .clustOrder affecting consensusOrderMEs and mergeCloseModules when there is only one proper module present. 2009/04/02: 0.76 . Display of p-value in verboseScatterplot improved: small p values now shown more accurately . Spurious warning message in matchLabels is now suppressed . additional TOM option added: use mean denominator instead of minimum . DIFF: default TOM denominator method is mean. Use TOMDenom = "min" where necessary to reproduce older results . help files for [unsigned]adjacency corrected 2009/03/18: 0.75 . fixed a bug in matchLabels that caused unrelated modules to be matched . faster correlation calculations are now implemented both for [bi]cor(x) as wellas [bi]cor(x,y). On platforms where POSIX threads are available, certain parts of the [bi]cor calculations are threaded . functions [bi]cor, blockwise[Consensus]Modules, TOMsimilarityFromExpr now have additional parameters providing control over threading and over the tradeoff between speed and precision in handling missing data in the correlation calculations . fixed a bug in bicor(x,y) that was present when any of the columns consisted of only missing data and that caused incorrect NAs and 0s in the result. . DIFF: softConnectivity now subtracts 1 from the sum of adjacencies to remove the adjacency of a gene with itself. . DIFF: order of parameters in softConnectivity has changed. . DIFF: default number of centers in [consensus]projectiveKMeans is now an attempt to fully utilize resources estimated from preferredSize. . softConnectivity now accepts parameter 'type' that can specify the network type to be used; . fixed a bug in function adjacency that would crash the function in certain circumstances. 2009/03/04: 0.73 . default p value threshold in matchLables relaxed to 5e-2 . DIFF: [consensus]ProjectiveKMeans now default to a much higher number since that seems to lead to better results. . Faster versions of correlation and bicorrelation implemented. Fast correlation available for general use in function cor1. . bugfix in labeledHeatmap: xLabels and xSymbols do not overlap anymore . goodGenes, goodGenesMS, etc now resistant to whole gene profiles containing only NAs . minor changes in verbosity of [consensus]projectiveKMeans 2009/02/18: 0.72 . corPvalueStudent now correctly returns small values instead of zero . minor changes in default sectioning in plotDendroAndColors . plotDendroAndColors and plotColorUnderTree now plot colors top to bottom (previously was bottom to top) . faster median calculation in C implementation of bicor . added function overlapTable for computing significance of module overlaps . added function matchLabels for relabeling modules in a source partition to best approximate module labels in a given reference partition 2009/02/06: 0.71-1 . minor changes in verbosity of TOM calculations . blockwise[Consensus]Modules: random seed is now set only if it is non-NULL; this allows the user to force the functions to run without setting a seed, which was not possible before. 2009/02/05: 0.71 . package flashClust that implements fast hierarchical clustering is now required and used throughut. 2009/01/29: 0.70 . adapted for dynamicTreeCut-1.20: PAM stage in the dynamic tree cut used in blockwise module detection functions can now optionally respect the dendrogram in the sense an object can be PAM-assigned only to clusters that lie below it on the branch that the object is merged into. Note that this requires dynamicTreeCut 1.20 or higher. . TOM calculation: "Rough guide to max array..." now respects verbose parameter 2009/01/25: 0.67-2 . bug in recutBlockwiseTrees fixed (only visible if some genes or samples were bad) . bug in clusterCoef fixed . typos in help files fixed (cutreeStatic[Color]) . drawing of color label rectangles slightly modified in labeledHeatmap to prevent excessively large rectangles 2008/12/23: 0.67-1 . help file for intramodularConnectivity corrected . corPvalueFisher corrected when twoSided=TRUE: used to give p-values inflated by a factor of 2 2008/12/09: 0.67 . addTraitToMEs now works also when the multiMEs only contain the eigengenes but no average expression . labeledBarplot now accepts xLabelsAngle . fixed interpretation of grey name in orderMEs, consensusOrderMEs . scaleTOMs in consensusBlockwiseModules now actually has an effect 2008/12/04: 0.66 . new function exportNetworkToCytoscape 2008/12/04: 0.65-3 . new function networkConcepts . Bug fix in plotEigengeneNetworks when only one set is given . Minor changes and cleanup in help files and printed diagnostics 2008/11/05: 0.65-2 . Bugfix in exportNetworkToVisANT: no more spurious errors when probe to gene name translation table is given. 2008/11/02: 0.65-1 . Bugfix in reassigning genes between modules when KME difference too significant: an empty set of reassign candidates doesn't throw an error anymore. . Several help files added 2008/10/25: 0.65 . added function preservationNetworkAdjacency 2008/10/09: 0.64 . different versions of package impute are now supported. . help files expanded . help files' syntax corrected so all item descriptions are now displayed properly. 2008/10/01: 0.63-1 . bug in [consensus]ProjectiveKMeans fixed that would cause a crash if the center with highest index became empty . numbers2colors resistant to values out of range of the given min and max. . p-value in verboseScaterplot now corresponds to the actual correlation printed instead of the Pearson correlation value. However, the p-values are always calculated assuming the correlation value is actually Pearson. 2008/09/18: 0.63 . [automaticN|n]etworkScreening now accept option getQValue that can be used to turn off q value calculations; they also report counts of module eigengenes with gene significances in specific intervals. 2008/09/17: 0.62-1 . C implementation of column quantile (i.e., apply(data, 2, quantile)) giving immense speedup of consensus quantile calculations in new function colQuantileC 2008/09/17: 0.62 . Fixed bugs in blockwiseConsensusModules when disk cache not in use, and when consensusQuantile>0 . Added function exportNetworkToVisANT to export a network to VisANT. . Help files for several functions added 2008/09/13: 0.61 . TOMdist function added, defined simply as 1-TOMsimilarity, for easier migration of older code. 2008/09/10: 0.60-3 . [consensus]projectiveKMeans now resistant to an svd failure, using a weighted mean if svd returns an error. 2008/09/05: 0.60-2 . Bug fix in C implementation of bicor (bad bug!!) 2008/09/04: 0.60-1 . Big fixes in blockwiseConsensusModules related to TOM sampling 2008/09/02: 0.60 . minCoreKME default now 0.5 (was 0.7 for Consensus functions, which didn't make much sense) . blockwise functions now complete all blocks even if there is a block with no modules detected or with an error during ME calculation. . consensusProjectiveKMeans can now optionally use mean as definition of consensus distance, improving convergence in multiple set situations . several help files added . bicor now implemented consistently in R code and in compiled code: both call the same set of C functions and treat NAs correctly and consistently. Functions bicov and bicorNAy are removed. . pickSoftThreshold now accepts networkType argument . blockwiseConsensusModules can now optionally save samples used for TOM scaling 2008/08/29: 0.55 . Changes of input arguments and output for blockwise[Consenus]Modules . Errors in pre-clustering and calculation of signed networks fixed . New functions for re-cutting dendrograms produced in blockwise[Consenus]Modules . Bug in the return value of blockwise[Consensus]Modules fixed: blockGenes now correctly refer to all genes instead of goodGenes; . New function numbers2colors 2008/08/26: 0.50-2 . Fixed bugs in blockwiseConsensusModules causing a crash when module eigengene calculation fails 2008/08/20: 0.50-1 . fixed bug in compiled code bicor1 function that used quick calculation whenever at least one of the x,y had the correct NAs instead of both. . fixed crash in consensusBlockwiseModules when data not checked for missing entries . added info printing when merging clusters in consensusProjectiveKMeans 2008/08/15: 0.50 . [consensus]projectiveKMeans improved: no crash when some clusters become empty, faster . blockwise[Consensus]Modules: additional parameter checkMissingData can optionally turn off checking for missing data when it's not necessary. . a few help files added 2008/08/05 . Added random seed setting to blockwise[Consensus]Modules and [consensus]ProjectiveKMeans for repeatability . Lowered reassignThreshold to 1e-6 to prevent too many reassigned genes. 2008/08/03: 0.42-2 . Fixed bug causing a crash when no modules are detected. 2008/08/02: 0.42-1 . More complete help pages, bug in blockwiseModules fixed (reported by Anatole Ghazalpour) 2008/07/23: 0.41 . Many enhancements, improvements and bugfixes 2008/06/02: . Changes to TOMplot to make the dendrograms on the side more informative . Changes to scaleFreePlot to pass more of ... to the plotting function (removed separate title() command). 2008/05/29: 0.12 . Performance improvements, extra parameters in blockwiseConsensusModules 2008/05/16: 0.11-1 . nearestNeighborConnectivity (and softConnectivity) now work even when there is 1 gene in the last block . More bug fixes. 2008/05/15: 0.11-0 . Numerous bug fixes . blockwise[Consensus]Modules fixed (ub-broken) from the change of batch to block. . blockwise[Consensus]Modules get an option to choose the TOM function. 0.1.0: Basic functions in place.