Changes in version 1.14.1 - Add cTRAP version to welcome modal - Fix crash when submitting Celery job (included missing floweRy function) - Fix large JSON responses from DT blocked by reverse proxy default settings Changes in version 1.12.0 Web server support (optimised to run in ShinyProxy) - cTRAP(): new global interface with all cTRAP functionality in one place - Sessions can be created and loaded via a token or a RDS file - Session data is automatically saved in a RDS file to a folder in the working directory named based on the current session token - Long-running tasks can be performed in the background using the Celery task manager via Flower's REST API and their output is automatically loaded in the corresponding session - Loading icon in navigation menu when Shiny is busy - Use the faster and efficient file format from R package qs instead of RDS: - Faster download and loading of pre-processed remote files (compound molecular descriptors and gene expression and drug sensitivity associations) Bug fixes and minor improvements - convertGeneIdentifiers() replaces convertENSEMBLtoGeneSymbols(): - Use AnnotationHub to convert to gene symbols (instead of biomaRt that has been unstable) - loadENCODEsamples(): - New argument to select folder where to download data - analyseDrugSetEnrichment(): - Cross-match more compounds between datasets by discarding non-alphanumeric characters and ignoring case - Fix incorrect columns used for each dataset when merging datasets - Visual interface: - Fix crash when plotting dataset comparison using values with too many zeroes for density estimation - Add progress bars for slower tasks - Fix crash when using shiny 1.7.0 (avoid malformed, custom UI elements) - Drug set enrichment analysis interface: - Show all drug sets available to (down)load - Show loading indicator when loading different drug sets - Hide "leading edge" column of the results by default Changes in version 1.10.1 - Fix crash when opening CMap's visual interface functions with shiny 1.7.0 Changes in version 1.10.0 Improvements to graphical interface functions: - New launchDrugSetEnrichmentAnalysis() function to analyse drug set enrichment and visualize respective results - launchCMapDataLoader(): - Now allows to load multiple CMap perturbation types simultaneously - Keep selected timepoint, dosage and cell line options when selecting another perturbation type - Add bubble plot of CMap perturbation types - launchResultPlotter(): - Now allows to view tables below specific plots and drag-and-select those plots to filter data in those same tables - When plotting targeting drugs and similar perturbations, update available columns and correctly use user-selected column to plot - launchMetadataViewer() now correctly parses values from Input attributes as numeric Major changes - prepareCMapPerturbations(): directly set perturbation type, cell line, timepoint and dosage conditions as arguments - rankSimilarPerturbations() and predictTargetingDrugs(): - Avoid redundant loading of data chunks, slightly decreasing run time - Lower memory footprint when using NCI60's gene expression and drug sensitivity association (now available in HDF5 files) by loading and processing data in chunks - Faster GSEA-based score calculation (up to 4-7 times faster) - New threads argument allows to set number of parallel threads (not supported on Windows) - New chunkGiB argument allows to set size of data chunks when reading from supported HDF5 files (decreases peak RAM usage) - New verbose argument allows to increase details printed in the console - prepareDrugSets(): allow greater control on the creation of bins based on numeric columns, including the setting of maximum number of bins per column and minimum bin size - analyseDrugSetEnrichment() and plotDrugSetEnrichment(): allow to select columns to use when comparing compound identifiers between datasets Bug fixes and minor changes - filterCMapMetadata(): allow filtering CMap metadata based on multiple perturbation types - prepareDrugSets(): fix issues with 3D descriptors containing missing values - plot(): - Fix wrong labels when plotting targetingDrugs objects - Avoid printing "NA" in labels identifying metadata for perturbations - plotTargetingDrugsVSsimilarPerturbations(): - Fix highlighting of plot points depending whether drug activity is directly proportional to drug sensitivity - Include rug plot - When subsetting a perturbationChanges or an expressionDrugSensitivityAssociation object, passing only one argument extracts its columns as in previous versions of cTRAP (similarly to when subsetting a data.frame) - analyseDrugSetEnrichment(): for the resulting table, the name of the first column was renamed from pathway to descriptor Changes in version 1.8 Interactive functions for loading data and analysing results - New Shiny-based graphical interface functions: - launchDiffExprLoader(): load differential expression data - launchCMapDataLoader(): load CMap data - launchResultPlotter(): view and plot data results - launchMetadataViewer(): check metadata of a given object Major changes - downloadENCODEknockdownMetadata(): metadata is automatically saved to a file in order to avoid downloading metadata every time this function is run - plotTargetingDrugsVSsimilarPerturbations(): - automatically look for matching compounds in multiple columns of both datasets - allow to manually select columns on which to merge datasets - prepareDrugSets(): drug sets based on numeric molecular descriptors are now prepared using evenly-distributed intervals - Simplify tutorial Changes in version 1.6.1 - listExpressionDrugSensitivityAssociation() lists available gene expression and drug sensitivity associations - First argument of rankSimilarPerturbations() and predictTargetingDrugs() changed name from diffExprGenes to input and now accepts: - Named numeric vector containing differential gene expression values with gene symbols as names, as before; - Character vector containing a custom gene set to test for enrichment (only to use with GSEA). - In rankSimilarPerturbations() and predictTargetingDrugs(), when performing gsea method, allow to set different gene set size for top up- and down-regulated genes with geneSize argument: - e.g. geneSize=c(100, 200) creates gene sets from the top 100 up- and top 200 down-regulated genes - using geneSize=c(150, 150) or geneSize=150 is equivalent - Plotting: - plot() now supports plotting predictTargetingDrugs() results for a given drug, e.g. plot(targetingDrugs, "1425") - plot() nows allows to set plot title with argument title - plot() now plots results based on available methods instead of trying to plot based on results from spearman method only - GSEA plots now support two or less gene hits - GSEA plots now support plotting of multiple perturbations - GESA plots now show the first and last values of ranked genes - plotDrugSetEnrichment() now returns a list whose names are drug set names - as.table() improvements: - Return cell identifiers and gene information (if available and as needed) - Support predictTargetingDrugs() results - Return results ordered as found on input Bug fixes and minor changes - downloadENCODEknockdownMetadata() now correctly retrieves metadata following a change in the metadata content from ENCODE - Fix bugs when rendering GSEA plots due to deprecated functions in ggplot2 - Improve tutorial - Copy-edit CMap-related console messages - Copy-edit function documentation Changes in version 1.4 New features - Predict targeting drugs (predictTargetingDrugs()): - Based on expression and drug sensitivity associations derived from NCI60, CTRP and GDSC data (see loadExpressionDrugSensitivityAssociation()) - Compare user-provided differential expression profile with gene expression and drug sensitivity associations to predict targeting drugs and their targeted genes - Compounds are ranked based on their relative targeting potential - Plot candidate targeting drugs against ranked compound perturbations using plotTargetingDrugsVSsimilarPerturbations(), highlighting compounds that selectively select against cells with a similar differential gene expression profile - Analyse drug set enrichment (analyseDrugSetEnrichment()): - Prepare drug sets based on a table with compound identifiers and respective 2D and 3D molecular descriptors using prepareDrugSets() - Test drug set enrichment on results from rankSimilarPerturbations() (when ranking against compound perturbations) and predictTargetingDrugs() - Convert ENSEMBL identifiers to gene symbols using convertENSEMBLtoGeneSymbols() Major changes - Update the tutorial and function documentation - Remove most L1000 instances, including in function names: - getL1000perturbationTypes() -> getCMapPerturbationTypes() - getL1000conditions() -> getCMapConditions() - downloadL1000data() -> loadCMapData() - filterL1000metadata() -> filterCMapMetadata() - loadL1000perturbations() -> prepareCMapPerturbations() - compareAgainstL1000() -> rankSimilarPerturbations() - plotL1000comparison() -> plot() - Improve loading of ENCODE samples (loadENCODEsamples()): - Rename function from downloadENCODEsamples() to loadENCODEsamples() - Load ENCODE samples regarding multiple cell lines and experiment targets using loadENCODEsamples() - Improve CMap data and metadata retrieval: - By default, do not return control perturbation types when using getCMapPerturbationTypes() (unless if using argument control = TRUE) - Parse CMap identifiers using parseCMapID() - Load CMap's compound metadata using loadCMapData() - Ask to download CMap perturbations z-scores file for differential expression if not found (avoiding downloading a huge file without user consent) - Improve preparation of CMap perturbations (prepareCMapPerturbations()): - Allow to load CMap metadata directly from files when using file paths as arguments of prepareCMapPerturbations() - Significantly decrease memory required to use cTRAP by loading chunks of z-scores from CMap perturbations on-demand (a slight decrease in time performance is expected), unless prepareCMapPerturbations() is run with argument loadZscores = TRUE - Display summary of loaded perturbations after running prepareCMapPerturbations() - Improve ranking of similar perturbations (rankSimilarPerturbations()): - Redesigned output: long (instead of wide) table - By default, calculate mean across cell lines if there is more than one cell line available; disabled if argument cellLineMean = FALSE - Allow to rank (or not) individual cell line perturbations (argument rankIndividualCellLinePerturbations) when the mean is calculated - Allow to perform multiple comparison methods if desired (by providing a vector of supported methods via the method argument) - Calculate the rank product's rank to assess ranks across multiple methods - Sort results based on rank product's rank (or the rank of the only comparison method performed, otherwise) - Include information for calculated means across cell lines in metadata - Include run time as an attribute - Improve metadata display for a similarPerturbations object, obtained after running rankSimilarPerturbations(): - Show further metadata information (including compound data, if available) related with a given perturbation by calling print() with a similarPerturbations object and a specific perturbation identifier - Show a complete table with metadata (and compound information, if available) when calling as.table() with a similarPerturbations object - Improve plotting (plot()): - Plot comparison results against all compared data by calling plot() with the results obtained after running rankSimilarPerturbations() or predictTargetingDrugs(); non-ranked compared data can also be plotted with argument plotNonRankedPerturbations = TRUE - Render scatter and Gene Set Enrichment Analysis (GSEA) plots between differential expression results and a single perturbation by calling plot() with a perturbationChanges object (if an identifier regarding the summary of multiple perturbations scores across cell lines is given, the plots are coloured by cell line) - When displaying GSEA plots, plot results for most up- and down-regulated user-provided differentially expressed genes (by default) - Improve GSEA plot style, including rug plot in enrichment score plot (replacing the gene hit plot) Bug fixes and minor changes - CMap metadata minor improvements: - Improve list returned by getCMapConditions(), including sorting of dose and time points - Correctly set instances of -666 in CMap metadata as missing values and fix specific issues with metadata (such as doses displayed as 300 ng|300 ng) - In compound metadata, fix missing values showing as literal "NA" values - CMap perturbation minor improvements: - Fix error when subsetting a perturbationChanges object with only one row - Improve performance when subsetting perturbationChanges objects - Minor improvements to rankSimilarPerturbations(): - Correctly set name of perturbations depending on their type (genes, biological agents or compounds) - Improve performance when correlating against multiple cell lines - Remove cellLine argument (please filter conditions with upstream functions such as filterCMapMetadata()) - Fix incorrect label of first column identifiers - Report run time and settings used - Perform comparisons against perturbations disregarding their cell lines (faster runtime) - Fix error when trying to calculate the mean for cell lines with no intersecting conditions available - Clearly state to the user when no intersecting genes were found between input dataset and CMap data - Minor improvements to plot(): - Improve rendering performance of the GSEA plot - Fix disproportionate height between top and bottom enrichment score panels in GSEA plots - Update demo datasets: - Update the cmapPerturbationsCompounds and cmapPerturbationsKD datasets according to new internal changes and fix their respective code in the documentation - Include license and copyright text for cmapR code Changes in version 1.0.3 - Add tag ImmunoOncology to BiocViews Changes in version 1.0.2 - Fix comparison against CMap perturbations using gene set enrichment analysis (the resulting score was the additive inverse of the real scores) Changes in version 1.0.1 - Update title, author names, version and README - Remove biomaRt dependency - By default, getL1000conditions() now shows CMap perturbation types except for controls - Compare against CMap perturbations (compareAgainstL1000()): - Remove "_t" from resulting column names (as the t-statistic may or may not be used) - Select p-value adjustment method when performing correlation analyses (Benjamini-Hochberg is set by default) - Documentation: - Fix obsolete function calls in function documentation - Hide non-exported functions from reference PDF manual