too-many-cells-interactive is an interactive visualization tool allowing users to explore cell cluster trees generated by too-many-cells.
This tool with its associated website is free and open to all users and there is no login requirement.
To get a detailed description of too-many-cells-interactive and interesting applications consider reading the publication, and please remember to cite.
For detailed documentation, quickstart, and tutorial, see https://schwartzlab-methods.github.io/too-many-cells-interactive.
The fastest and easiest way to get started developing with too-many-cells-interactive is with Docker and Docker Compose. If you don't already have them on your system, please consult the relevant install guides.
To build the application for development, you will need to provision the Docker containers, compile the Typescript, and mount your cluster_tree.json
and labels.csv
files into the node server's static/files
directory. To do so, you may simply copy them into <project-root>/node/static/files
, since the the development docker-compose file mounts the host's entire node
directory into the container.
- the Docker configuration for development can be found in docker-compose.yaml. Unlike the "production" configuration, the development setup splits the javascript code into front-end (React) and back-end (Node) containers. By default, the React application will listen on port 1212. You can change this value by creating an
.env
file and entering your own value forREACT_PORT
. There is a sample.env
file called.env.sample
that can serve as a basis. Both the node and react containers are configured to recompile whenever there is a code change. - You need to perform the feature provisioning process just once for a given dataset. After the features are in the database and files moved into the
/node/static/files
directory,docker-compose up
is sufficient to bring up the application. If you would like to import a new set of features, the easiest way to do so is to rerun thestart-and-load.sh
script, which will drop your previous data from the PostgreSQL database and import new data. Your dev application will use this same data the next time you bring it up withdocker-compose up
.