Skip to content

Imageomics/Andromeda

Repository files navigation

Andromeda

Andromeda allows users to visualize high dimensional data in a 2-dimensional plot using weighted multidimensional scaling. Through the interactive interface users can explore the relationships within their data by adjusting the variable weights and viewing an updated plot. Alternatively users can arrange the items in the plot so that Andromeda can determine new variable weights and create a new projection.

This package also includes a page to fetch data from iNaturalist observations and pair them with satellite RGB and landcover data for analysis with Andromeda.

An Andromeda instance allowing users to perform dimensional reduction on an uploaded CSV file can be found on the Imageomics Hugging Face.

sample data visualization in Andromeda

Sample data visualization with Andromeda.

Requirements

Deployment requires Docker.

Development requires python3 and nodejs.

Deployment

Our primary deployment environment is Hugging Face Spaces. To deploy a new version change the version in the tag in the Andromeda Space Dockerfile. Hugging Face handles SSL encryption automatically. Deploying in another environment may require additional configuration; previous configurations are discussed in Prior Configurations.

Development

To run the website locally without using Docker requires two terminal sessions.

  1. Python Flask Backend API Server: navigate to the andromeda folder and run
export ANDROMEDA_DEV_MODE=Y
flask --app main run --debug

For more information, see the Andromeda Backend README.

  1. Frontend nodejs/react development server: navigate to the andromeda-ui folder and run
npm run dev

For requirements and test information, see the Andromeda UI README.

For instructions on building and running the Docker container see Developing with Docker.

Python Backend

The python backend consists of a Flask REST API server. See the Andromeda Python README for instructions on running locally.

React Frontend

The frontend is a typescript react single page application. The project was generated using nextjs as suggested in the react documentation. See the Andromeda React README for instructions on running locally.

Notebook

An older version of Andromeda written as a jupyter notebook is at Andromeda_IMG.ipynb.