scez 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scez might be problematic. Click here for more details.

pyproject.toml ADDED
@@ -0,0 +1,45 @@
1
+ [tool.poetry]
2
+ name = "scez"
3
+ version = "0.1.2"
4
+ authors = [
5
+ "Abe Arab <abarbiology@gmail.com>"
6
+ ]
7
+ license = "MIT"
8
+ readme = "README.md"
9
+ description = "Single Cell Analysis, Easy Mode!"
10
+ classifiers = [
11
+ "License :: OSI Approved :: MIT License"
12
+ ]
13
+ packages = [
14
+ { include = "scez" },
15
+ { include = "pyproject.toml" },
16
+ ]
17
+
18
+ [tool.poetry.urls]
19
+ Source = "https://github.com/abearab/scez"
20
+
21
+ [tool.poetry.dependencies]
22
+ python = "^3.9 <4.0"
23
+ numpy = "^1.26.0"
24
+ pandas = "^2.1.4 <3.0.0"
25
+ bottleneck = "^1.3.6"
26
+ tqdm = "*"
27
+ tomli = "*"
28
+ matplotlib = "^3.7"
29
+ seaborn = "^0.12.2"
30
+ adjustText = "^0.7.3"
31
+ scanpy = "^1.9.6"
32
+ anndata = "^0.8.0"
33
+ adpbulk = "^0.1.4"
34
+ pydeseq2 = "^0.4.0"
35
+ pytdc = "^1.0.0"
36
+ blitzgsea = "^1.3.0"
37
+
38
+
39
+ [tool.poetry.group.test.dependencies]
40
+ pytest = "*"
41
+ tomli = "*"
42
+
43
+ [build-system]
44
+ requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
45
+ build-backend = "poetry_dynamic_versioning.backend"
scez/__init__.py CHANGED
@@ -8,8 +8,9 @@ import scanpy as sc
8
8
  import matplotlib.pyplot as plt
9
9
 
10
10
  import tomli
11
+ from pathlib import Path
11
12
 
12
- toml_dict = tomli.load(open('pyproject.toml','rb'))
13
+ toml_dict = tomli.load(open(Path(__file__).parent.parent / 'pyproject.toml','rb'))
13
14
  __version__ = toml_dict['tool']['poetry']['version']
14
15
 
15
16
 
