Metadata-Version: 2.4
Name: thermoverse
Version: 0.1.1
Summary: ML models for materials property thermodynamic prediction
Author-email: Rashid Ali <mrashidali4854@gmail.com>
License: MIT License
        
        Copyright (c) 2026 Your Name
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/your-username/research-find
Project-URL: Repository, https://github.com/your-username/research-find
Project-URL: Documentation, https://github.com/your-username/research-find#readme
Project-URL: Bug Tracker, https://github.com/your-username/research-find/issues
Keywords: materials,machine-learning,thermodynamics,prediction,xgboost,lightgbm,shap
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Intended Audience :: Science/Research
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: scikit-learn
Requires-Dist: xgboost
Requires-Dist: lightgbm
Requires-Dist: shap
Requires-Dist: matplotlib
Requires-Dist: seaborn
Requires-Dist: joblib
Requires-Dist: scipy
Requires-Dist: tqdm
Requires-Dist: streamlit
Dynamic: license-file

# Thermoverse

[![PyPI](https://img.shields.io/pypi/v/thermoverse.svg)](https://pypi.org/project/thermoverse/)
[![Python Version](https://img.shields.io/pypi/pyversions/thermoverse.svg)](https://pypi.org/project/thermoverse/)
[![License](https://img.shields.io/pypi/l/thermoverse.svg)](LICENSE)
[![Streamlit demo](https://img.shields.io/badge/demo-streamlit-blue.svg)](#deploy-this-demo-to-the-web)

Thermoverse is a materials property prediction package for thermodynamics and mechanical behavior, with a polished local demo dashboard and a deploy-ready Streamlit interface.

## Overview
- Sample-style Streamlit dashboard for exploring prediction files and one-row model prediction.
- Built for materials datasets and thermodynamic model outputs.
- Includes local launch helpers and deployment guidance for live demos.

## Quick start
1. Create a Python virtual environment and activate it.
2. Install dependencies from `requirements.txt`:

```powershell
cd "c:\Users\HassanTraders\Desktop\research find.py"
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
```

3. Launch the demo locally:

```powershell
.\app_launch.ps1
```

or

```cmd
launch_streamlit.bat
```

4. Use the sidebar to switch between Home, Explore predictions, and Predict a sample.

## Sample input
- `sample_input.csv` contains a one-row example you can upload into the Predict a sample view.

## Deploy this demo to the web
This project is ready to deploy as a live demo on Streamlit Cloud or Hugging Face Spaces.

### Streamlit Cloud
1. Push this repository to GitHub.
2. Create a new app on [Streamlit Cloud](https://share.streamlit.io/).
3. Select your GitHub repo, branch, and set the app file to `streamlit_app.py`.
4. Use `requirements.txt` to install dependencies.

### Hugging Face Spaces
1. Create a new Space using the Streamlit template.
2. Upload this repository or connect the GitHub repo.
3. Set the app entrypoint to `streamlit_app.py`.

Once deployed, you can link the live demo from your PyPI project page under `project.urls`.

## PyPI upload notes
- Use `upload_pypi.ps1` with a raw token value.
- `upload_pypi.ps1` now accepts both raw and full `pypi-...` token forms.

```powershell
cd "c:\Users\HassanTraders\Desktop\research find.py"
.\upload_pypi.ps1 <YOUR_TOKEN>
```

If you want to run Twine directly:

```powershell
cd "c:\Users\HassanTraders\Desktop\research find.py"
.\.venv\Scripts\twine.exe upload dist\* -u __token__ -p pypi-<YOUR_TOKEN>
```

## Files of interest
- `app_streamlit.py` — interactive dashboard for exploring outputs and making one-row predictions.
- `streamlit_app.py` — Streamlit Cloud / Spaces entrypoint for deployment.
- `deploy_pypi.ps1` — PyPI upload helper that accepts raw or prefixed tokens.
- `models/` — saved model pickles used by the dashboard.
- `outputs/` — prediction CSV files the dashboard can preview.

## How to publish to GitHub
1. Create a new repo on GitHub (choose a name like `research-find`).
2. From this folder run:

```powershell
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/your-username/repo-name.git
git push -u origin main
```

Replace `your-username/repo-name.git` with your repository URL.

If you want me to run these commands and push, give me the repository URL or let me know and I'll guide you through creating a PAT for authentication.

## Model description

- Purpose: Build accurate, generalizable machine-learning predictors for thermodynamic and mechanical materials properties to accelerate screening and discovery.
- Data: Trained on curated datasets (`Materials_Dataset_181600.csv`, `Materials_Dataset_50000.csv`, `Materials_Dataset_FIXED.csv`).
- Model types: Ensemble models (XGBoost / CatBoost / RandomForest-style) trained per-property with cross-validation and ensembling.
- Inputs: Composition-based features and engineered descriptors produced by preprocessing scripts.
- Outputs: Per-property CSV predictions under `outputs/` and evaluation summaries (R², RMSE) stored in `outputs/` and `models/`.
- Usage: create a Python environment, install dependencies, then run training and evaluation scripts such as `python train_181600_models.py`.
- Notes: large model files and outputs are excluded via `.gitignore`. If datasets or model artifacts exceed GitHub file size limits (>100MB) enable Git LFS for those paths.

