jkobject commited on
Commit
6bb36f2
·
verified ·
1 Parent(s): 905237e

Upload 4 files

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. CONTRIBUTING.md +113 -0
  3. figure1.png +3 -0
  4. logo.png +0 -0
  5. 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

  • SHA256: 45cb78d0aae2138fdbf7e6bad132d5d0a9163d6b09a5198607b7b786edb0f199
  • Pointer size: 132 Bytes
  • Size of remote file: 2.39 MB
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'