scez/diffexp.py CHANGED
@@ -136,7 +136,8 @@ def plot_volcano(df, title=None, labels=None, n_genes=False, side='both',
136
136
  plt.show()
137
137
 
138
138
 
139
- def plot_top_DEG_violinplot(adata, df, title=None, labels=None, n_genes=False, side='both', font_scale=1, figsize=(10, 4), **kwargs):
139
+ def plot_top_DEG_violinplot(adata, df, layer=None, title=None, labels=None, n_genes=False, side='both', font_scale=1, figsize=(10, 4), **kwargs):
140
+
140
141
  label_font_size = 9 * font_scale
141
142
  title_font_size = 10 * font_scale
142
143
 
@@ -167,11 +168,11 @@ def plot_top_DEG_violinplot(adata, df, title=None, labels=None, n_genes=False, s
167
168
  selected_genes = df.nlargest(n_genes, '-log10(pvalue)')
168
169
 
169
170
  # Filter the single-cell dataset for the selected genes
170
- subset_adata = adata[:, selected_genes.index]
171
+ subset_adata = adata[:, selected_genes.index].copy()
171
172
  subset_adata.var.index = subset_adata.var.index.str.split('_').str[0]
172
173
 
173
174
  # Convert the subset of adata to a DataFrame
174
- subset_df = subset_adata.to_df()
175
+ subset_df = subset_adata.to_df(layer=layer)
175
176
 
176
177
  # Merge the DataFrame with .obs to include the 'sample' information
177
178
  merged_df = pd.merge(subset_df, adata.obs[['sample']], left_index=True, right_index=True)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: scez
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Single Cell Analysis, Easy Mode!
5
5
  License: MIT
6
6
  Author: Abe Arab
@@ -12,22 +12,36 @@ Classifier: Programming Language :: Python :: 3.9
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
15
16
  Requires-Dist: adjustText (>=0.7.3,<0.8.0)
16
17
  Requires-Dist: adpbulk (>=0.1.4,<0.2.0)
17
- Requires-Dist: anndata (>=0.7.4,<0.8.0)
18
+ Requires-Dist: anndata (>=0.8.0,<0.9.0)
18
19
  Requires-Dist: blitzgsea (>=1.3.0,<2.0.0)
20
+ Requires-Dist: bottleneck (>=1.3.6,<2.0.0)
19
21
  Requires-Dist: matplotlib (>=3.7,<4.0)
20
- Requires-Dist: numpy (>=1.17.0,<2.0.0)
21
- Requires-Dist: pandas (>=0.21,<0.22)
22
+ Requires-Dist: numpy (>=1.26.0,<2.0.0)
23
+ Requires-Dist: pandas (>=2.1.4,<3.0.0)
22
24
  Requires-Dist: pydeseq2 (>=0.4.0,<0.5.0)
23
25
  Requires-Dist: pytdc (>=1.0.0,<2.0.0)
26
+ Requires-Dist: scanpy (>=1.9.6,<2.0.0)
24
27
  Requires-Dist: seaborn (>=0.12.2,<0.13.0)
28
+ Requires-Dist: tomli
25
29
  Requires-Dist: tqdm
26
30
  Project-URL: Source, https://github.com/abearab/scez
27
31
  Description-Content-Type: text/markdown
28
32
 
29
33
  ## scez – single cell, easy mode
30
34
  [![package](https://github.com/abearab/scez/actions/workflows/main.yml/badge.svg)](https://github.com/abearab/scez/actions/workflows/main.yml)
35
+ [![PyPI version](https://badge.fury.io/py/scez.svg)](https://badge.fury.io/py/scez)
36
+ [![Downloads](https://static.pepy.tech/badge/scez)](https://pepy.tech/project/scez)
37
+ [![Downloads](https://static.pepy.tech/badge/scez/month)](https://pepy.tech/project/scez)
38
+
39
+
40
+ ### Description
41
+ There are many tools available for single-cell RNA-seq analysis, but they often require a lot of understanding of the underlying algorithms, reading of documentation, and setting up analysis environments. This takes time and effort, and can be a barrier to entry for many projects. [Single-Cell Best Practices](https://github.com/theislab/single-cell-best-practices) is a great resource for learning about the best practices for single-cell analysis. `scez` aims to provide functionalities for single-cell analysis through definitions of analysis "tasks" and implementation of these "best practices" in a user-friendly way.
42
+
43
+ This is more a personal effort to streamline my own analysis workflows, but I hope it can be useful to others as well.
44
+
31
45
 
32
46
  ### Installation
33
47
  Make sure you have mamba installed in your base environment. If not, install it with:
@@ -36,7 +50,7 @@ conda install mamba -n base -c conda-forge
36
50
  ```
37
51
  Then, create a new conda environment with the provided `environment.yml` file and activate it. This will install all necessary dependencies for scez.
38
52
  ```bash
39
- conda env create -f environment.yml
53
+ conda env create -f https://raw.githubusercontent.com/abearab/scez/main/environment.yml
40
54
 
41
55
  conda activate scez
42
56
  ```
@@ -46,6 +60,7 @@ Finally, install scez with:
46
60
  pip install scez
47
61
  ```
48
62
 
63
+ ___
49
64
  Or, if you want to install the latest version from the repository:
50
65
  ```bash
51
66
  pip install git+https://github.com/abearab/scez.git
@@ -0,0 +1,12 @@
1
+ pyproject.toml,sha256=2d1qGZM5rM0Jttr_6ZTfqe0VX6qF200vJvtIQcAZN-E,900
2
+ scez/__init__.py,sha256=3zXd7gUTFNJK-_l89LYFI-8yqkjt99dYLmZozK6qk0c,1412
3
+ scez/diffexp.py,sha256=q76lqldFa4_fWNmx3I1xpnurZ6drbJAIZKXf3MHVw_A,6805
4
+ scez/preprocess.py,sha256=3iaxACkmKQjKZdaFBLRAXz1kwkNnhbdnd_gwF8rI4nw,2572
5
+ scez/representation.py,sha256=IW0pwa_yoKf-2a3lbtxRwLTdCjB2PkS9oN4WGCLwED0,1596
6
+ scez/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ scez/tests/test_scez.py,sha256=hoBSYB5k1WtF1hY_kyWXw1W7NolBornmTdAng6tDpjw,452
8
+ scez/utils.py,sha256=lPmt01JILiKoBUhhxZeyhl2CfAzailTp4dIefP4FqGQ,1955
9
+ scez-0.1.2.dist-info/LICENSE,sha256=59TS1D5RmGh66RJikXvFoq_ZW9pGirB4zUOUXLfptJM,1071
10
+ scez-0.1.2.dist-info/METADATA,sha256=tRmPIrFKlzcb09QVpyEoU0meDAYzrZ7_0RlUd4cfTtI,2981
11
+ scez-0.1.2.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
12
+ scez-0.1.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,11 +0,0 @@
1
- scez/__init__.py,sha256=kmN55oxZUHJfsInsnDWvAtxSNn5KnESir65NGr_ssyo,1356
2
- scez/diffexp.py,sha256=V8qjqpTZVaoAb-iCa3jYmPDmDBtg5AK9OqNzRow6ic0,6770
3
- scez/preprocess.py,sha256=3iaxACkmKQjKZdaFBLRAXz1kwkNnhbdnd_gwF8rI4nw,2572
4
- scez/representation.py,sha256=IW0pwa_yoKf-2a3lbtxRwLTdCjB2PkS9oN4WGCLwED0,1596
5
- scez/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- scez/tests/test_scez.py,sha256=hoBSYB5k1WtF1hY_kyWXw1W7NolBornmTdAng6tDpjw,452
7
- scez/utils.py,sha256=lPmt01JILiKoBUhhxZeyhl2CfAzailTp4dIefP4FqGQ,1955
8
- scez-0.1.0.dist-info/LICENSE,sha256=59TS1D5RmGh66RJikXvFoq_ZW9pGirB4zUOUXLfptJM,1071
9
- scez-0.1.0.dist-info/METADATA,sha256=zpvmYCHTzCYTRyK9FfczqE6uagMQJMjv6CVukChrODU,1748
10
- scez-0.1.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
11
- scez-0.1.0.dist-info/RECORD,,
File without changes