Giter Site home page Giter Site logo

ebi-gene-expression-group / atlas-web-single-cell Goto Github PK

View Code? Open in Web Editor NEW
5.0 9.0 3.0 150.77 MB

Single Cell Expression Atlas web application

License: Apache License 2.0

Java 71.44% JavaScript 24.55% HTML 1.02% CSS 0.57% Dockerfile 0.22% Shell 2.20%

atlas-web-single-cell's Introduction

Single Cell Expression Atlas

Prepare your development environment

TL;DR

./docker/prepare-dev-environment/gradle-cache/run.sh -r -l gradle-cache.log && \
./docker/prepare-dev-environment/volumes/run.sh -r -l volumes.log && \
./docker/prepare-dev-environment/postgres/run.sh -r -l pg-anndata.log && \
./docker/prepare-dev-environment/postgres/run.sh -r -a -l pg-no-anndata.log && \
./docker/prepare-dev-environment/solr/run.sh -r -l solr.log &&
./build-and-deploy-webapp.sh

Point your browser at http://localhost:8080/gxa/sc and voilà!

Requirements

  • Docker v20+ with the Compose plugin
  • 60 GB of available storage for the following Docker volumes:
    • Experiment files
    • Bioentity properties (i.e. gene annotations)
    • PostgreSQL
    • SolrCloud and ZooKeeper
    • Tomcat configuration files

Files written by Solr, PostgreSQL and Tomcat are kept in volumes which will be reused even if the containers are removed (e.g. when running docker compose down). If you want to start afresh each script can remove all volumes if you add the -r option . You can find the volume names used by each service in the volumes section of its Docker Compose YAML file.

The full list of volumes is:

  • scxa_gradle-wrapper-dists
  • scxa_gradle-ro-dep-cache
  • scxa_atlas-data-bioentity-properties
  • scxa_atlas-data-exp
  • scxa_atlas-data-scxa-expdesign
  • scxa_postgres-11-pgdata-18
  • scxa_postgres-11-pgdata-latest
  • scxa_solrcloud-0-data-solr-8.7
  • scxa_solrcloud-1-data-solr-8.7
  • scxa_solrcloud-zookeeper-0-data-solr-8.7
  • scxa_solrcloud-zookeeper-0-datalog-solr-8.7
  • scxa_solrcloud-zookeeper-1-data-solr-8.7
  • scxa_solrcloud-zookeeper-1-datalog-solr-8.7
  • scxa_solrcloud-zookeeper-2-data-solr-8.7
  • scxa_solrcloud-zookeeper-2-datalog-solr-8.7
  • scxa_tomcat-conf

Code

Clone this repository with submodules:

git clone --recurse-submodules https://github.com/ebi-gene-expression-group/atlas-web-single-cell.git

If you have already cloned the project ensure it’s up-to-date:

git pull
git submodule update --remote

Create a Gradle read-only dependency cache

To speed up builds and tests it is strongly encouraged to create a Docker volume to back a Gradle read-only dependency cache.

./docker/prepare-dev-environment/gradle-cache/run.sh -r -l gradle-cache.log

Prepare volumes

In order to run integration tests and a development instance of Single Cell Expression Atlas you will need a few Docker Compose volumes first. They will be populated with data that will be indexed in Solr and Postgres. Single Cell Expression Atlas needs all three of: file bundles in the volumes, Solr collections and Postgres data. This step takes care of the first requirement:

./docker/prepare-dev-environment/volumes/run.sh -r -l volumes.log

You can get detailed information about which volumes are created if you run the script with the -h flag.

This script, unless it’s run with the -r flag, can be interrupted without losing any data. The container mirrors directories via FTP, and can resume after cancellation. It can be re-run to update the data in the volumes should the contents of the source directories change. This is especially useful when experiments are re-analysed/re-annotated, or the bioentity properties directory is updated after a release of Ensembl, WormBase ParaSite, Reactome, Gene Ontoloy, Plant Ontology or InterPro.

PostgreSQL

To enable easy switching between anndata support and earlier versions of the database, the script sets the environment variable SCHEMA_VERSION to either latest or 18 (latest version before anndata was introduced), respectively. The value is appended to the volume name mounted by the Postgres service.

Run the script twice and then choose later the appropriate version:

