CHANGES IN VERSION 1.9.2 -------------------------- BUG FIXES: o Remove function overlap_GO because the VennDiagram package has issues with condition tests on vectors with length greater than 1 CHANGES IN VERSION 1.9.1 -------------------------- BUG FIXES: o Remove duplicated plot.title argument in ggplot call. GENERAL UPDATES: o Minor code cleaning. CHANGES IN VERSION 1.7.1 -------------------------- GENERAL UPDATES: o Updated email address. CHANGES IN VERSION 1.5.5 -------------------------- BUG FIX: o Function subEset also removes empty levels in factors not mentionned in the subset argument. Necessary for randomForest as the factor of interest cannot have empty levels. CHANGES IN VERSION 1.5.4 -------------------------- NEW FEATURES: o plot_design supports subset argument to restrict the plot to certain subsets of samples. CHANGES IN VERSION 1.5.3 -------------------------- GENERAL UPDATES: o Clarify that GOexpress in not a conventional gene set enrichment analysis tool. It is based on ranking, not enrichment. CHANGES IN VERSION 1.5.2 -------------------------- BUG FIX: o Rename "namespace" column to "namespace_1003"", not "namespace_1006". CHANGES IN VERSION 1.5.1 -------------------------- GENERAL UPDATES: o Updated maintainer email address. CHANGES IN VERSION 1.3.2 -------------------------- BUG FIX: o expression_plot() functions return error if an empty gene name is given CHANGES IN VERSION 1.3.1 -------------------------- BUG FIX: o heatmap_GO() function does not automatically resize margins when using either gene names or gene identifiers. This caused the user-defined margins to be systematically ignored. CHANGES IN VERSION 1.1.12 -------------------------- NEW FEATURES: o Summarisation function of scores and rank from feature-level to ontology-level also affects the calculation of P-values by pValue_GO. The default behaviour is to use the same function as used in the call to GO_analyse, stored in the result object. CHANGES IN VERSION 1.1.11 -------------------------- NEW FEATURES: o Summarisation function of scores and rank from feature-level to ontology-level can be overriden from the default "mean" to any function specified by the user. The function need to support a list of numeric values as an input, and return a unique numeric value as an output. CHANGES IN VERSION 1.1.10 -------------------------- BUG FIX: o margins argument in heatmap_GO() was not used in the call to heatmap.2() CHANGES IN VERSION 1.1.9 -------------------------- TYPOS: o Missing space character in error message. CHANGES IN VERSION 1.1.8 -------------------------- TYPOS: o Simone Coughlan, not Simone Coughland. Apologies! CHANGES IN VERSION 1.1.7 -------------------------- BUG FIXES: o Changed the rank of annotated features absent from the given ExpressionSet to (number of features in ExpressionSet + 1) instead of max(rank) + 1 to match the documentation, and desired behaviour. This follows the logic of giving the same rank R to N tied-scored features, while the next feature receives a rank of R + N. CHANGES IN VERSION 1.1.6 -------------------------- BUG FIXES: o overlap_GO() was crashing for 3-group Venn diagrams, except if the VennDiagram was loaded manually loaded in the workspace using libray(VennDiagram). The function will now run seemlessly without that manual step, as loading GOexpress will immediately load VennDiagram in the workspace (stated as a dependency in the DESCRIPTION file). NEW FEATURES: o New function pValue_GO() allows calculation of P-value for each ontology using permutation of genes labels. This allows users to estimate the chance of seeing a GO term reach a particular rank (or score). Features a fancy progres bar shamelessly adapted from StackOverflow. o heatmap_GO now semi-autmoatically resizes the bottom and right margins to accomodate large gene and sample labels, respectively. The user may control those margins using the "margins" argument of the function. o heatmap_GO default call now shows the gene feature identifier for those missing an annotated gene name, when gene names are requested (also the default). o A rank.by slot is now created by the GO_analyse() function in the result object to state the metric used to order the result tables. o a filters.GO slot stating the filters and cutoffs applied to the result object is now created or updated by successive uses of the subset_scores() function. Warnings and notes are displayed if conflicting filters and cutoffs are applied on a previously filtered result object. o rerank() function now supports re-ordering by P-value. Note that this is only applicable to the output of the pValue_GO() function mentioned above. o rerank() function now updates the rank.by slot of the result object to state the current ordering metric. o subset_scores() function now allows filtering by P-value. Note that this is only applicable to the output of the pValue_GO() function mentioned above. o Backward compatibility with Ensembl annotation releases 75 and earlier, which used 'external_gene_id', which was renamed to 'external_gene_name' in releases 76 and later. o table_genes() function defaults to sorting genes by decreasing score (equivalent to increasing rank). Gene feature name or identifier are supported alternative filters for sorting. UPDATED FEATURES: o Allow user to override row_labels in heatmap_GO. This way, the color-coding of the sample can be kept, while better description of the samples can be used to label them, instead of the phenodata values. o In heatmap_GO(), if the labRow argument is of length 1, it is assumed to be the name of a column in the phenoData slot. Useful to re-label subsetted ExpressionSet objects. GENERAL UPDATES: o Updated the AlvMac training dataset to include 'RPL36A' an example of multiple Ensembl gene identifier annotated to the same gene name. o Updated the AlvMac example custom annotations to match the updated dataset. o Updated the example AlvMac_results to match the updated dataset. o Set the random seed prior to running the GO_analyse() example in the vignette. Hopefully, this should allow reproducible testing by the users. o In User Guide, load package before loading the attached data. o In User Guide, new sections and examples dealing with the re-labelling of heatmap samples, the use of P-values, the re-ranking and subsetting of results using P-values. New sub-sections for clarity. Emphasis on the use and generation of local annotation, rather than use of current online Ensembl annotation release. o No more code connecting to the Ensembl server in any the help files and User Guide. o Help pages examples with more consistent indentation of code. CHANGES IN VERSION 1.1.5 -------------------------- BUG FIXES: o Forgot to commit image file of shiny screenshot in release 1.1.5 CHANGES IN VERSION 1.1.4 -------------------------- NEW FEATURES: o Custom annotations can be provided to the GO_analyse function using three new arguments: "GO_genes", "all_GO", and "all_genes". See below for individual description. o The GO_genes argument allows the user to provide associations between feature identifiers in the ExpressionSet and gene ontology identifiers. This will skip all calls to the Ensembl BioMart server. Consequently, we recommend the use of the "all_GO" and "all_genes" arguments whenever "GO_genes" is used. Otherwise, some downstream functions may not work. For instance, the expression_plot, expression_profiles, and heatmap_GO function can be used to generate plots,although lacking gene and gene ontology names. See below for more details. o The all_GO argument allows the user to provide the name and namespace ("biological_process", "molecular_function", or "cellular_component") corresponding to gene ontology identifiers. This enables subsequent filtering of result tables by namespace, and annotation of heatmaps with the name of the gene ontology. o The all_genes argument allows the user to provide the name and description corresponding to feature identifiers in the ExpressionSet. This enables annotation of expression plots with the gene name associated with the feature. UPDATED FEATURES: o In the GO_analyse function, the eSet argument is now formally checked to be of class ExpressionSet prior to any calculation. If not, the function returns an appropriate error message. o The error messages caused when the user gives a name that does not exist in the phenoData slot of the ExpressionSet were updated to use the word "column", rather than "factor". GENERAL UPDATES: o Updated the help page for function GO_analyse to describe the new features described above and provide a code example. o Used the BiocStyle package to format the vignette. o Added a new section in the vignette to document the new features described above. o Added a new section in the vignette to mention the creation of shiny applications using the output of GOexpress. Included a screenshot of a shiny application developed from the original AlvMac dataset. o Added a new section in the vignette to highlight the availability of a "subset" argument to avoid the need for additional ExpressionSet objects to analyse or visualise subsets of samples. CHANGES IN VERSION 1.1.3 -------------------------- NEW FEATURES: o Included private function used to generate the prefix2dataset table. o Included private function used to generate the microarray2dataset table. o GO_analyse states the number of gene features in the given dataset that were found in the BioMart dataset. This allows the user to interrupt the script if a suspiciously low number of mapped features suggests an incorrect BioMart dataset was used. UPDATED FEATURES: o Updated the prefix2dataset table. Three more species ("Chlorocebus sabaeus", "Papio anubis" , and "Poecilia formosa"), and two more columns ("species" and "sample"). o Updated the microarray2dataset table. Probeset patterns are now hard coded in the package, but dynamically defined as unique to a platform (or not) by the function building the microarray2dataset table. Species without microarray platforms were also included in the table with NA values. Code was added in the GO_analyse method to ignore those before trying to resolve the origin of the expression data, if not specified by the user. o Renamed column "prefix" to "pattern" in microarray2dataset table. o Disabled manual check of C. elegans and D. melanogaster, as the automated detection is doing the exact same thing. Only S. cerevisiae requires a manual check of the "Y" prefix instead of the automatically extracted "Y[:LETTERS:]{2}" pattern. o Methods expression_plot_symbol and expression_profiles_symbol now return the list of gene feature identifiers instead of NULL when multiple plots are produced. That may be confusing as they return the list of close matches when an invalid gene symbol was given, and they return the ggplot when obly one plot is produced. GENERAL UPDATES: o Code layout. Lines of code over 80 characters were split around brackets and commas to use the built-in indentation defaulted to 4 space characters. Plus, this made the code more readable in many cases. CHANGES IN VERSION 1.1.2 -------------------------- GENERAL UPDATES: o DESCRIPTION file minor correction: Inappropriate "Metagenomics" biocView removed. CHANGES IN VERSION 1.1.1 -------------------------- BUG FIXES: o Ensembl BioMart has changed the column 'external_gene_id' to 'external_gene_name'. Renamed my biomaRt queries accordingly to prevent GO_analyse() from crashing during the analysis step. o Updated the AlvMac_results variable containing sample results annotated with the deprecated 'external_gene_id'. It now includes the new 'external_gene_name'. GENERAL UPDATES: o DESCRIPTION file minor correction. CHANGES IN VERSION 0.99.17 -------------------------- BUG FIXES o NAs were introduced in the average score and rank of GO terms following analysis of microarray data (ANOVA and randomForest) for GO terms without associated features in the ExpressionSet. The problem was not found in any case for analysis of RNA-Seq data. This was causing issues during the subset_scores function and subsequent plots, such as main titles made of multiple lines and NAs. GO terms without associated probesets are now given average score of 0 and average rank equal to the maximum in the dataset plus 1. CHANGES IN VERSION 0.99.16 -------------------------- GENERAL UPDATES o Included co-authors who participated in the generation and analysis of data used to test the package. CHANGES IN VERSION 0.99.15 -------------------------- GENERAL UPDATES o Updated man pages GO_analyse to describe the recently added subset slot in the result variable. CHANGES IN VERSION 0.99.14 -------------------------- BUG FIXES o The anova method of the GO_analyse method was broken since the introduction of ExpressionSet, release 0.99.4. UPDATED FEATURES o The subset argument was also added to the GO_analyse method. This allows the identification of genes clustering a subset of groups, at a subset of time-points, etc. while plotting the expression profile of the entire dataset, if desired. GENERAL UPDATES o Updated man pages GO_analyse to allow only one example to be run. This saves time during CMD check, while making the man page more easily readable. CHANGES IN VERSION 0.99.13 -------------------------- UPDATED FEATURES o All expression plots were updated to a default ylim range corresponding to the minimum and maximum expression values found in the entire ExpressionSet. This is meant to avoid mis-interpretation of the amplitude of variation between sample groups, as suggested in the paper: Rougier, N.P., Droettboom, M., and Bourne, P.E. (2014). Ten simple rules for better figures. PLoS computational biology 10, e1003833. CHANGES IN VERSION 0.99.12 -------------------------- UPDATED FEATURES o All expression plots were given new arguments for more control: xlab allows users to change the default title for the X-axis, ylim allows users to override the lower and upper boundaries of the Y axis. GENERAL UPDATES o Updated man pages AlvMac, AlvMac_results, microarray2dataset, and prefix2dataset. Replaced the LaTeX describe statement by an itemise statement to make the man page more readable in a terminal window. o Moved functions between the post_analysis script and the toolkit script. From now on, only functions accessible to the users should be present in the post_analysis script, while toolkit should contain method called internally. o The User's Guide was updated to redirect the users to the new support site for Bioconductor rather than the bioc-devel mailing list. CHANGES IN VERSION 0.99.11 -------------------------- NEW FEATURES o The new subEset() method subsets an ExpressionSet given a list where item names are column names of the phenoData slots and item values are vectors of values corresponding to sample to retain (e.g. list(Time=c("2H", "6H")) will retain samples with value "2H" or "6H" in the "Time" column of the phenoData slot). UPDATED FEATURES o All relevant visualisation methods have been added an argument to subset samples to plot to those with a given set of values for a given column in the phenoData (uses the new function subEset described above). o The example analysis results was renamed from "raw_results" to "AlvMac_results", so that it can now loaded running data(AlvMac_results). The new name is meant to be more specific to the package. CHANGES IN VERSION 0.99.10 -------------------------- GENERAL UPDATES o Replaced \format by \value sections to the following man pages: AlvMac.Rd, microarray2dataset.Rd, prefix2dataset.Rd, raw_results.Rd to avoid having an empty value section, as recommended by the Bioconductor package tracker. Hopefully, it does not require a non-empty \format section as well... o Restricted lines to less than 80 characters and indentation by multiple of four space characters. CHANGES IN VERSION 0.99.9 ------------------------- UPDATED FEATURES o all post analysis functions were given more sanity checks to verify that the "result" argument contains the required slots of a GO_analyse() output and the the arguments pointing at a phenotypic data column are valid column names. BUG FIXES o expression_plot_symbol and expression_profiles symbol used the default value of col.palette and colourF instead of forwarding the user-defined one to the expression_plot and expression_profiles functions. GENERAL UPDATES o Added cross-reference in UsersGuide to point at examples of usages of factor and numeric values for the expression plots CHANGES IN VERSION 0.99.8 ------------------------- GENERAL UPDATES o Resaved R data files to reduced package disk size. No more WARNING in R CMD check. GENERAL UPDATES o Removed reference to GitHub in the README file. The weblink is given in the DESCRIPTION file anyway if users are interested. CHANGES IN VERSION 0.99.7 -------------------------- UPDATED FEATURES o fixed a typo in the code of heatmap_GO which made it crash for any other dataset than the example dataset. CHANGES IN VERSION 0.99.6 ------------------------- UPDATED FEATURES o expression_profiles_symbol() method was missing the "index" argument to select the feature identifier to plot alone. CHANGES IN VERSION 0.99.5 ------------------------- NEW FEATURES o expression_profiles() method plots the expression profiles of individual samples series, as opposed to grouped samples series handled by expression_plot functions. o expression_profiles_symbol() method plots the expression profiles of individual samples series using a gene name instead of an Ensembl gene identifier. UPDATED FEATURES o overlap_GO can print to screen, if filename argument is set to NULL (Default). o heatmap_GO, cluter_GO and plot_design can resize title font and wrap the text on multiple lines. o expression_plot and expression_plot_symbol can orient X axis labels at a given angle. o replaced return(NULL) statement by stop() when no close match is found to a gene name in the family of expression_plot functions. GENERAL UPDATES o User's Guide updated. o List of contributors updated in User's Guide and DESCRIPTION. CHANGES IN VERSION 0.99.4 ------------------------- UPDATED FEATURES o Use of ExpressionSet instead of numeric named matrix and AnnotatedDataFrame. Better consistency with other Bioconductor packages. GENERAL UPDATES o Implemented corrections requested following the Bioconductor review. Includes typos, consistent terminology through the package code and metafiles, additional information in help files, no reference to GitHub as an alternate installation option, use of arrow signs instead of equal signs for value assignment. o Restricted lines to 80 characters, and used 4-space tabulations. o Corrected out-of-date documentation. CHANGES IN VERSION 0.99.3 ------------------------- UPDATED FEATURES o Control the size of the legend text in the two expression plot figures. Updated help files accordingly. o Updated vignette with new section "Statistics". o Complete cleaning of code files for lines shorter than 80 columns. o Cleanup of help files for lines shorter than 80 columns. o Enabled filtering of raw results on the average score of a GO term. CHANGES IN VERSION 0.99.2 ------------------------- UPDATED FEATURES o Metadata lines in the preamble of the Sweave file CHANGES IN VERSION 0.99.1: UPDATED FEATURES o Sweave vignette implemented. o Replaced all message() statements by cat() to make Sweave output the full message in the vignette. o Updated a missed F into FALSE o Updated an invalid biocViews (typo) o Date field added for a proper citation() method. CHANGES IN VERSION 0.99.0 ------------------------- UPDATED FEATURES o Replaced all cat() statements by message() to match the Biocondcutor guidelines. CHANGES IN VERSION 0.6.2 ------------------------ UPDATED FEATURES o Fixed typo in the example of the vignette of GO_anova(). o Advice to use the subset_scores() function in the GO_anova() vignette. o Helpful warning message in the vignette of GO_anova() to make sure that the experimental factor to analyse is actually formatted as a factor in the true R language meaning. o Updated license to GPL (>= 3) instead of GPL-2. CHANGES IN VERSION 0.6.1 ------------------------ NEW FEATURES o GOexpress now implements the randomForest framework to estimate the importance of each gene on the clustering of the samples according to the different levels of the desired factor (See section UPDATED FEATURES below for more details). o rerank() function return a re-ordered version of the result variable given, ordered using either the rank or the score metrics. o Sample data raw_result was added to provide an example output of the analysis, and also allow to test the visualisation functions on a readily available variable instead of having to run the analysis function everytime (would have killed the R CMD check duration). UPDATED FEATURES o GO_analyse() default has been changed to a random forest statistical framework. This framework has various advantages over the previous ANOVA approach; namely 1) the bootstrapping and re-sampling of gene subsets to measure the importance of each gene in predicting the desired factor over many iterations (Default: 1,000 trees), 2) a shorter analysis duration due to the Fortran code underlying the randomForest package, 3) randomForest does not make assumptions on the distribution of the expression level within and between genes, 4) randomForest deals implicitely with interactions in multifactorial experiments. o Genes are now initially ranked according to their rank and GO terms according to the average rank of their associated genes. Genes associated with a GO term but absent from the dataset are assigned a value of max(rank)+1 and a score of 0. Ties between genes are resolved by giving all genes the minimal rank, the next gene being given rank+length(tied_genes). The average_rank metric is expected to be more robust than the average "score". Depending on the statistical framework used, "score" may mean "importance" (randomForest) or "F.value" (ANOVA). o More sanity checks at the start of some methods to ensure smooth execution of the downstream code and more helpful error messages. o More synonyms allowed for subsetting and filtering of the result variable. o list_genes() and table_genes() methods now allow to chose whether to return all feature identifiers associated with a GO term, or only those also present in the expression dataset. CHANGES IN VERSION 0.5.5 ------------------------ UPDATED FEATURES o heatmap_GO() default colorscale has been changed to blue-white-red better suited to the representation of expression level. The previous colorscale green-black-red is now suggested if differential expression data is used (e.g. log2FC). CHANGES IN VERSION 0.5.4 ------------------------ NEW FEATURES o Sample data accessible with the data() method. CHANGES IN VERSION 0.5.3 ------------------------ NEW FEATURES o Method overlap_GO() produces a Venn diagram showing the overlap of gene sets associated with two to five GO terms. The Venn diagram is saved in a TIFF image file. CHANGES IN VERSION 0.5.2 ------------------------ UPDATED FEATURES o Method heatmap_GO() updated to color-code the samples by levels of a factor, and a better colormap is used to represent the level of expression of genes. CHANGES IN VERSION 0.5.1 ------------------------ UPDATED FEATURES o Package renamed GOexpress after verifying that no other package on Bioconductor uses this name. o Method GO_anova() renamed to GO_analyse() as other metrics than ANOVA may be implemented in the future. CHANGES IN VERSION 0.4.1 ------------------------ NEW FEATURES o Supports microarray probeset identifiers as gene identifiers in the expression dataset. o Argument "result=" is no more optional in all the post-analysis functions. UPDATED FEATURES o expression_ploto() functions now dynamically adapt the colormap to the number of groups of samples instead of three hard-coded colors used for the colormap. CHANGES IN VERSION 0.3.1 ------------------------ NEW FEATURES o expression_plot() plots the expression profile of the gene corresponding to an Ensembl identifier, given valid variable name for the X-axis and a grouping factor for the Y-axis. o expression_plot_symbol() plots the expression profile of the gene(s) with the Ensembl identifier(s) corresponding to a gene symbol, given valid variable name for the X-axis and a grouping factor for the Y-axis. o plot_design() plots the univariate effect of each level of each factor available in the AnnotatedDataFrame on the expression levels of genes associated with a GO term. UPDATED FEATURES o The scoring function now uses the total count of genes associated with a GOterm instead of the count of genes in the dataset and associated with the GO term. Genes absent from the expression dataset are assigned a F.value of 0, similarly to the genes with a non- significant ANOVA result. This was not found to significantly impact the ranking of GO terms, but is a more objective scoring of the GO terms if the expression data was generated through objective filtering (e.g. filtering out lowly expressed genes). o subset_scores() now also filters the $mapping and $anova slots to retain only mappings and gene information related to the GO terms left in the $scores slot after filtering. This reduces significantly the memory space of the filtered variable, while the object containing the raw results of GO_anova() will still contain the full information fetched from the Ensembl BioMart server if the user wants it. o ggplot2 and grid are now required for the proper installation of anovaGO, even though these packages are only required for a subset of non-essential features in anovaGO. This way, all features in anovaGO will be available as soon as the package is installed. o Messages printed to the user during the executing of the funcions were made as clear as possible, particularly when fetching information from the Ensembl BioMart server. CHANGES IN VERSION 0.2 ---------------------- UPDATED FEATURES o subset_scores() can now filter and keep only GO terms of a given type, i.e. "Biological process", "Molecular function", or "Cellular Component". CHANGES IN VERSION 0.1 ---------------------- OVERVIEW o This package was designed for the analysis of bioinformatics-related data based on gene expression measurements. It requires 3 input values: (1) a gene-by-sample table providing the expression level of genes (rows) in each sample (columns), (2) an AnnotatedDataFrame from the Biobase package providing phenotypic information about the samples grouping them by levels of the factor, (3) the name of the grouping factor to investigate, which must be a valid column name in the AnnotatedDataFrame. o The analysis will identify all Gene Ontology (GO) terms represented by at least one gene in the expression dataset. A one-way ANOVA will be performed on the grouping factor for each gene present in the expression dataset. Following multiple-testing correction, genes below the threshold for significance will be assigned an F.value of 0. GO terms will be scored and ranked on the average F.value of associated genes. o Functions are provided to investigate and visualise the results of the above analysis. The score table can be filtered for rows over given thresholds. The distribution of scores can be visualised. The quantiles of scores can be obtained. The genes associated with a given GO term can be listed, with or without descriptive information. Hierarchical clustering of the samples can be performed based on the expression levels of genes associated with a given GO term. Heatmaps accompanied by hierarchical clustering of samples and genes can be drawn and customised. FEATURES o GO_anova() scores all Gene Ontology (GO) terms represented in the dataset based on the ability of their associated genes to cluster samples according to a predefined grouping factor. It also returns the table used to map genes to GO terms, the table summarising the one-way ANOVA results for each gene, and finally the predefined grouping factor used for ANOVA. Genes annotated to a GO term but absent from the expression dataset are ignored. o get_mart_dataset() returns a connection to the appropriate BioMart dataset of the Ensembl server based on the gene name of the first gene in the expression dataset. The choice of the dataset can be overriden by the user if a valid BioMart Ensembl dataset is specified. o subset_scores() filters the table of scored GO terms in the output of GO_anova() and returns a list formatted identically to the output of GO_anova() with the resulting filtered table of scores. o hist_scores() plots the distribution of average F scores in the output of GO_anova() or subset_scores(). o quantiles_scores() returns the quantile values corresponding to defined percentiles. o list_genes() returns the list of Ensembl gene identifiers associated with a given GO term. o table_genes() returns a table of information about the Ensembl gene identifiers associated with a given GO term. o cluster_GO() plots a hierarchical clustering of the samples based on the expression levels of genes associated with a given GO term. o heatmap_GO() plots a heatmap with hierarchical clustering of the samples and genes based on the expression levels of genes associated with a given GO term.