rectanglepy 0.4.0__tar.gz → 0.4.3__tar.gz

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.
Files changed (54) hide show
  1. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.bumpversion.cfg +1 -1
  2. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/PKG-INFO +1 -1
  3. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/pyproject.toml +1 -1
  4. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/pp/create_signature.py +5 -2
  5. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/test_pp.py +1 -1
  6. rectanglepy-0.4.3/tests/test_rectangle.py +25 -0
  7. rectanglepy-0.4.0/tests/test_rectangle.py +0 -51
  8. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.cruft.json +0 -0
  9. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.editorconfig +0 -0
  10. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  11. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  12. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  13. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  14. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/workflows/build.yaml +0 -0
  15. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/workflows/release.yaml +0 -0
  16. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/workflows/release_testpypi.yaml +0 -0
  17. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.github/workflows/test.yaml +0 -0
  18. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.gitignore +0 -0
  19. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.pre-commit-config.yaml +0 -0
  20. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/.readthedocs.yaml +0 -0
  21. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/CHANGELOG.md +0 -0
  22. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/LICENSE +0 -0
  23. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/README.md +0 -0
  24. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/Makefile +0 -0
  25. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/_static/.gitkeep +0 -0
  26. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/_templates/.gitkeep +0 -0
  27. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/_templates/autosummary/class.rst +0 -0
  28. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/api.md +0 -0
  29. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/changelog.md +0 -0
  30. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/conf.py +0 -0
  31. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/contributing.md +0 -0
  32. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/extensions/typed_returns.py +0 -0
  33. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/index.md +0 -0
  34. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/make.bat +0 -0
  35. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/notebooks/example.ipynb +0 -0
  36. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/references.bib +0 -0
  37. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/docs/references.md +0 -0
  38. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/__init__.py +0 -0
  39. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/data/hao1_annotations_small.zip +0 -0
  40. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/data/hao1_counts_small.zip +0 -0
  41. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/data/small_fino_bulks.zip +0 -0
  42. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/pp/__init__.py +0 -0
  43. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/pp/rectangle_signature.py +0 -0
  44. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/rectangle.py +0 -0
  45. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/tl/__init__.py +0 -0
  46. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/src/rectanglepy/tl/deconvolution.py +0 -0
  47. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/TIL10_signature.txt +0 -0
  48. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/bulk_small.csv +0 -0
  49. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/cell_annotations_small.txt +0 -0
  50. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/quanTIseq_SimRNAseq_mixture_smaller.csv +0 -0
  51. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/quanTIseq_SimRNAseq_read_fractions_small.txt +0 -0
  52. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/sc_object_small.csv +0 -0
  53. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/data/signature_hao1.csv +0 -0
  54. {rectanglepy-0.4.0 → rectanglepy-0.4.3}/tests/test_tl.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.4.0
2
+ current_version = 0.4.3
3
3
  tag = True
4
4
  commit = True
5
5
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rectanglepy
3
- Version: 0.4.0
3
+ Version: 0.4.3
4
4
  Summary: Hierarchical deconvolution of bulk transcriptomics
5
5
  Project-URL: Documentation, https://rectanglepy.readthedocs.io/
6
6
  Project-URL: Source, https://github.com/ComputationalBiomedicineGroup/Rectangle
@@ -4,7 +4,7 @@ requires = ["hatchling"]
4
4
 
5
5
  [project]
6
6
  name = "rectanglepy"
7
- version = "0.4.0"
7
+ version = "0.4.3"
8
8
  description = "Hierarchical deconvolution of bulk transcriptomics"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -170,8 +170,8 @@ def _create_bootstrap_signature(countsig, sc_data, annotations) -> pd.DataFrame:
170
170
  sc_data = sc_data.toarray()
171
171
  celltypes = countsig.columns
172
172
  bootstrapped_signature = pd.DataFrame()
173
- number_of_bootstraps = 5
174
- samples_per_bootstrap = 250
173
+ number_of_bootstraps = 7
174
+ samples_per_bootstrap = 500
175
175
  for celltype in celltypes:
176
176
  sc_data_filtered = sc_data.T[annotations == celltype]
177
177
  for i in range(number_of_bootstraps):
@@ -179,6 +179,9 @@ def _create_bootstrap_signature(countsig, sc_data, annotations) -> pd.DataFrame:
179
179
  summed_rows = sc_data_filtered[selected_rows].sum(axis=0)
180
180
  bootstrapped_signature[f"{celltype}_{i}"] = list(summed_rows)
181
181
  bootstrapped_signature.index = countsig.index