./docker/prepare-dev-environment/postgres/run.sh -r -l pg-anndata.log       # anndata support
./docker/prepare-dev-environment/postgres/run.sh -a -r -l pg-no-anndata.log  # no anndata support

To run the Postgres service with support for anndata experiments:

SCHEMA_VERSION=latest \
docker compose --env-file ./docker/dev.env \
-f ./docker/docker-compose-postgres.yml \
up

To run the Postgres service without support for anndata experiments:

SCHEMA_VERSION=18 \
docker compose --env-file ./docker/dev.env \
-f ./docker/docker-compose-postgres.yml \
up

Solr

The Solr script can optionally be given a location for the Single Cell Expression Atlas ontology OWL file. Otherwise, it will download the published scatlas.owl file in the EBI SPOT repository. It will also generate an RSA keypair to sign and verify Solr packages that you can keep for reference and to sign other packages (or later versions of BioSolr). Be aware that Solr can store multiple keys, so they are not strictly necessary; it is possible to generate a new keypair and store its public key every time you add a package. Run the script with the -h flag for more details.

./docker/prepare-dev-environment/solr/run.sh -r -l solr.log

You may want to speed up the process by raising the value of the environment variable NUM_DOCS_PER_BATCH (L126 of the run.sh script). On a fairly powerful laptop at the time of
writing
20,000 has been found to be a reliable number via painstaking trail and error, but your mileage may vary. Ensure that there are no errors in the script logs. Some tests may fail due to incomplete annotations; grep for DistributedUpdatesAsyncException in particular, which signals a problem storing the document batch, which in turn stops processing the current file. If found, try again with a lower value for NUM_DOCS_PER_BATCH.

Update test data

Add or change the necessary species names and experiment accessions in the test-data.env file and rebuild the development environment.

Testing

TL;DR

./execute-all-tests.sh 18      # For non-anndata DB
./execute-all-tests.sh latest  # For anndata DB
./execute-single-test.sh TEST_NAME [ 18 ]
./debug-single-test.sh TEST_NAME [ 18 ]
./stop-and-remove-containers.sh

Execute all tests

The scxa-gradle service in docker/docker-compose-gradle.yml executes all tests and writes reports to atlas-web-core/build and app/build in the host machine. It requires the SolrCloud service described earlier, and a Postgres container with the following differences compared to the development service, scxa-postgres: it doesn’t use named volumes to ensure the database is clean before running any tests, and its name (as well as the dependency declared in docker-compose-gradle.yml) has been changed to scxa-postgres-test. We don’t want to use scxa-postgres by mistake and wipe the tables from the dev instance when cleaning fixtures... such an unfortunate accident is known to have happened.

The job is split in the following six phases:

  1. Clean build directory
  2. Compile test classes
  3. Run unit tests
  4. Run integration tests
  5. Run end-to-end tests
  6. Generate JaCoCo reports

You should specify which SCHEMA_VERSION you want to test against (i.e. anndata or non-anndata database, see the PostgreSQL section above).

For non-anndata:

SCHEMA_VERSION=18 \
docker compose \
--env-file ./docker/dev.env \
-f ./docker/docker-compose-gradle.yml \
-f ./docker/docker-compose-postgres-test.yml \
-f ./docker/docker-compose-solrcloud.yml \
up

For anndata:

SCHEMA_VERSION=latest \
docker compose \
--env-file ./docker/dev.env \
-f ./docker/docker-compose-gradle.yml \
-f ./docker/docker-compose-postgres-test.yml \
-f ./docker/docker-compose-solrcloud.yml \
up

You will eventually see these log messages:

scxa-gradle         | BUILD SUCCESSFUL in 2s
scxa-gradle         | 3 actionable tasks: 1 executed, 2 up-to-date
scxa-gradle exited with code 0

Press Ctrl+C to stop the container and clean any leftovers:

SCHEMA_VERSION=18 \
docker compose \
--env-file ./docker/dev.env \
-f ./docker/docker-compose-gradle.yml \
-f ./docker/docker-compose-postgres-test.yml \
-f ./docker/docker-compose-solrcloud.yml \
down

Or run ./stop-and-remove-containers.sh.

You will find very convenient to use the script execute-all-tests.sh. By default, it runs the anndata database, but the schema version can be provided as an argument. E.g.:

./execute-all-tests.sh [ 18 ]

