Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
Let it be aligned with newest paper script.
  • Loading branch information
DoraDong-2023 committed Sep 25, 2024
1 parent 07d1787 commit 38669ee
Show file tree
Hide file tree
Showing 17 changed files with 147 additions and 114 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
<h1 style="margin: 0; white-space: nowrap;">BioMANIA</h1>
</div>

[![Paper](https://img.shields.io/badge/Paper-burgundy?style=flat&logo=arxiv)](https://www.biorxiv.org/content/10.1101/2023.10.29.564479v1)
[![Paper](https://img.shields.io/badge/Paper-burgundy?style=flat&logo=arxiv)](https://www.biorxiv.org/content/10.1101/2023.10.29.564479)
[![GitHub stars](https://img.shields.io/github/stars/batmen-lab/BioMANIA?style=social)](https://github.com/batmen-lab/BioMANIA)
[![Documentation Status](https://img.shields.io/readthedocs/biomania/latest?style=flat&logo=readthedocs&label=Doc)](https://biomania.readthedocs.io/en/latest/?badge=latest)
[![License](https://img.shields.io/badge/license-Apache%203.0-blue?style=flat&logo=open-source-initiative)](https://github.com/batmen-lab/BioMANIA/blob/main/LICENSE)
[![Docker Version](https://img.shields.io/badge/Docker-v1.1.9-blue?style=flat&logo=docker)](https://hub.docker.com/repositories/chatbotuibiomania)
[![Railway](https://img.shields.io/badge/Railway-purple?style=flat&logo=railway)](https://railway.app/template/qaQEvv)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/14K4562oeesEz5qMoXmjv9gW_4VeLh6_U?usp=sharing)
<!--[![Railway](https://img.shields.io/badge/Railway-purple?style=flat&logo=railway)](https://railway.app/template/qaQEvv)-->
<!--[![Python unit tests](https://github.com/batmen-lab/BioMANIA/actions/workflows/python-test-unit.yml/badge.svg)](https://github.com/batmen-lab/BioMANIA/actions/workflows/python-test-unit.yml)-->


Expand All @@ -21,8 +21,9 @@ Welcome to the BioMANIA! This guide provides detailed instructions on how to set
Project Overview:

<!--![](./images/overview_v2.jpg)-->
![](./images/Motivation.jpg)
![](./images/Methods.jpg)
<!--![](./images/Motivation.jpg)-->
<!--![](./images/Methods.jpg)-->
![](./images/overview.jpg)


🌟 We warmly invite you to share your trained models and datasets in our [issues section](https://github.com/batmen-lab/BioMANIA/issues/2), making it easier for others to utilize and extend your work, thus amplifying its impact. Feel free to explore and provide feedback on tools shared by other contributors as well! 🚀🔍
Expand All @@ -39,9 +40,9 @@ We also offer a command-line interface (CLI) demo through the terminal.

<img src="examples/cli.gif" style="width:800px;height:500px;animation: play 0.05s steps(100) infinite;">

We also offer a GPTs demo (under developing).
<!--We also offer a GPTs demo (under developing).
<img src="examples/GPTs.gif" style="width:800px;height:450px;animation: play 1s steps(10) infinite;">
<img src="examples/GPTs.gif" style="width:800px;height:450px;animation: play 1s steps(10) infinite;">-->

# Web access online demo

Expand Down Expand Up @@ -109,11 +110,11 @@ ngrok http 3000

then get the url like `https://[ngrok_id].ngrok-free.app` and copy it to chrome to start!

## Run with Railway
<!--## Run with Railway
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/qaQEvv)
To use railway, you'll need to fill in the `OpenAI_API_KEY` in the Variables page of the biomania-backend service. Then, manually enable `Public Domain` in the Settings/Networking session for both front-end and back-end service. Copy the url from back-end as `https://[copied url]` and paste it in `BACKEND_URL` in front-end Variables page. For front-end url, paste it to the browser to access the frontend.
To use railway, you'll need to fill in the `OpenAI_API_KEY` in the Variables page of the biomania-backend service. Then, manually enable `Public Domain` in the Settings/Networking session for both front-end and back-end service. Copy the url from back-end as `https://[copied url]` and paste it in `BACKEND_URL` in front-end Variables page. For front-end url, paste it to the browser to access the frontend.-->

## Run with script

Expand Down Expand Up @@ -231,8 +232,8 @@ model.run_pipeline(user_input, library, top_k=1, files=[], conversation_started=

Please refer to the separate README for tutorials that supporting converting different coding tools to our APP.
- [For PyPI Tools](./docs/PyPI2APP.md)
- [For Python Source Code from Git Repo](./docs/Git2APP.md)
- [For R Package](./docs/R2APP.md) (231123-Still under developing)
- [For Python Source Code from Git Repo](./docs/Git2APP.md) (240925-Under developing)
- [For R Package](./docs/R2APP.md) (231123-Under developing)

## Share your APP!

Expand Down Expand Up @@ -269,10 +270,9 @@ Thank you for choosing BioMANIA. We hope this guide assists you in navigating th


## **Version History**
- v1.1.11 (2024-06)
- Include task planning, execution correction into the logic.
- Polish prompt.
- Wrap backend service to be compatible for newer UI
- v1.1.12 (2024-09-25)
- Update code scripts which are aligned with paper.
- Will renew the data, docker, scripts for generating report, documents for Git2APP, R2APP soon.

view [version_history](./docs/version_history.md) for more details!

Expand Down
9 changes: 6 additions & 3 deletions docs/Report_Generation.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Firstly, press `export chat` button on UI to get the chat json data. Convert the
# cd src
python report/Chat2Py.py report/demo_Preprocessing_and_clustering_3k_PBMCs.json
```
![](./images/pyfile.jpg)
![](https://github.com/batmen-lab/BioMANIA/tree/main/images/pyfile.jpg)


### For chat report
Expand All @@ -22,7 +22,7 @@ Convert the chat JSON into an [ipynb report](https://github.com/batmen-lab/BioMA
# cd src
python report/Chat2jupyter.py report/demo_Preprocessing_and_clustering_3k_PBMCs.json
```
![](./images/jupyter.jpg)
![](https://github.com/batmen-lab/BioMANIA/tree/main/images/jupyter.jpg)


### For performance report
Expand All @@ -36,7 +36,7 @@ python report/PNG2report.py scanpy

Please note that the generation of this report must be based on the premise that the retriever models have already been trained, and the gpt baseline has already been tested. You need to first obtain the results of each model before running this script. Here is a reference for a [demo report](https://github.com/batmen-lab/BioMANIA/tree/main/src/report/performance_report.pdf).

![](./images/performance_report.jpg)
![](https://github.com/batmen-lab/BioMANIA/tree/main/images/performance_report.jpg)


### For common issue report
Expand All @@ -51,6 +51,9 @@ python report/Py2report.py scanpy
The output files are located in the ./report folder.


![](https://github.com/batmen-lab/BioMANIA/tree/main/images/error_category.jpg)


TODO:

We will provide the below files and the data of more tools later
Expand Down
5 changes: 5 additions & 0 deletions docs/version_history.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@

## Version History

- v1.1.11 (2024-06)
- Include task planning, execution correction into the logic.
- Polish prompt.
- Wrap backend service to be compatible for newer UI
- v1.1.9 (2023-12-24)
- Add Drive URL installation feature for convenient uploading of large files by users.
- Real-time informative displays for API execution, and enable image zoom and download features.
Expand Down
Binary file added examples/result_demo_ehrapy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/result_demo_ehrapy_all.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/result_demo_scanpy_indiv.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/result_demo_scanpy_plan.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/result_demo_snapatac2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added examples/result_demo_squidpy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/Methods.jpg
Binary file not shown.
Binary file removed images/Motivation.jpg
Binary file not shown.
Binary file modified images/demo_full.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/error_category.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/overview.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/overview_v2.jpg
Binary file not shown.
158 changes: 87 additions & 71 deletions src/configs/Base_cheatsheet.py
Original file line number Diff line number Diff line change
@@ -1,74 +1,90 @@
CHEATSHEET = {
"numpy": [
"numpy.array"
],
"pandas": [
"pandas.read_csv",
"pandas.read_excel",
"pandas.DataFrame.to_csv",
"pandas.DataFrame",
"pandas.concat",
"pandas.DataFrame.groupby"
],
"matplotlib": [
"matplotlib.pyplot.plot",
"matplotlib.pyplot.subplots",
"matplotlib.pyplot.imshow",
"matplotlib.pyplot.hist",
"matplotlib.pyplot.scatter",
"matplotlib.pyplot.bar",
"matplotlib.pyplot.pie",
"matplotlib.pyplot.boxplot",
"matplotlib.pyplot.violinplot"
],
"sklearn": [
"sklearn.preprocessing.StandardScaler",
"sklearn.preprocessing.StandardScaler.fit",
"sklearn.preprocessing.OneHotEncoder",
"sklearn.preprocessing.OneHotEncoder.fit",
"sklearn.preprocessing.normalize",
"sklearn.model_selection.train_test_split",
"sklearn.metrics.accuracy_score",
"sklearn.metrics.precision_score",
"sklearn.metrics.recall_score",
"sklearn.metrics.mean_squared_error",
"sklearn.decomposition.PCA",
"sklearn.decomposition.PCA.fit",
"sklearn.manifold.TSNE",
"sklearn.manifold.TSNE.fit",
"sklearn.decomposition.NMF",
"sklearn.decomposition.NMF.fit"
],
"scipy": [
"scipy.sparse.csr_matrix"
],
"torch": [
"torch.tensor"
],
"json":["json.dump",
"json.load",
"json.loads"
],
"statsmodels": [
"statsmodels.formula.api.ols"
],
"pynndescent": [
"pynndescent.NNDescent.query"
],
"anndata": [
"anndata.read_csv",
"anndata.AnnData.write_csvs"
],
"pooch":[
"pooch.retrieve"
],
"math":[
"math.ceil"
],
"urllib":[
"urllib.request.urlretrieve"
],
"tabulate":[
"tabulate.tabulate"
#"numpy": [
# "numpy.array"
#],
#"pandas": [
# "pandas.read_csv",
# "pandas.read_excel",
# "pandas.DataFrame.to_csv",
# "pandas.DataFrame",
# "pandas.concat",
# "pandas.DataFrame.groupby"
#],
#"matplotlib": [
# "matplotlib.pyplot.plot",
# "matplotlib.pyplot.subplots",
# "matplotlib.pyplot.imshow",
# "matplotlib.pyplot.hist",
# "matplotlib.pyplot.scatter",
# "matplotlib.pyplot.bar",
# "matplotlib.pyplot.pie",
# "matplotlib.pyplot.boxplot",
# "matplotlib.pyplot.violinplot"
#],
#"sklearn": [
# "sklearn.preprocessing.StandardScaler",
# "sklearn.preprocessing.StandardScaler.fit",
# "sklearn.preprocessing.OneHotEncoder",
# "sklearn.preprocessing.OneHotEncoder.fit",
# "sklearn.preprocessing.normalize",
# "sklearn.model_selection.train_test_split",
# "sklearn.metrics.accuracy_score",
# "sklearn.metrics.precision_score",
# "sklearn.metrics.recall_score",
# "sklearn.metrics.mean_squared_error",
# "sklearn.decomposition.PCA",
# "sklearn.decomposition.PCA.fit",
# "sklearn.manifold.TSNE",
# "sklearn.manifold.TSNE.fit",
# "sklearn.decomposition.NMF",
# "sklearn.decomposition.NMF.fit"
#],
#"scipy": [
# "scipy.sparse.csr_matrix"
#],
#"torch": [
# "torch.tensor"
#],
#"json":["json.dump",
# "json.load",
# "json.loads"
#],
#"statsmodels": [
# "statsmodels.formula.api.ols"
#],
#"pynndescent": [
# "pynndescent.NNDescent.query"
#],
#"anndata": [
# "anndata.read_csv",
# "anndata.AnnData.write_csvs"
#],
#"pooch":[
# "pooch.retrieve"
#],
#"math":[
# "math.ceil"
#],
#"urllib":[
# "urllib.request.urlretrieve"
#],
#"tabulate":[
# "tabulate.tabulate"
#],
"cellrank":[
"cellrank.kernels.PseudotimeKernel",
"cellrank.kernels.PseudotimeKernel.compute_transition_matrix",
"cellrank.kernels.PseudotimeKernel.plot_random_walks",
"cellrank.kernels.PseudotimeKernel.plot_projection",
"cellrank.estimators.GPCCA",
"cellrank.estimators.GPCCA.fit",
"cellrank.estimators.GPCCA.macrostates_memberships",
"cellrank.estimators.GPCCA.plot_macrostates",
"cellrank.estimators.GPCCA.predict_terminal_states",
"cellrank.estimators.GPCCA.compute_fate_probabilities",
"cellrank.estimators.GPCCA.plot_fate_probabilities",
"cellrank.pl.circular_projection",
"cellrank.models.GAM",
"cellrank.pl.gene_trends"
]
}
61 changes: 35 additions & 26 deletions src/configs/Lib_cheatsheet.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
CHEATSHEET = {
"scanpy":{
"LIB":"scanpy",
"LIB_ALIAS":"scanpy",
"API_HTML_PATH": "scanpy.readthedocs.io/en/latest/api/index.html",
"GITHUB_LINK": "https://github.com/scverse/scanpy",
"READTHEDOC_LINK": "https://scanpy.readthedocs.io/",
"TUTORIAL_HTML_PATH":"scanpy.readthedocs.io/en/latest/tutorials",
"TUTORIAL_GITHUB":["https://github.com/scverse/scanpy_usage", "https://github.com/scverse/scanpy-tutorials"]
},
"squidpy":{
"LIB":"squidpy",
"LIB_ALIAS":"squidpy",
Expand All @@ -8,14 +17,23 @@
"TUTORIAL_HTML_PATH":"squidpy.readthedocs.io/en/latest/notebooks/tutorials",
"TUTORIAL_GITHUB":"https://github.com/scverse/squidpy_notebooks"
},
"scanpy":{
"LIB":"scanpy",
"LIB_ALIAS":"scanpy",
"API_HTML_PATH": "scanpy.readthedocs.io/en/latest/api/index.html",
"GITHUB_LINK": "https://github.com/scverse/scanpy",
"READTHEDOC_LINK": "https://scanpy.readthedocs.io/",
"TUTORIAL_HTML_PATH":"scanpy.readthedocs.io/en/latest/tutorials",
"TUTORIAL_GITHUB":["https://github.com/scverse/scanpy_usage", "https://github.com/scverse/scanpy-tutorials"]
"ehrapy": {
"LIB": "ehrapy",
"LIB_ALIAS": "ehrapy",
"API_HTML_PATH": "ehrapy.readthedocs.io/en/latest/usage/usage.html",
"GITHUB_LINK": "https://github.com/theislab/ehrapy",
"READTHEDOC_LINK": "https://ehrapy.readthedocs.io/",
"TUTORIAL_HTML_PATH": "https://ehrapy.readthedocs.io/en/latest/tutorials/index.html",
"TUTORIAL_GITHUB": "https://github.com/theislab/ehrapy-tutorials"
},
"snapatac2": {
"LIB": "snapatac2",
"LIB_ALIAS": "snapatac2",
"API_HTML_PATH": "kzhang.org/SnapATAC2/api/index.html", #kzhang.org/SnapATAC2/version/2.6/api/index.html
"GITHUB_LINK": "https://github.com/kaizhang/SnapATAC2",
"READTHEDOC_LINK": "https://kzhang.org/SnapATAC2",
"TUTORIAL_HTML_PATH": "https://kzhang.org/SnapATAC2/tutorials/index.html",
"TUTORIAL_GITHUB": "https://github.com/kaizhang/SnapATAC2"
},
"scanpy_subset":{
"LIB":"scanpy_subset",
Expand Down Expand Up @@ -188,24 +206,6 @@
"TUTORIAL_HTML_PATH": None,
"TUTORIAL_GITHUB": None
},
"ehrapy": {
"LIB": "ehrapy",
"LIB_ALIAS": "ehrapy",
"API_HTML_PATH": "ehrapy.readthedocs.io/en/latest/usage/usage.html",
"GITHUB_LINK": "https://github.com/theislab/ehrapy",
"READTHEDOC_LINK": "https://ehrapy.readthedocs.io/",
"TUTORIAL_HTML_PATH": "https://ehrapy.readthedocs.io/en/latest/tutorials/index.html",
"TUTORIAL_GITHUB": "https://github.com/theislab/ehrapy-tutorials"
},
"snapatac2": {
"LIB": "snapatac2",
"LIB_ALIAS": "snapatac2",
"API_HTML_PATH": "kzhang.org/SnapATAC2/api/index.html",
"GITHUB_LINK": "https://github.com/kaizhang/SnapATAC2",
"READTHEDOC_LINK": "https://kzhang.org/SnapATAC2",
"TUTORIAL_HTML_PATH": "https://kzhang.org/SnapATAC2/tutorials/index.html",
"TUTORIAL_GITHUB": "https://github.com/kaizhang/SnapATAC2"
},
"cellrank": {
"LIB": "cellrank",
"LIB_ALIAS": "cellrank",
Expand Down Expand Up @@ -358,5 +358,14 @@
"READTHEDOC_LINK": "https://scanpy-tutorials.readthedocs.io/en/latest/spatial/integration-scanorama.html",
"TUTORIAL_HTML_PATH": "https://scanpy-tutorials.readthedocs.io/en/latest/spatial/integration-scanorama.html",
"TUTORIAL_GITHUB": "https://github.com/brianhie/scanorama"
},
"base":{
"LIB": "base",
"LIB_ALIAS": "base",
"API_HTML_PATH": None,
"GITHUB_LINK": None,
"READTHEDOC_LINK": None,
"TUTORIAL_HTML_PATH": None,
"TUTORIAL_GITHUB": None
}
}

0 comments on commit 38669ee

Please sign in to comment.