# 1.8.2 (26 March, 2019)

* Data loading:
    - GTEx data can now be automatically downloaded and loaded on-demand
    - By default, data table now only displays at most the first 100 columns 
    for performance reasons
* Alternative splicing quantification:
    - Allow to discard samples before alternative splicing quantification
    - In alternative splicing quantification dataset summary, plot
    quantification based on median, variance and range per splicing event across
    samples to provide tools to filter quantification (`plotRowStats()`)
* Gene expression filtering and normalisation:
    - Allow to discard samples before filtering and normalisation
    - Filter low read counts using `edgeR::filterByExpr()`
    - Allow to perform `limma::voom()` on gene expression data (without design
    matrix) and to apply its normalisation methods
    - In gene expression dataset summary, plot distribution of gene expression 
    per sample, distribution of library sizes and gene-wise mean and variance of
    gene expression across samples to provide the user tools to assess gene 
    expression normalisation (`plotGeneExprPerSample()`, `plotDistribution()` 
    and  `plotRowStats()`, respectively)
    - Convert between different gene identifiers (the original identifier is 
    kept in some conditions, read `convertGeneIdentifiers()`); in the visual
    interface, when filtering and normalising gene expression, ENSEMBL 
    identifiers are converted to gene symbols, by default
* Groups:
    - By default, load pre-made lists of genes when loading gene expression or
    loading/performing alternative splicing quantification
    - Added pre-made list of genes that encode for RNA-binding proteins 
    (Sebestyen et al. 2016), useful to postulate about the regulatory role of
    those proteins based on gene expression and PSI correlation analyses
* Correlation analyses:
    - Allow to use groups of genes and alternative splicing events in 
    correlation analyses
    - Plot specific combinations of gene and alternative splicing events 
    (`[.GEandAScorrelation`())
    - Display progress when performing correlation analyses
    - Display correlation results in a table (`as.table()`)
* Survival:
    - Render p-value plot by cutoff in command-line interface 
    (`plotSurvivalPvaluesByCutoff()`)
* Gene, transcript and protein information:
    - Modify keywords used to search for PubMed articles

## Bug fixes and minor changes

* Improve console logging of error and warning alerts
* Fix crash when loading psichomics with test data that is not locally available
(by automatically downloading said data if not found)
* Allow to edit file path in file/directory browser elemnts
* Documentation:
    - Export functions mentioned in the documentation
    - Hide documentation of internal functions from the PDF reference manual
* Loading SRA data:
    - Accept a vector of files as the first argument (easier to use with 
    `list.files()`)
    - Ask to overwrite file if one exists with the same name as the output file
* Groups:
    - Automatically set dropdown width for group attribute selection
    - Minor improvements to the group creation interface
    - Fix error when creating groups containing only samples and no matching 
    subjects
    - Fix warning when displaying group preview only based on subjects or 
    samples
* Alternative splicing quantification:
    - Automatically set the human genome version after loading data from TCGA
    (hg19), GTEx (hg19) or recount2 (hg38)
    - Fix progress bar
    - Decrease loading time after quantifying alternative splicing
    - By default, quantify skipped exons, mutually exclusive exons, alternative 
    3' and 5' splice sites, and alternative first and last exons; the default
    option is now consistent across both the visual and command-line interfaces)
* Differential analyses:
    - Allow distribution plots to show the name of the samples when hovering or
    when a rug plot is rendered if `rugLabels = TRUE` (function
    `plotDistribution()`)
    - Fix distribution plots requiring all samples in a group when using 
    function `plotDistribution()`
    - Fix group colours and opacity for rug plot points within the distribution 
    plot (occured in the command-line version; function `plotDistribution()`)
    - Fix wrong information in the table of differential splicing results (only
    occurs when the first splicing event is one for which there is not enough
    information to calculate statistical tests)
    - Fix inconsistency when presenting median and variance differences between
    gene expression and alternative splicing quantification
    - Fix error when groups contain samples outside the data being analysed
* Gene, transcript and protein information:
    - Fix article title formatting (e.g. bold and italics)
* Update psichomics citation with journal publication date

# 1.8.1 (3 December, 2018)

* Add tag ImmunoOncology to BiocViews

# 1.6.2 (2 October, 2018)

* Update citations to link to article in Nucleic Acids Research:
https://doi.org/10.1093/nar/gky888
* Copy-edit README, tutorials, DESCRIPTION, NEWS and code
* Update screen shot
* Add metadata regarding loaded datasets (for instance, path and name of files 
used for dataset loading, options set upon dataset creation, etc.)
* Differential splicing and expression analysis:
    - Allow to input formulas when highlighting points; this is an improvement
    when plotting -log10(q-values), for instance, where it is now possible to
    highlight values >= -log10(0.05), i.e. q-values <= 0.5, instead of inputting
    an approximate value
* Correlation analyses:
    - Colour samples by group
    - Render contour based on a density estimate
    - Display exportable table with correlation analyses
* Groups:
    - Show group colour in group selection element
* Retrieve articles from PubMed instead of PMC

## Bug fixes and minor changes

* Improve file browser input in remote servers:
    - Allow to directly input a path without using the file browser dialog
    - Display warning when calling the file browser dialog in RStudio Server or
    in an unsupported system
* TCGA data:
    - Inform of sequencing technology used to obtain gene expression data
* GTEx data:
    - Fix issues in downstream analyses when using GTEx data subset by tissues
* Differential analysis:
    - Avoid limitting X axis of density plot when values outside 0 and 1 are
    provided, as in the case of gene expression ("plotDistribution" function)
    - Fix filenames of exported tables from differential expression analysis
    incorrectly mentioning differential splicing analysis instead
* Correlation analysis:
    - When plotting correlation analysis, loess curve was performed based on
    gaussian fitting, independent of the "family" argument of "plotCorrelation"
* Improve console logging of error and warning messages

# 1.6.1 (5 July, 2018)

* Improve support for analysing SRA and user-provided data:
	- New tutorial on performing alternative splicing analysis using SRA and 
	user-provided data from FASTQ files (other tutorials were also updated)
	- Process gene and splice junction counts from STAR output for subsequent
	loading into psichomics
	- Automatically download and load data from select SRA projects using the
	recount R package
* Data grouping:
    - Preview groups based on selected attribute before creation
* Gene, transcript and protein information:
    - Display alternative splicing events in transcript plot
* Correlation between gene expression and alternative splicing:
    - Allow to change plot height and font size

## Bug fixes and minor changes

* Support new version of Human (hg38 assembly) alternative splicing annotation 
(fixes wrong coordinates for many minus-strand splicing events)
* Fix issues with TCGA sample metadata:
    - No sample metadata loaded when loading TCGA files from local folder
    - Not retrieving sample metadata for all TCGA samples when multiple junction
    quantification files are loaded
* Data grouping:
    - Correctly suggest how to select variables in subset expression and give 
    more examples on how to use this feature
    - Fix subject/sample attributes not being updated for selection for the GREP
    interface
    - Fix error alerts not appearing when trying to create groups based on 
    invalid parameters
    - Add an error alert when trying to extract group data from an user-provided
    file without such information
* Alternative splicing quantification:
    - Fix crash when quantifying splicing for a single sample
* Differential splicing analysis (exploratory):
    - Fix crash when inputting non-numeric values or minimum larger than the
    maximum limit as the axes for the splicing scatter plot

# 1.4.5 (4 Apr, 2018)

* Mention psichomics manuscript throughout psichomics
* Copy-edit graphical user interface and respective tutorial
* Fix warnings and errors in Bioconductor

# 1.4.4 (12 Feb, 2018)

* Update CITATION file to show citation to article in bioRxiv:
https://www.biorxiv.org/content/early/2018/02/07/261180
* Update vignettes to include a case study based on the aforementioned article
* Gene expression pipeline:
    - Perform limma-trend by default
* Alternative splicing quantification:
    - Quantification of alternative first and last exons: following more 
    thorough testing, the new exon-centred method was considered to be less 
    relevant to exploratory analysis (specially when compared with other types 
    of events); as such, both methods are now available for quantification
* Dimensionality reduction:
    - Change tolerated missing values per event to 5% by default for both PCA
    and ICA (in both visual and command-line interfaces)
    - PCA: In the table that shows the events that most contribute to the 
    selected principal components, show the rank
* Groups:
    - Automatically set sample type groups (i.e. normal, primary solid tumour,
    metastatic, etc.) for TCGA samples (visual interface only)
* Differential analysis:
    - Use numeric fields instead of sliders to precisely filter data
    - Fix table for differential expression not being filtered based on
    highlighted genes
    - Filter splicing events or genes to use when performing exploratory
    differential analyses
* Survival analysis:
    - Allow to stratify patients based on optimal gene expression cutoff
    - Select samples to be used for survival analysis

## Bug fixes

* Fix problems related with DT versions >= 0.3:
    - Groups displayed as having the same attributes as last created group
    - Table not being updated in differential analyses according to event
    filtering based on the volcano plot

# 1.4.3 (12 Jan, 2018)

* Alternative splicing quantification:
    - Improve speed and memory usage when dealing with larger datasets
    - Improve quantification of alternative first and last exons: quantify 
    alternative first and last exons based on all exon-exon junction reads that 
    support each of the alternative exons
    - Print progress bar in R console
* Principal component analysis:
    - Change tolerated missing values per event to 5% by default
    - Show/save table with the contribution of events (for alternative splicing 
    quantification) or genes (for gene expression) to the selected principal
    components
    - Add extra information when hovering variables in loading plot
    - Allow to plot top 100 variables that most contribute to the selected 
    principal components (faster rendering of and interaction with loading 
    plots)
* Differential analysis:
    - Allow to input a list of groups for the "group" argument of the functions
    "diffAnalyses" and "plotDistribution" (command-line interface)
    - Allow to input a non-numeric vector or a row of a matrix/data frame in the
    "data" argument of the function "plotDistribution" (command-line interface)
* Correlation between gene expression and alternative splicing:
    - Perform correlation between gene expression of multiple genes and 
    quantification of multiple alternative splicing events

## Bug fixes

* Fix unnamed events when only one event for a event type is returned
* Minor copy-editing and overall improvements

# 1.4.2 (19 Dec, 2017)

* Fix error when trying to load alternative splicing annotation (given updated
hg19 and hg38 annotation that is now available for use with psichomics)

# 1.4.1 (14 Dec, 2017)

* GTEx data loading:
    - Add input elements to allow GTEx gene expression loading in the graphical
    interface
    - Fix bug that did not allow to select tissues to load GTEx v7 data
    (graphical interface)
    - Fix splicing events not being quantified based on GTEx v7 junction reads
* Gene expression normalisation:
    - Fix misleading gene expression (non-)normalisation by converting reads to 
    counts per million (CPM) using `edgeR::cpm()` after normalisation using
    `edgeR::calcNormFactor()`
* Alternative splicing quantification:
    - Updated support to properly parse new notation of alternative splicing 
    annotation from Bioconductor (backwards compatible with older notation)
    - Raise error when no splicing events after quantification
    - Fix warning following the quantification of splicing events or its loading
    (incorrect parsing of gene information from splicing events)
* Dimensionality reduction:
    - Use the number (instead of the percentage) of tolerated missing values per
    sample as the argument to impute data from the remaining samples for those
    values before performing dimensionality reduction; by default, missing 
    values are tolerated for 10 samples
* Update file description and README
* Minor bug fixes and improvements

# 1.4.0 (22 Oct, 2017)

* Support for loading new GTEx V7 data
* Support gene expression data:
    - Load, filter, normalise and perform log2-transformation on gene expression
    data from TCGA
    - Perform principal component analysis based on gene expression data, 
    survival analysis by gene expression cutoff and pairwise differential 
    gene expression analysis
    - Correlate gene expression of a given gene against PSI values of multiple
    alternative splicing events
* Data loading:
    - Add step-wise instructions about loading of user-provided files
    - Filter GTEx junction quantification based on tissues of interest (all 
    tissues are loaded by default)
    - Quantify splicing based on a list of genes (splicing events within all 
    genes are quantified by default)
    - Parse sample information from TCGA samples using `parseTcgaSampleInfo()`
    - Generate TCGA sample metadata when loading TCGA junction quantification
    - Present data summary after loading the data
* Data grouping:
    - Redesigned group creation and selection
    - Create groups based on genes and alternative splicing events
    - Assign a customisable colour per data group
    - Export or import patient and sample identifiers of data groups
    - Add new set operations when grouping (such as complement, subtraction and
    symmetric difference)
    - Suggest attributes of interest when creating groups
    - Allow to retrieve the universe of patient and sample identifiers by
    performing the complement group without any group selected
    - Statistically analyse group independence (useful to assess the overlap 
    between a PCA cluster and groups derived from clinical and sample 
    attributes, for instance)
* Differential analysis:
    - Label points based on top differentially spliced events or genes, selected 
    alternative splicing events and/or selected genes
    - Create AS event and gene groups based on filtered or selected AS events 
    and genes in the tables
* Dimensionality reduction techniques:
    - Subset data based on groups of AS events and genes before performing 
    dimensionality reduction
    - Create data groups based on the partitioning clustering of PCA scores
    - Perform independent component analysis (ICA) on alternative splicing 
    quantification and gene expression data
* Survival analysis:
    - Add p-value plot to visually infer the significance of survival analyses
    based on multiple alternative splicing quantification cutoffs
* Gene, transcript and protein information:
    - Information retrieval is now only dependent on a user-defined gene,
    instead of requiring alternative splicing quantification data to be loaded
    
## Bug fixes and other improvements

* Show progress bar when running in the command-line interface
* Fix inconsistent browser history navigation
* Updated the CLI vignette with information on analysing gene expression data
and a quick reference for functions
* Update minimum version required of shiny (1.0.3)
* Avoid replacing selected groups when manipulating new ones
* Differential splicing analysis:
    - Fix data not being rendered in the table when zooming in the plot after 
    data transformation was applied
    - Return p-value of NA instead of 0 when the value of Fligner-Killeen's Test
    for Homogeneity of Variance is infinite
    - Discard value transformations that may return invalid data for the values
    chosen for the X and Y axes
    - Fix point that remains highlighted in the plot after deselecting the only
    selected row of the table
    - Improve readability of plot's tooltip
    - Improve survival curves based on the optimal alternative splicing
    quantification cutoff:
        - Include the survival curve previews in 3 new columns within the
        differential splicing analyses table, instead of below that table; those
        columns consist of the survival curves, the optimal PSI cutoff and the 
        respective log-rank test's p-value
        - Allow to use survival data when plotting and table sorting
        - Include the optimal PSI cutoff and the respective log-rank test's 
        p-value in exported tables
        - Fix link to survival analyses using the previously calculated PSI
        cutoff
* Principal component analysis:
    - When clicking on a alternative splicing event in the loadings plot, the
    appropriate differential splicing analyses will now be automatically
    rendered with the respective options, as expected
* Survival analysis:
    - Properly set the title of survival curves based on the selected splicing
    event's quantification
    - Improve readability of Cox PH models
    - When performing survival analyses by alternative splicing cutoff, each
    patient is assigned the PSI value from the respective sample; for patients
    with more than one sample, the assigned sample is chosen based on the most
    frequent sample type across all patients (before, the first matched 
    non-normal or non-control samples were used)
* Multiple other bug fixes and visual improvements

# 1.2.1 (24 Apr, 2017)

* Gene, protein and transcript information:
    - Fix missing file required for transcript plots
* Update command-line interface tutorial to render a transcript plot

# 1.2.0 (22 Apr, 2017)

* Gene, protein and transcript information:
    - Fix tooltip text presentation in transcript plot
    - Fix JavaScript issues when zooming the transcript plot
    - Fix error when plotting events associated with multiple genes
    - Fix error when plotting single-exon transcripts
    - Protein name, length and function are now presented when available
    - Improved general presentation of the information
* Differential splicing analyses:
    - Click and drag in the plot to zoom in and subsequently filter events
    shown in the table
    - Decreased step of sliders
    - Improve interface of previewed survival curves
    - When clicking on a table link to navigate to differential splicing
    analyses of a single event, the appropriate analyses will now be
    automatically rendered with the respective options, as expected
* Settings (renamed to "Help"):
    - Add links to tutorials and user feedback
    - Add app information and acknowledgements
    - Remove unused option for choosing cores (all performed operations are 
    still single-core, given the difficulty of working with multiprocesses in
    Shiny)
* Improve dialogues regarding missing data and other minor interface elements
* Update documentation with volcano plot

# 1.0.9 (10 Apr, 2017)

* Differential splicing analyses:
    - Add volcano plot to represent events through selected attributes, such as
    p-values and descriptive statistics (e.g. median and variance) between 
    groups of interest
    - Transform values of the X and Y axis in the plot using log transformed, 
    inverted and absolute values, for instance
    - Highlight events in the plot based on values of the X and Y axis
    - Table of differential analyses per alternative splicing event is filtered
    according to highlighted and selected events in the plot
* Gene, protein and transcript information:
    - Transcript plot is now interactive and zoomable
    - Protein are now rendered based on selected transcript alone
    - Faster parsing of Uniprot's web API response
    - Improve display of article information when data is missing
* Principal component analysis:
    - Improve presentation of available options