The script uses docker compose run, and control returns to your shell once the tasks have finished.

Execute a single test

Many times you will find yourself working in a specific test case or class. Running all tests in such cases is impractical. In such situations you can use Gradle’s continuous build execution. See the example below for e.g. ExperimentFileLocationServiceIT.java:

docker compose \
--env-file ./docker/dev.env \
-f ./docker/docker-compose-gradle.yml \
-f ./docker/docker-compose-postgres-test.yml \
-f ./docker/docker-compose-solrcloud.yml \
run --rm --service-ports \
scxa-gradle bash -c '
./gradlew :app:clean &&
./gradlew \
-PdataFilesLocation=/atlas-data \
-PexperimentFilesLocation=/atlas-data/scxa \
-PexperimentDesignLocation=/atlas-data/expdesign \
-PjdbcUrl=jdbc:postgresql://${POSTGRES_HOST}:5432/${POSTGRES_DB} \
-PjdbcUsername=${POSTGRES_USER} \
-PjdbcPassword=${POSTGRES_PASSWORD} \
-PzkHosts=${SOLR_CLOUD_ZK_CONTAINER_1_NAME}:2181,${SOLR_CLOUD_ZK_CONTAINER_2_NAME}:2181,${SOLR_CLOUD_ZK_CONTAINER_3_NAME}:2181 \
-PsolrHosts=http://${SOLR_CLOUD_CONTAINER_1_NAME}:8983/solr,http://${SOLR_CLOUD_CONTAINER_2_NAME}:8983/solr \
app:testClasses &&
./gradlew --continuous :app:test --tests ExperimentFileLocationServiceIT
'

After running the test Gradle stays idle and waits for any changes in the code. When it detects that the files in your project have been updated it will recompile them and run the specified test again. Notice that you can specify multiple test files after --tests (by name or with wildcards).

Again, a convenience script can be used:

./execute-single-test.sh TEST_NAME [ 18 ]

The second argument is optional and can be used to specify a database version. As before, if unspecified it defaults to latest.

Debug tests

If you want to use a debugger, add the option -PremoteDebug to the task test line. For instance:

./gradlew -PremoteDebug :app:test --tests CellPlotDaoIT

Be aware that Gradle won’t execute the tests until you attach a remote debugger to port 5005. It will notify you when it’s ready with the following message:

> Task :app:test
Listening for transport dt_socket at address: 5005
<===========--> 90% EXECUTING [5s]
> IDLE
> IDLE
> IDLE
> IDLE
> IDLE
> IDLE
> IDLE
> :app:test > 0 tests completed
> IDLE
> IDLE
> IDLE
> IDLE

You can combine --continuous with -PremoteDebug, but the debugger will be disconnected at the end of the test. You will need to start and attach the remote debugger every time Gradle compiles and runs the specified test.

The script debug-single-test.sh is a shortcut for this task. It takes the same arguments as executing a single test.

Run web application

The web application is compiled in two stages:

  1. Front end JavaScript packages are transpiled into “bundles” with Webpack
  2. Bundles and back end Java code are built as a WAR file

Lastly, Tomcat deploys the WAR file according to app/src/main/webapp/META-INF/context.xml; other Java EE web servers might work but no testing has been carried out in this regard.

For the first step you can run the following script:

 ./compile-front-end-packages.sh -iu

The sceond step is simply:

./gradlew :app:war

The script build-and-deploy-webapp.sh puts it altogether and will eventually launch a Tomcat container with a running dev instance of Single Cell Expression Atlas. The script before launching the web application can build only the back-end or front-end component or both.

Here is the usage of this script:

  • -f Use this flag if you would like to build the front-end javascript packages.
  • -b Use this flag if you would like to build the back-end of the web application.
  • -h Displaying the help file of this script.

If you don't give any flags, or you add both then the script is going to build both front and back-end part of the web application.

Gradle shell

It also creates a service with one Gradle container that you can attach to your terminal:

docker attach scxa-gradle-shell-1

You can run tests within and any Gradle task in that container (a running Gradle daemon is provided). Every time you re-run the war task (e.g. in the Gradle shell container) the web app will be automatically re-deployed by Tomcat.

You can also set a Docker Compose Run configuration in IntelliJ IDEA with SCHEMA_VERSION in environment variables and dev.env in environment files.