182
+ # to int
183
+ samples_per_bootstrap = samples_per_bootstrap / 2.5
184
+ bootstrapped_signature = bootstrapped_signature.astype(int)
182
185
  return bootstrapped_signature
183
186
 
184
187
 
@@ -243,7 +243,7 @@ def test_build_rectangle_signatures_even(small_data):
243
243
 
244
244
 
245
245
  def test_create_bootstrap_signature(small_data):
246
- bootstraps_per_cell = 5
246
+ bootstraps_per_cell = 7
247
247
  sc_counts, annotations, bulk = small_data
248
248
  sc_counts = sc_counts.astype("int")
249
249
  sc_pseudo = sc_counts.groupby(annotations.values, axis=1).sum()
@@ -0,0 +1,25 @@
1
+ import pandas as pd
2
+ from anndata import AnnData
3
+
4
+ import rectanglepy.rectangle
5
+ from rectanglepy.pp import RectangleSignatureResult
6
+
7
+
8
+ def test_load_tutorial_data():
9
+ sc_data, annotations, bulks = rectanglepy.load_tutorial_data()
10
+ assert isinstance(sc_data, pd.DataFrame)
11
+ assert isinstance(annotations, pd.Series)
12
+ assert isinstance(bulks, pd.DataFrame)
13
+
14
+
15
+ def test_rectangle():
16
+ sc_data, annotations, bulks = rectanglepy.load_tutorial_data()
17
+ sc_data = sc_data.iloc[:, :2000]
18
+ sc_data_adata = AnnData(sc_data, obs=annotations.to_frame(name="cell_type"))
19
+
20
+ result = rectanglepy.rectangle(sc_data_adata, bulks)
21
+ estimations, signatures = result
22
+
23
+ assert isinstance(estimations, pd.DataFrame)
24
+ assert isinstance(signatures, RectangleSignatureResult)
25
+ assert isinstance(signatures.unkn_gene_corr, pd.Series)
@@ -1,51 +0,0 @@
1
- import pandas as pd
2
- from anndata import AnnData
3
-
4
- import rectanglepy.rectangle
5
- from rectanglepy import ConsensusResult
6
- from rectanglepy.pp import RectangleSignatureResult
7
-
8
-
9
- def test_load_tutorial_data():
10
- sc_data, annotations, bulks = rectanglepy.load_tutorial_data()
11
- assert isinstance(sc_data, pd.DataFrame)
12
- assert isinstance(annotations, pd.Series)
13
- assert isinstance(bulks, pd.DataFrame)
14
-
15
-
16
- def test_rectangle():
17
- sc_data, annotations, bulks = rectanglepy.load_tutorial_data()
18
- sc_data = sc_data.iloc[:, :2000]
19
- sc_data_adata = AnnData(sc_data, obs=annotations.to_frame(name="cell_type"))
20
-
21
- result = rectanglepy.rectangle(sc_data_adata, bulks)
22
- estimations, signatures = result
23
-
24
- assert isinstance(estimations, pd.DataFrame)
25
- assert isinstance(signatures, RectangleSignatureResult)
26
- assert isinstance(signatures.unkn_gene_corr, pd.Series)
27
-
28
-
29
- def test_rectangle_consensus():
30
- sc_data, annotations, bulks = rectanglepy.load_tutorial_data()
31
- sc_data = sc_data.iloc[:, :500]
32
- sc_data_adata = AnnData(sc_data, obs=annotations.to_frame(name="cell_type"))
33
-
34
- result = rectanglepy.rectangle_consens(
35
- sc_data_adata, bulks, optimize_cutoffs=False, p=0.2, lfc=0.0, consensus_runs=3, sample_size=50
36
- )
37
-
38
- assert isinstance(result[0], pd.DataFrame)
39
- assert isinstance(result[1], RectangleSignatureResult)
40
- assert isinstance(result[2], ConsensusResult)
41
-
42
- estimations = result[0]
43
- consensus_results = result[2]
44
- signature_results = consensus_results.rectangle_signature_results
45
- bias_factors = [result.bias_factors for result in signature_results]
46
- # there was a problem with the random sampling, the bias factors should differ
47
- assert bias_factors[0]["Monocytes"] != bias_factors[1]["Monocytes"]
48
- assert bias_factors[0]["Monocytes"] != bias_factors[2]["Monocytes"]
49
- assert bias_factors[1]["Monocytes"] != bias_factors[2]["Monocytes"]
50
- # in the consensus we have to make sure that the estimations are again normalized to 1
51
- assert estimations.sum(axis=1).all() == 1.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes