# Gene-Expression-Plots prototype Manual
## Disclaimer
Note that the Application is a prototype. It is not stable, as some necessary things are missing like validations, Error-handling, etc..
## Usage
### Terminology
Imagine you want to plot gene expression counts resulting from a heat shock experiment carried out on your model organism of choice, e.g. witch plants.
- **Group**: represents a collection of samples for a specific experimental condition, e.g. apical meristem exposed to heat shock for ten minutes. A group has one or more samples:
- **Sample**: represents a collection of replicates within a group, e.g. tissue sample obtained after zero days, three, and five days after exposure to the heat shock, respectively. A sample has one or more replicates:
- **Replicate**: typical for RNA-Seq experiments is the requirement of biological replicates in order to obtain robustness of results against noise. A 'replicate' thus is a single measurement of RNA-Seq counts from a respective tissue sample. Each replicate has a single count table as produced by the typical RNA-Seq analysis pipelines (e.g. Kallisto or Salmon).
_Note: All groups, samples, and replicates must have the same gene gene accession identifiers._
### Uploading Data
Data upload is done in the *Data* Tab of the app. There are 2 different ways of uploading your data to the application.
#### From replicate-tables
See above terminology for details on 'replicate tables'.
- In the _Data_ page, click the _plus_ icon and fill out the presented form.
- The form represents the upload of either a single replicate file, or many replicates that belong to a specific sample within a specific group.
- When uploading several replicates at once, make sure the table parameters match.
- When uploading replicates for an existing group and sample, make sure the group and sample names match, otherwise a new group or sample will be created.
- Each uploaded Group will appear on the main _Data_ page. Further replicate uploads to an existing group will update its _sample_ and _replicates_ count.
_Note: it is recommended to export the uploaded data, so that it can be reimported more easily in the future._
#### From existing json source
This basically is picking up plotting after having saved a previous 'project'. Load exported data and continue plotting.
- Access the menu via the right Side-Drawer (grey bar at the right of your browser window) in the *Data* page.
- Here you can either import previously exported data or directly export your processed data (from replicate-tables - see below) to JSON.
- Once the import is done, you can see your data in the respective list.
### Plotting
#### Create an expression plot for a gene
- Switch to the *Plots* page and open the side-drawer on the right.
- Choose a gene by its accessionId. You can search by typing in the input field. _Be aware that *for now* only the first 10 matches are displayed in the drop-down._
- Optionally select whether to show the legend using the _showlegend_ checkbox.
- Once you hit **SAVE** a bar plot for the chosen gene is displayed.
- Hovering the mouse over a plot will show a _modebar_ with various controls (e.g. export plot to a PNG file).
#### Add another plot
You can compare gene expression by putting side by side expression bar-plots. Just repeat the process for creating a plot this time selecting the other gene identifier.
_Note: The **RESET** button has no functionality yet. Make sure to export your data for quick reimporting and replotting._
## Current Issues
- **WARNING**: Do not reload the page. Your data will be lost.
- For now there is no way to edit or delete data and plots. If you make a mistake in the upload form, you have to reload the page and go again.
- There are no validations for your input tables. Make sure they are in the correct format.
- Manual navigation using the URL bar is not correctly configured.