atlas-web-single-cell's People

Contributors

alfonsomunozpomer avatar haideriqbal avatar hewgreen avatar ke4 avatar lingyun1010 avatar monicajianu avatar ngeorgeebi avatar pcm32 avatar upendrakumbham avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atlas-web-single-cell's Issues

HCA experiments wrongly linking to ENA

Example page: https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-9/supplementary-information

Issue:
Under the Resources header, we show a non-working link to ENA. The link in picking up the UUID of the HCA study as if it was an ENA study accession and tries to find it in ENA.

The expected behaviour is the following:
In case of HCA studies, we will have a HCA study accessions in the Comment[SecondaryAccession] field in the IDF.
This accession is a UUID which can be used to look up the study in the HCA data portal.
The target link for the example above should be https://data.humancellatlas.org/explore/projects/4d6f6c96-2a83-43d8-8fe1-0f53bffd4674

Experiment page: preferred K doesn't always have marker genes

The default K passed to the marker genes heatmap is the preferred K from the t-SNE plot. However, for some experiments (such as E-MTAB-6946) when you click on the marker genes tab you get no results.

Ideally, there should be an additional check to see if the preferred K has marker genes, if not, select the next item in the list of available Ks.

Missing values in cell type marker gene download from heatmap

I found a few bugs trying the download feature from the anatomograms cell type marker gene heatmap.
First of all gene values are missing in the table, and there are a few other minor issues in the process.

Example URL: https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-81547/results/anatomogram

  1. Download prompt shows "blob"

Screenshot 2021-02-08 at 18 19 58

  1. (Excel only) Excel opens with a warning about file extension not matching

Screenshot 2021-02-08 at 18 20 05

  1. "HADH" gene has no values reported in the table, even though it does in the heatmap.

Screenshot 2021-02-08 at 18 20 58

Screenshot 2021-02-08 at 18 36 42

  1. (Excel only) Sheet name is "Ark1"

Out of memory errors on the tomcat server for gxasc

I went to look at the logs due to error coming up on the screen, for instance the marker genes heatmap timed out with:

image

and I found on the logs:

09:57:03.779 [http-nio-8080-exec-970] INFO  uk.ac.ebi.atlas.solr.cloud.CollectionProxy - Querying experiment_accession:("E\-ENAD\-15") AND characteristic_name:("inferred_cell_type")
10:01:47.345 [http-nio-8080-exec-956] ERROR uk.ac.ebi.atlas.controllers.JsonExceptionHandlingController - Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space - org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1053)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)

Items in the t-SNE tooltip box should be shown always in the same order within an experiment

The order of the items shown in the t-SNE tooltip appears to be kind of random and varies a lot from dot to dot within a single experiment:
Screen Shot 2021-03-02 at 21 28 19
Screen Shot 2021-03-02 at 21 29 25

It would be better if the order remained constant across all cells in an experiment, especially the 'Inferred cell type-authors labels' and 'Inferred cell type - ontology labels' should stay together and in the same order. I'd also put them always as the two last items in the box if possible

Heatmap gene symbol leads to search that just uses query and not explicitly gene symbol

Click on the gene symbols on a heatmap (such as https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-9221/results/marker-genes) currently takes you to this sort of gene query:

https://wwwdev.ebi.ac.uk/gxa/sc/search?q=CSF3R&species=Homo+sapiens

In some cases, these queries tend to fail (for some reason, maybe cold caches) with a 500 error. I guess that we would make solr's life easier if instead of doing a complete search, we actively limit it to search by symbol (since we know by construction that this is a symbol):

https://wwwdev.ebi.ac.uk/gxa/sc/search?species=Homo+sapiens&symbol=CSF3R

Do not show anatomogram for experiments with no displayable data

At the moment anatomograms are displayed whenever the [organism] is human and the [organism part] is one for which an anatomogram exists even if there is no data that can actually be displayed in the relevant anatomogram:
e.g
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-130473/downloads - is fetal liver (have anatomograms for adult tissues only)
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-8/results/anatomogram - T-cells not part of the diagrams
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-6653/results/anatomogram - don't have inferred cell types
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-86618/results/anatomogram - don't have inferred cell types
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-CURD-11/results/anatomogram - don't have inferred cell types
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-6308/results/anatomogram - don't have inferred cell type
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-10/results/anatomogram - only have fetal data (not adult)
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-CURD-10/results/anatomogram - don't have inferred cell types

The best thing would be removing the anatomograms from these experiments before the public release if at all possible as displaying the anatomograms for these is not correct but a lasting change to the implementation logic may be too complicated to do in that time-frame - if yes, can we 'manually' remove them for now, before a permanent solution is found?

For future development I thing the logic for display should be [organism] - human, [developmental stage] - adult, [organism part] - anatomogram available, [inferred cell type - ontology labels] - available AND some terms therein or their parent terms are used in the relevant anatomogram stack
But not sure how difficult this would be to implement (especially the last bit as that assumes ontology expansion for each ontology term used in an anatomogram is somehow available to check against)
Also for placenta the [dev stage] is tricky as it's a part fetal/ part mother (adult) organ but that should be the only exception where the [dev stage] check would not be applicable

On landing on an anatomogram sub-level, all contained cells should be shown in the heatmap

When going into experiment https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-130148/results

and clicking on

image

you reach a page with no cell types in the heatmap.

image

However, clicking individual cells

image

will show that they do have gene expression data

image

which probably means that the first previou marker genes heatmap could be populated with the marker genes of each cell type as rows and different cell types as columns.

Give hint for users to discover hidden functionalities of the tSNE plot

Currently the coloured tSNE plot has at least two very nice behaviours that might not be obvious to users without a hint (maybe there are more that I haven't discovered):

  • Clicking on the cluster/metadata label in the key hides it.
  • Hovering over the cluster/metadata label in the key highlights the cluster.

We should have a small snippet of text of something (or maybe something that pops up in the interface the first time that you visit) briefly mentioning these behaviours.

Browser tab icon for single cell is not the Atlas logo

There is a difference between bulk and single cell in the browser tab icons.
Bulk pages have the Atlas logo and Single Cell pages have the EBI logo (see screenshot).
Screenshot 2021-01-25 at 12 07 13

I suggest to update the single cell pages to also show the Atlas logo, or actually the Single Cell Atlas logo.

Liver ontology expansion for colouring of anatomogram shapes/structures

cell type shapes/parent structures not active (grey) for matching cell types and theIr parent structure (liver lobule):
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-9/results/anatomogram

cholangiocyte, Kupffer cell, hepatic stellate cell, both the sinusoidal endothelial cell types and the portal endothelial cell all should have a corresponding shape in the anatomogram highlighted as well as the parent structure (liver lobule) in the level-up (main image)
e.g. https://www.ebi.ac.uk/ols/ontologies/efo/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FCL_1000488

Overlapping clusters with similar colours are hard to tell apart

On https://www.ebi.ac.uk/gxa/sc/experiments/E-ENAD-17/results?colourBy=clusters&k=8&markerGeneK=8, in the cluster plot is a good example of a situation where no clear clusters stand out. In such cases it is very hard to tell apart members of clusters encoded with similar colours, e.g. clusters 4 and 6 (see: https://www.ebi.ac.uk/~rpetry/testing/scgxa/scgxa_issues2.png). This is in contrast to https://www.ebi.ac.uk/gxa/sc/experiments/E-EHCA-2/results/tsne (https://www.ebi.ac.uk/~rpetry/testing/scgxa/scgxa_issues3.png), where colours of clusters 4 and 6 are ver similar, but clusters happen to be so distinct that the user is able to discriminate between them easily. It might be interesting to come up with a logic to make the colours of each two clusters more distant from each other in colour space the more overlapping they are with each other - and traverse so through all pairs of clusters until some 'colour distinction' equilibrium is reached at the whole plot level (easier said that done, I'm sure...;))

Icon to go back to previous zoom level doesn't work on certain ocassions

Reported by Nancy and others:

https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-5061/results/anatomogram
Tooltip to upper image doesn’t work.
Can't find cell type images for type B cells.
Can we make it so that when you hover over a shape in the anatomogram a tooltip pops up with the shape name even when the shape is white?

https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-81608/results/anatomogram
tooltip back up doesn’t work

https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-9/results/anatomogram
tooltip to upper image doesn’t work
Cell types are defined in the heatmap (stellate cel) that aren't coloured in in the anatomogram

https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-8/results/anatomogram
tooltip to upper image doesn’t work
no cell type shapes found in zoom ins

Lung anatomogram doesn't show heatmap entering alveolus cross-section (even though there is data)

One weird behaviour I noticed is the following in lung:
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-130148/results/anatomogram
Going deeper through the zoom ins, results in the heatmap disappear and then appear again.
Click through to the alveolus cross section, I see the heat map showing "no results" but the 2 cell types are highlighted and hoverable. When I click on the shape, the corresponding expression appears.
So in the previous image I saw the 2 cell types in the heat map, clicked on the zoom in to the alveolus cross section, they disappeared, but selecting a particular cell type brings up results from the empty heat map.

Before entering the zoom-in (data in the heatmap):
Screenshot 2021-01-25 at 12 19 31

Entering cross section (no results):
Screenshot 2021-01-20 at 09 58 15

After clicking on cell type (results in the heatmap):
Screenshot 2021-01-20 at 09 58 26

I don't know if that is the intended behaviour but I would have expected the results not to disappear when selecting the zoom in for the cell types that have their shape in the zoom in and data available.

No cell type heatmap shown for images with active anatomogram cell types

e.g. here:
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-HCAD-1/results/anatomogram - if you click your way down to the alveolus x-section image (screenshot below) there is no heatmap with cell types, even though we do have the data for at least some of them
Screen Shot 2021-01-21 at 15 07 29

Screen Shot 2021-01-21 at 15 07 48

all of the cell types appear (not just the ones included relevant for the particular zoom-in) once you select one cell type (second screenshot) but for pancreas for example, you can see the cell type marker map even without selecting one particular cell type. The user should definitely be able to see something when jumping into a zoom-in with some active shapes - ideally a filtered heat map with just the relevant cell types but as a quick fix whole heatmap would be OK for now too

Pancreas ontology expansion for colouring of anatomogram shapes/structures

The ontology expansion and so the colouring of parent structures for cell types across images in the pancreas anatomogram stack is a bit patchy:
In none of the experiments below 'pancreatic acinus' structure/shape is active (grey colour) although the data include acinar cells, which is a child term for pancreatic acinus: https://www.ebi.ac.uk/ols/ontologies/efo/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FCL_0000622
screenshot here:
screenshot.pptx

https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-GEOD-81547/results/anatomogram
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-5061/results/anatomogram
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-ENAD-27/results/anatomogram

This one doesn't have either the acinus or the islet of Langerhans in grey, which is especially weird as the expansion from islet cell types to islet (structure) and the colouring of these across the two images works in the other pancreas experiments
https://wwwdev.ebi.ac.uk/gxa/sc/experiments/E-MTAB-5061/results/anatomogram

Inferred cell type cannot be removed from filter once added

After searching for a gene symbol (CFTR), the application of the filter for cell types on the left cannot be reversed by clicking on the x next to the added cell type (lower left corner of the screenshot):

image

So on clicking the red cross, it doesn't go away.

/gxa/sc/search?species=&symbol=CFTR

macOS / Chrome

Disconnect btw Marker gene table and t-SNE for exps with Inferred cell type

The default t-SNE view for experiments with inferred cell type (ICT) annotations has been changed to show these labels rather than just clusters as before. This however has the unintended consequence that there is currently no way for the user to make the connection between the ICT-labelled t-SNE clusters and the marker genes in the marker gene table which still uses just cluster numbers:
Screen Shot 2021-03-02 at 20 43 54
Screen Shot 2021-03-02 at 20 44 13

So - unless there is some clever trick I don't know about - the only way for the user to connect the clusters in the t-SNE with the Marker gene heatmap would be going to the marker gene table first, remember the number of clusters therein, go to the t-SNE and change the view to the that k, locate the cluster they're interested in, note its cluster number, go back to the marker gene table and look up the marker genes. I suggest we show the cluster number in the tooltip box - this would be the cluster number for our default k if t-SNE is coloured by metadata and whatever the correct cluster number for a given k if the user chooses a specific k option (other than the default k), maybe we can show the cluster number together with its k - like 'Cluster number: 13 (k=21)'. Obviously our clusters will not always agree with the inferred cell type labels e.g. multiple clusters can have the same label (and sometimes this can be due to us collapsing several authors-derived labels under one ontology term) but lesser of two evils I think

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.