Upload 4 files
Browse files- .gitattributes +1 -0
- CONTRIBUTING.md +113 -0
- figure1.png +3 -0
- logo.png +0 -0
- pyproject.toml +97 -0
.gitattributes
CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
figure1.png filter=lfs diff=lfs merge=lfs -text
|
CONTRIBUTING.md
ADDED
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# How to develop on this project
|
2 |
+
|
3 |
+
scprint welcomes contributions from the community.
|
4 |
+
|
5 |
+
**You need PYTHON3!**
|
6 |
+
|
7 |
+
This instructions are for linux base systems. (Linux, MacOS, BSD, etc.)
|
8 |
+
## Setting up your own fork of this repo.
|
9 |
+
|
10 |
+
- On github interface click on `Fork` button.
|
11 |
+
- Clone your fork of this repo. `git clone [email protected]:YOUR_GIT_USERNAME/scPRINT.git`
|
12 |
+
- Enter the directory `cd scPRINT`
|
13 |
+
- Add upstream repo `git remote add upstream https://github.com/jkobject/scPRINT`
|
14 |
+
|
15 |
+
## Setting up your own virtual environment
|
16 |
+
|
17 |
+
Run `make virtualenv` to create a virtual environment.
|
18 |
+
then activate it with `source .venv/bin/activate`.
|
19 |
+
|
20 |
+
## Install the project in develop mode
|
21 |
+
|
22 |
+
Run `make install` to install the project in develop mode.
|
23 |
+
|
24 |
+
## Run the tests to ensure everything is working
|
25 |
+
|
26 |
+
Run `make test` to run the tests.
|
27 |
+
|
28 |
+
## Create a new branch to work on your contribution
|
29 |
+
|
30 |
+
Run `git checkout -b my_contribution`
|
31 |
+
|
32 |
+
## Make your changes
|
33 |
+
|
34 |
+
Edit the files using your preferred editor. (we recommend VIM or VSCode)
|
35 |
+
|
36 |
+
## Format the code
|
37 |
+
|
38 |
+
Run `make fmt` to format the code.
|
39 |
+
|
40 |
+
## Run the linter
|
41 |
+
|
42 |
+
Run `make lint` to run the linter.
|
43 |
+
|
44 |
+
## Test your changes
|
45 |
+
|
46 |
+
Run `make test` to run the tests.
|
47 |
+
|
48 |
+
Ensure code coverage report shows `100%` coverage, add tests to your PR.
|
49 |
+
|
50 |
+
## Build the docs locally
|
51 |
+
|
52 |
+
Run `make docs` to build the docs.
|
53 |
+
|
54 |
+
Ensure your new changes are documented.
|
55 |
+
|
56 |
+
## Commit your changes
|
57 |
+
|
58 |
+
This project uses [conventional git commit messages](https://www.conventionalcommits.org/en/v1.0.0/).
|
59 |
+
|
60 |
+
Example: `fix(package): update setup.py arguments 🎉` (emojis are fine too)
|
61 |
+
|
62 |
+
## Push your changes to your fork
|
63 |
+
|
64 |
+
Run `git push origin my_contribution`
|
65 |
+
|
66 |
+
## Submit a pull request
|
67 |
+
|
68 |
+
On github interface, click on `Pull Request` button.
|
69 |
+
|
70 |
+
Wait CI to run and one of the developers will review your PR.
|
71 |
+
## Makefile utilities
|
72 |
+
|
73 |
+
This project comes with a `Makefile` that contains a number of useful utility.
|
74 |
+
|
75 |
+
```bash
|
76 |
+
❯ make
|
77 |
+
Usage: make <target>
|
78 |
+
|
79 |
+
Targets:
|
80 |
+
help: ## Show the help.
|
81 |
+
install: ## Install the project in dev mode.
|
82 |
+
fmt: ## Format code using black & isort.
|
83 |
+
lint: ## Run pep8, black, mypy linters.
|
84 |
+
test: lint ## Run tests and generate coverage report.
|
85 |
+
watch: ## Run tests on every change.
|
86 |
+
clean: ## Clean unused files.
|
87 |
+
virtualenv: ## Create a virtual environment.
|
88 |
+
release: ## Create a new tag for release.
|
89 |
+
docs: ## Build the documentation.
|
90 |
+
switch-to-poetry: ## Switch to poetry package manager.
|
91 |
+
init: ## Initialize the project based on an application template.
|
92 |
+
```
|
93 |
+
|
94 |
+
## Making a new release
|
95 |
+
|
96 |
+
This project uses [semantic versioning](https://semver.org/) and tags releases with `X.Y.Z`
|
97 |
+
Every time a new tag is created and pushed to the remote repo, github actions will
|
98 |
+
automatically create a new release on github and trigger a release on PyPI.
|
99 |
+
|
100 |
+
For this to work you need to setup a secret called `PIPY_API_TOKEN` on the project settings>secrets,
|
101 |
+
this token can be generated on [pypi.org](https://pypi.org/account/).
|
102 |
+
|
103 |
+
To trigger a new release all you need to do is.
|
104 |
+
|
105 |
+
1. If you have changes to add to the repo
|
106 |
+
* Make your changes following the steps described above.
|
107 |
+
* Commit your changes following the [conventional git commit messages](https://www.conventionalcommits.org/en/v1.0.0/).
|
108 |
+
2. Run the tests to ensure everything is working.
|
109 |
+
4. Run `make release` to create a new tag and push it to the remote repo.
|
110 |
+
|
111 |
+
the `make release` will ask you the version number to create the tag, ex: type `0.1.1` when you are asked.
|
112 |
+
|
113 |
+
> **CAUTION**: The make release will change local changelog files and commit all the unstaged changes you have.
|
figure1.png
ADDED
Git LFS Details
|
logo.png
ADDED
pyproject.toml
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[tool.poetry]
|
2 |
+
name = "scprint"
|
3 |
+
version = "0.1.0"
|
4 |
+
license = "MIT"
|
5 |
+
description = ""
|
6 |
+
authors = ["jeremie kalfon"]
|
7 |
+
readme = ["README.md", "LICENSE"]
|
8 |
+
repository = "https://github.com/jkobject/scPrint"
|
9 |
+
keywords = [
|
10 |
+
"scRNAseq",
|
11 |
+
"transformer",
|
12 |
+
"GRN",
|
13 |
+
"gene regulatory network",
|
14 |
+
"scPrint",
|
15 |
+
]
|
16 |
+
|
17 |
+
[tool.poetry.dependencies]
|
18 |
+
lamindb = "*"
|
19 |
+
python = "3.10"
|
20 |
+
cellxgene-census = "*"
|
21 |
+
torch = ">=2.0.0"
|
22 |
+
anndata = "*"
|
23 |
+
matplotlib = "*"
|
24 |
+
seaborn = "*"
|
25 |
+
gseapy = "*"
|
26 |
+
ipykernel = "*"
|
27 |
+
owlready2 = "*"
|
28 |
+
torchdata = "*"
|
29 |
+
biomart = "*"
|
30 |
+
scib = "*"
|
31 |
+
scikit-learn = "*"
|
32 |
+
scipy = "*"
|
33 |
+
pandas = ">=2.0.0"
|
34 |
+
numpy = "*"
|
35 |
+
leidenalg = "*"
|
36 |
+
decoupler = "*"
|
37 |
+
Bio = "*"
|
38 |
+
attridict = "*"
|
39 |
+
gget = "*"
|
40 |
+
torchvision = "*"
|
41 |
+
fair-esm = { git = "https://github.com/facebookresearch/esm.git", branch = "main" }
|
42 |
+
hydra-core = "*"
|
43 |
+
lightning = "*"
|
44 |
+
#torchtext = "*"
|
45 |
+
#transformers = "*"
|
46 |
+
pynndescent = ">=0.5.11"
|
47 |
+
scDataLoader = "*"
|
48 |
+
einops = "*"
|
49 |
+
rich = "*"
|
50 |
+
typeshed-client = "*"
|
51 |
+
tensorboardX = "*"
|
52 |
+
jsonargparse = "*"
|
53 |
+
docstring-parser = "*"
|
54 |
+
lnschema-bionty = "*"
|
55 |
+
bionty = "*"
|
56 |
+
wandb = "*"
|
57 |
+
wandb-core = "*"
|
58 |
+
pykeops = "*"
|
59 |
+
louvain = "*"
|
60 |
+
hdbscan = "*"
|
61 |
+
scib-metrics = "*"
|
62 |
+
scikit-misc = "*"
|
63 |
+
zarr = "*"
|
64 |
+
galore-torch = { git = "https://github.com/jiaweizzhao/GaLore", branch = "master" }
|
65 |
+
tensorly = "*3
|
66 |
+
|
67 |
+
[tool.poetry.group.flashattention.dependencies]
|
68 |
+
# C_INCLUDE_PATH=$CONDA_HOME/envs/scprint/include
|
69 |
+
torchtext = "0.15.1"
|
70 |
+
triton = "2.0.0.dev20221202" #no deps
|
71 |
+
torch = "2.0.0"
|
72 |
+
torchvision = "0.15.0"
|
73 |
+
torchaudio = "2.0.0"
|
74 |
+
pytorch-fast-transformers = "*"
|
75 |
+
|
76 |
+
[tool.poetry.group.dev.dependencies]
|
77 |
+
pytest = "^7.4.3"
|
78 |
+
coverage = "^7.3.2"
|
79 |
+
flake8 = "^6.1.0"
|
80 |
+
black = "^23.10.1"
|
81 |
+
isort = "^5.12.0"
|
82 |
+
pytest-cov = "^4.1.0"
|
83 |
+
mypy = "^1.6.1"
|
84 |
+
gitchangelog = "^3.0.4"
|
85 |
+
mkdocs = "^1.5.3"
|
86 |
+
mkdocs-git-revision-date-localized-plugin = "*"
|
87 |
+
mkdocstrings = "*"
|
88 |
+
mkdocs-git-authors-plugin = "*"
|
89 |
+
mkdocs-jupyter = "*"
|
90 |
+
mkdocstrings-python = "*"
|
91 |
+
|
92 |
+
[build-system]
|
93 |
+
requires = ["poetry-core"]
|
94 |
+
build-backend = "poetry.core.masonry.api"
|
95 |
+
|
96 |
+
[tool.poetry.scripts]
|
97 |
+
scprint = 'scprint.__main__:main'
|