Metadata-Version: 2.4
Name: hyrax
Version: 0.8.0
Summary: A low-code solution for rapid experimentation with machine learning in astronomy. Hyrax is an extensible 
Author-email: LINCC Frameworks <mtauraso@uw.edu>
License-Expression: MIT
Project-URL: Source Code, https://github.com/lincc-frameworks/hyrax
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: astropy
Requires-Dist: pytorch-ignite<=0.5.4
Requires-Dist: more-itertools
Requires-Dist: toml
Requires-Dist: tomlkit
Requires-Dist: torch
Requires-Dist: torchvision
Requires-Dist: tensorboardX
Requires-Dist: tensorboard
Requires-Dist: schwimmbad
Requires-Dist: chromadb>1.0
Requires-Dist: holoviews
Requires-Dist: bokeh
Requires-Dist: jupyter_bokeh
Requires-Dist: datashader
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: cython
Requires-Dist: mlflow>=3.7
Requires-Dist: umap-learn
Requires-Dist: pooch
Requires-Dist: pydantic<3.0,>=2.10.0
Requires-Dist: onnx
Requires-Dist: onnxruntime
Requires-Dist: onnxscript
Requires-Dist: plotly
Requires-Dist: psutil
Requires-Dist: tqdm
Requires-Dist: datasets
Requires-Dist: qdrant-client
Requires-Dist: colorama
Requires-Dist: lancedb<0.30.0
Requires-Dist: pyarrow
Requires-Dist: pylance
Provides-Extra: examples
Provides-Extra: dev
Requires-Dist: asv[virtualenv]==0.6.5; extra == "dev"
Requires-Dist: jupyter; extra == "dev"
Requires-Dist: matplotlib; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-env; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-autoapi; extra == "dev"
Requires-Dist: sphinx-book-theme; extra == "dev"
Requires-Dist: sphinx-design; extra == "dev"
Requires-Dist: nbsphinx; extra == "dev"
Requires-Dist: sphinx-tabs; extra == "dev"
Requires-Dist: sphinx-copybutton; extra == "dev"
Requires-Dist: sphinx-togglebutton; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
Requires-Dist: lsdb; extra == "dev"
Dynamic: license-file

# Hyrax
### A Low-Code Framework for Rapid Experimentation with ML & Unsupervised Discovery in Astronomy
[![Template](https://img.shields.io/badge/Template-LINCC%20Frameworks%20Python%20Project%20Template-brightgreen)](https://lincc-ppt.readthedocs.io/en/latest/)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/lincc-frameworks/hyrax/smoke-test.yml)](https://github.com/lincc-frameworks/hyrax/actions/workflows/smoke-test.yml)
[![codecov](https://codecov.io/gh/lincc-frameworks/hyrax/branch/main/graph/badge.svg)](https://codecov.io/gh/lincc-frameworks/hyrax)
[![Read the Docs](https://img.shields.io/readthedocs/hyrax)](https://hyrax.readthedocs.io/en/latest)
[![PyPI](https://img.shields.io/pypi/v/hyrax?color=blue&logo=pypi&logoColor=white)](https://pypi.org/project/hyrax/)

Hyrax is an extensible platform that handles much of the boilerplate code that is often required for a machine learning project in astronomy. Hyrax users are able to focus on the science work of model development and results analysis instead of infrastructure.

Hyrax is not tied to a specific model or data modality but rather is intended to encourage an ecosystem of models and data for rapid experimentation.
If the algorithm you want can be implemented in PyTorch, then Hyrax can likely reduce the boilerplate code required for a reproducible project.


## Getting Started 
Hyrax can be installed via pip:

```
>> pip install hyrax
```

Hyrax is officially supported and tested with Python versions 3.11, 3.12, and 3.13.
Other versions may work but are not guaranteed to be compatible.

Check out [Getting started](https://hyrax.readthedocs.io/en/latest/getting_started.html) and
[Common workflows](https://hyrax.readthedocs.io/en/latest/common_workflows.html) in the documentation for usage examples.


## Existing Hyrax Projects
Hyrax has been developed to support single and multimodal data for use with both supervised and unsupervised models.
Some examples include: 

- Image-based unsupervised discovery in Rubin-LSST and HSC. (A. Ghosh, J.  Chatchadanoraset, D. Miura)
- Spectra-based supervised clustering to study supernova Ia spectral diversity. (L. Cunningham, M. Dai)
- Image-based supervised small body classification. (M. West++)
- Multimodal time-series classification for ZTF alert follow-up. (A. Sasli, F. Fontinele-Nunes++)
- Image-based unsupervised discovery of cluster-scale gravitationally lensed arcs. (G. Khullar++)
- Searches for semi-resolved galaxies in HSC and LSST (P. Ferguson ++)

## Collaborations and Contributions
If you are an astronomer interested in using Hyrax, please get in touch with us!
We are especially interested to hear about applications that Hyrax doesn't currently support.

Hyrax is open source and under active development.
If you would like to contribute, please contact us. We would be happy to work with you.


## Acknowledgements
This project started as a collaboration between different units within the
[LSST Discovery Alliance](https://lsstdiscoveryalliance.org/) --
the [LINCC Frameworks Team](https://lsstdiscoveryalliance.org/programs/lincc-frameworks/)
and LSST-DA Catalyst Fellow, [Aritra Ghosh](https://ghosharitra.com/).

This project is supported by Schmidt Sciences and the John Templeton Foundation