* When clicking on previews of differential splicing and survival analyses, the
appropriate analyses will now be automatically rendered with the respective
options
* Fix buggy browser history when the user is directed to a different tab
* Consistently use Firebrowse and Firehose across the package
* Update documentation

# 1.0.8 (21 Feb, 2017)

* Support GTEx data loading and analysis
* Fix clinical data dependency:
    - Fix error when trying to load a file containing alternative splicing
    quantification without first loading clinical data
    - Fix error where samples from junction quantification were matched to
    clinical information even if clinical data were not loaded
    - Inform user when clinical data is not loaded while trying to plot survival
    curves
* Improve data grouping:
    - Create sample groups like patient groups and perform set operations
    between any created groups
    - Create groups using patient and sample identifiers
    - Check number of patients and samples per group
    - Rename selected groups
    - Alert user when groups cannot be created due to missing data
* Differential splicing analysis:
    - Analyse all samples as one group
* Survival analysis:
    - Select any clinical attribute for starting/follow up and ending times
* Create table containing TCGA sample metadata when calculating or loading
alternative splicing quantification
* Minor UI improvements

# 1.0.7 (22 Jan, 2017)

* Survival analysis:
    - Fix error caused by some non-matched patients not being in the 
    patient-sample matching matrix

# 1.0.6 (17 Jan, 2017)

* Update tutorials with more relevant and complex examples
* Update minimum versions required of highcharter (0.5.0) and shiny (1.0.0):
    - Fix function usage as according to new version of highcharter
    - More options available when exporting plots (PNG, JPEG, SVG, XLS and CSV)
* Faster alternative splicing quantification
* Differential splicing analysis:
    - Fix major bug where samples could be placed in the wrong groups
    - Shorten speed of the calculation for the optimal PSI cutoff that minimises
    the survival difference
    - Fix not performing statistical tests for two selected sample types while
    analysing a single event with three or more sample types
    - Fix differential analysis on one splicing event not working when using
    `diffAnalyses()` function
    - Fix differential analysis not showing for individual events before
    navigating to the page where the analysis is performed for all events
    - Improve readability and information of statistical tests for single events
* Principal component analysis:
    - Shorten time taken to calculate principal components and to render the
    loadings plot
    - Fix loadings plot error when rendering some principal components
* Survival analysis:
    - Fix incorrect number of patients from the survival groups in the 
    contextual information for the selected cutoff (below the slider)
    - Improve how alternative splicing quantification is assigned to patients
    based on their samples
* Protein annotation:
    - Warn user when trying to render proteins with no domains

# 1.0.5 (7 Jan, 2017)

* Navigate history using the browser forward and back buttons
* Fix delay when displaying large data by removing columns containing missing
values exclusively
* Principal component analysis:
    - Improve speed when calculating total contribution of each variable to the
    principal components
* Survival analysis:
    - Shorten calculation of optimal PSI that minimises the survival difference
    - Improve visual cues of optimal PSI cutoff and present p-value of selected
    PSI cutoff
    - Fix ambiguous error messages
    - Fix incorrect Cox model results for formula-based calculations
    - Fix null Cox models crashing the program
* Differential splicing analysis:
    - Select sample types for differential splicing analysis
    - Fix statistical tests not displaying for individual events after
    differentially analysing all events using the other statistical tests

# 1.0.4 (18 Dec, 2016)

* Correctly load files and quantify alternative splicing for PRAD, OV and PAAD
tumour types from The Cancer Genome Atlas (TCGA)
* Fix session disconnecting when exporting plots in Firefox
* Improve text and behaviour of fields to select datasets and AS events
* Fix author names and add contributor

# 1.0.3 (13 Dec, 2016)
    
* Bug fixes regarding gene annotation:
    - Fix disabled gene selection when choosing a splicing event associated with
    a single gene after selecting an event related to multiple genes
    - Fix display of PubMed articles related to previously selected gene when
    selecting a single-gene-associated event after selecting an event related to
    multiple genes
* Bug fixes regarding groups:
    - Fix groups by rows not working
    - Fix group selection not working when only one group exists
    - Improve argument name of getGroupsFrom()
* Other minor improvements

# 1.0.2 (3 Dec, 2016)

* Fix UTF-8 encoding in author list

# 1.0.1 (1 Dec, 2016)

* Improve metadata (title, description, authors and vignette titles)

# 1.0.0 (5 Oct, 2016)
    
* First release of psichomics
* Quantify, analyse and visualise alternative splicing data
