rectanglepy 1.3.0__tar.gz → 1.4.1__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 (57) hide show
  1. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.bumpversion.cfg +1 -1
  2. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  3. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/CHANGELOG.md +16 -0
  4. rectanglepy-1.4.1/LICENCE_COM +203 -0
  5. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/PKG-INFO +16 -2
  6. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/README.md +14 -1
  7. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/contributing.md +4 -0
  8. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/pyproject.toml +1 -1
  9. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/tl/deconvolution.py +8 -8
  10. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/test_tl.py +3 -3
  11. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.cruft.json +0 -0
  12. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.editorconfig +0 -0
  13. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  14. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  15. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  16. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/workflows/build.yaml +0 -0
  17. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/workflows/release.yaml +0 -0
  18. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/workflows/release_testpypi.yaml +0 -0
  19. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.github/workflows/test.yaml +0 -0
  20. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.gitignore +0 -0
  21. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.pre-commit-config.yaml +0 -0
  22. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/.readthedocs.yaml +0 -0
  23. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/LICENSE +0 -0
  24. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/Makefile +0 -0
  25. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/_static/.gitkeep +0 -0
  26. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/_static/rec_logo.001.png +0 -0
  27. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/_templates/.gitkeep +0 -0
  28. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/_templates/autosummary/class.rst +0 -0
  29. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/api.md +0 -0
  30. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/changelog.md +0 -0
  31. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/conf.py +0 -0
  32. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/extensions/typed_returns.py +0 -0
  33. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/index.md +0 -0
  34. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/installation.md +0 -0
  35. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/make.bat +0 -0
  36. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/notebooks/example.ipynb +0 -0
  37. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/references.bib +0 -0
  38. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/references.md +0 -0
  39. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/docs/tutorials.md +0 -0
  40. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/__init__.py +0 -0
  41. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/data/hao1_annotations_small.zip +0 -0
  42. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/data/hao1_counts_small.zip +0 -0
  43. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/data/small_fino_bulks.zip +0 -0
  44. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/pp/__init__.py +0 -0
  45. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/pp/create_signature.py +0 -0
  46. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/pp/rectangle_signature.py +0 -0
  47. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/rectangle.py +0 -0
  48. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/src/rectanglepy/tl/__init__.py +0 -0
  49. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/TIL10_signature.txt +0 -0
  50. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/bulk_small.csv +0 -0
  51. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/cell_annotations_small.txt +0 -0
  52. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/quanTIseq_SimRNAseq_mixture_smaller.csv +0 -0
  53. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/quanTIseq_SimRNAseq_read_fractions_small.txt +0 -0
  54. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/sc_object_small.csv +0 -0
  55. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/data/signature_hao1.csv +0 -0
  56. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/test_pp.py +0 -0
  57. {rectanglepy-1.3.0 → rectanglepy-1.4.1}/tests/test_rectangle.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.3.0
2
+ current_version = 1.4.1
3
3
  tag = True
4
4
  commit = True
5
5
 
@@ -8,6 +8,7 @@ Please list closed, fixed, or resolved issues here with a # and the number.
8
8
 
9
9
  ### Checklist
10
10
 
11
+ - [ ] I have read and agree to the [Contributor License Agreement (CLA)](https://github.com/ComputationalBiomedicineGroup/Rectangle/blob/main/CLA.md)
11
12
  - [ ] Code builds correctly
12
13
  - [ ] Added tests that fail without the change (if possible)
13
14
  - [ ] All tests passing
@@ -10,6 +10,22 @@ and this project adheres to [Semantic Versioning][].
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [1.4.1] - 2026-04-23
14
+
15
+ ### Changed
16
+
17
+ - Wider QP tolerances
18
+
19
+ ## [1.4.0] - 2026-03-10
20
+
21
+ ### Changed
22
+
23
+ - **Licensing: Rectangle is now available under a dual licence.**
24
+ - Non-commercial use: GNU General Public Licence v3 (GPLv3).
25
+ - Commercial use: A proprietary licence is available for companies wishing to use Rectangle in closed-source or proprietary applications. For enquiries, contact innovation-psb@uibk.ac.at.
26
+ - See [LICENCE_COM](LICENCE_COM) for full commercial licence terms.
27
+ - Added Contributor License Agreement (CLA) for external contributions.
28
+
13
29
  ## [1.2.0] - 2026-01-31
14
30
 
15
31
  ### Changed
@@ -0,0 +1,203 @@
1
+ Rectangle - Open Source Version
2
+
3
+ Copyright (C) 2026 Francesca Finotello, Bernhard Eder
4
+
5
+ This programme is released under proprietary licence for commercial use
6
+ (for proprietary licences, contact: innovation-psb@uibk.ac.at), but can
7
+ be used for non commercial use under the following conditions:
8
+
9
+ For non commercial use open source licence GNU General Public Licence v3 (GPLv3)
10
+
11
+
12
+ Rectangle
13
+
14
+ Rectangle is an open-source Python package for single-cell-informed cell-type
15
+ deconvolution of bulk and spatial transcriptomic data.
16
+
17
+
18
+ ## Licence
19
+
20
+ Rectangle is available under a **dual licence**:
21
+
22
+ - **Open source licence:** GNU General Public Licence v3 (GPLv3)
23
+ → Free to use as long as modifications and redistributions are also under GPLv3.
24
+
25
+ - **Commercial licence:** For companies that want to use Rectangle in proprietary
26
+ or closed applications the following applies:
27
+
28
+ Rectangle - Commercial Licence Terms
29
+
30
+ Copyright (C) 2026 Francesca Finotello, Bernhard Eder
31
+
32
+
33
+ For all users who use Rectangle under GPL v3 the following shall apply:
34
+
35
+
36
+ Contributor License Agreement (CLA)
37
+
38
+ Purpose of this Agreement
39
+
40
+ The project is distributed under a dual-licensing model, consisting of:
41
+ an open source license (GNU General Public License, GPL), and
42
+ a proprietary license offered by the project owner.
43
+ The purpose of this Agreement is to ensure that contributions initially
44
+ submitted under the GPL can be lawfully reused, integrated, and distributed
45
+ under the proprietary license.
46
+
47
+
48
+ Definitions
49
+
50
+ "Contribution" means any source code, documentation, bug fix, enhancement,
51
+ or other work intentionally submitted by the Contributor for inclusion in
52
+ the project.
53
+ "Contributor" means the individual or legal entity submitting a Contribution.
54
+ "Project Owner" means Francesca Finotello and Bernhard Eder, who maintain
55
+ and license the project.
56
+
57
+
58
+ Authorship and Authority
59
+
60
+ The Contributor represents and warrants that:
61
+ they are the sole author of the Contribution or have all necessary rights
62
+ to submit it;
63
+ the Contribution does not infringe any third-party rights;
64
+ the Contribution is free of patents, licenses, or other restrictions that
65
+ would conflict with the rights granted under this Agreement.
66
+
67
+
68
+ Grant of Rights (Dual Licensing Grant)
69
+
70
+ The Contributor hereby grants the Project Owner a perpetual, worldwide,
71
+ irrevocable, non-exclusive, transferable license to:
72
+ use,
73
+ reproduce,
74
+ modify,
75
+ combine with other works,
76
+ publish,
77
+ sublicense,
78
+ and distribute
79
+ the Contribution, including but not limited to the right to license and
80
+ distribute the Contribution:
81
+ under the GNU General Public License (GPL), and
82
+ under one or more proprietary licenses, as determined at the sole discretion
83
+ of the Project Owner.
84
+ This grant explicitly includes the right to incorporate Contributions
85
+ originally submitted under the GPL version of the project into proprietary
86
+ versions of the project.
87
+
88
+
89
+ No Obligation to Disclose Proprietary Versions
90
+
91
+ The Contributor acknowledges that Contributions submitted under this
92
+ Agreement are not required to be disclosed, published, or distributed
93
+ under an open source license in the proprietary version of the project.
94
+
95
+
96
+ Retention of Copyright
97
+
98
+ The Contributor retains all copyrights in their Contribution. This Agreement
99
+ does not constitute a transfer of ownership, but rather a comprehensive
100
+ grant of rights.
101
+
102
+
103
+ Attribution
104
+
105
+ Unless otherwise agreed, the Project Owner may list the Contributor's name
106
+ in a list of contributors. There is no obligation to provide attribution.
107
+
108
+
109
+ No Compensation
110
+
111
+ Contributions are made voluntarily and without compensation. The Contributor
112
+ is not entitled to fees, royalties, or other remuneration.
113
+
114
+
115
+ Disclaimer of Warranty
116
+
117
+ The Contribution is provided "AS IS", without warranty of any kind, express
118
+ or implied, including but not limited to warranties of merchantability or
119
+ fitness for a particular purpose.
120
+
121
+
122
+ Governing Law
123
+
124
+ This Agreement shall be governed by the laws of Austria, excluding its
125
+ conflict of law provisions.
126
+
127
+
128
+ Entire Agreement
129
+
130
+ This Agreement constitutes the entire agreement between the Contributor
131
+ and the Project Owner regarding Contributions and supersedes all prior
132
+ agreements or understandings.
133
+
134
+
135
+ Acceptance
136
+
137
+ By submitting a Contribution, the Contributor confirms that they have read,
138
+ understood, and agreed to the terms of this Agreement.
139
+
140
+
141
+
142
+ This licence permits the use of Rectangle in proprietary or non-open projects
143
+ under the following conditions:
144
+
145
+ 1. The licensee may use and distribute Rectangle in closed applications
146
+ without publishing the source code.
147
+ 2. The licence is non-transferable and applies only to the licensed company.
148
+ 3. Use is unlimited in time, provided that the licence fee has been paid in full.
149
+ 4. Support and updates are optional and must be agreed separately.
150
+ 5. Any use without a valid commercial licence is automatically subject to GPLv3.
151
+
152
+ For offers and pricing models: innovation-psb@uibk.ac.at
153
+ → Please contact us at innovation-psb@uibk.ac.at to obtain a commercial licence.
154
+
155
+
156
+ For all users of rectangle the following applies:
157
+
158
+
159
+ Updates & Support
160
+
161
+ 1. The copyright holder offers optional paid updates, maintenance and
162
+ technical support.
163
+ 2. Without a support contract, there is no entitlement to future versions
164
+ or bug fixes.
165
+
166
+
167
+ Liability & Warranty
168
+
169
+ 1. Rectangle is provided 'as is' without any express or implied warranty.
170
+ 2. The rights holder is not liable for any damage, loss of data or
171
+ consequential damage resulting from use.
172
+ 3. Liability is limited to a maximum of the licence fee paid.
173
+
174
+
175
+ Copyright & Ownership
176
+
177
+ 1. Rectangle remains the intellectual property of the rights holder at
178
+ all times.
179
+ 2. This licence does not transfer ownership, only rights of use.
180
+ 3. Modifications or derivative works by the licensee remain the property
181
+ of the licensee, unless they are derived directly from Rectangle code.
182
+
183
+
184
+ Termination
185
+
186
+ 1. This licence shall automatically expire if the licensee violates any
187
+ material terms of the agreement.
188
+ 2. Upon termination, the licensee must delete all copies of the Rectangle
189
+ software and may no longer use it.
190
+
191
+
192
+ Miscellaneous
193
+
194
+ 1. This licence is subject to the laws of Austria.
195
+ 2. The place of jurisdiction is the registered office of the rights holder.
196
+ 3. Amendments or additions must be made in writing.
197
+ 4. Should any provision be invalid, the remaining provisions shall remain valid.
198
+
199
+
200
+ ## Contact
201
+
202
+ **Authors:** Francesca Finotello, Bernhard Eder
203
+ **Email:** innovation-psb@uibk.ac.at
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rectanglepy
3
- Version: 1.3.0
3
+ Version: 1.4.1
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
@@ -681,6 +681,7 @@ License: GNU GENERAL PUBLIC LICENSE
681
681
  the library. If this is what you want to do, use the GNU Lesser General
682
682
  Public License instead of this License. But first, please read
683
683
  <https://www.gnu.org/licenses/why-not-lgpl.html>.
684
+ License-File: LICENCE_COM
684
685
  License-File: LICENSE
685
686
  Requires-Python: >=3.10
686
687
  Requires-Dist: anndata<0.10.9,>=0.8.0
@@ -734,7 +735,7 @@ Please refer to the [documentation][link-docs]. In particular, the
734
735
 
735
736
  ## Installation
736
737
 
737
- You need to have Python 3.10 or higher installed on your system.
738
+ You need Python 3.10–3.12 installed on your system.
738
739
 
739
740
  How to install Rectangle:
740
741
 
@@ -744,6 +745,17 @@ Install the latest release of `Rectangle` from `PyPI` <https://pypi.org/project/
744
745
  pip install rectanglepy
745
746
  ```
746
747
 
748
+ ## Licence
749
+
750
+ Rectangle is available under a **dual licence**:
751
+
752
+ - **Open-source licence:** [GNU General Public License v3.0 (GPLv3)](LICENSE)
753
+ → Free to use, modify, and redistribute as long as modifications and redistributions are also under GPLv3.
754
+
755
+ - **Commercial licence:** For companies and individuals who wish to use Rectangle in proprietary or closed-source applications, a separate commercial licence is available. See [LICENCE_COM](LICENCE_COM) for details.
756
+
757
+ For commercial licensing enquiries, please contact: **innovation-psb@uibk.ac.at**
758
+
747
759
  ## Release notes
748
760
 
749
761
  See the [changelog][changelog].
@@ -752,6 +764,8 @@ See the [changelog][changelog].
752
764
 
753
765
  If you found a bug, please use the [issue tracker][issue-tracker].
754
766
 
767
+ For commercial licensing: **innovation-psb@uibk.ac.at**
768
+
755
769
  ## Citation
756
770
 
757
771
  > If you use Rectangle in your project, please cite: (TBA)
@@ -23,7 +23,7 @@ Please refer to the [documentation][link-docs]. In particular, the
23
23
 
24
24
  ## Installation
25
25
 
26
- You need to have Python 3.10 or higher installed on your system.
26
+ You need Python 3.10–3.12 installed on your system.
27
27
 
28
28
  How to install Rectangle:
29
29
 
@@ -33,6 +33,17 @@ Install the latest release of `Rectangle` from `PyPI` <https://pypi.org/project/
33
33
  pip install rectanglepy
34
34
  ```
35
35
 
36
+ ## Licence
37
+
38
+ Rectangle is available under a **dual licence**:
39
+
40
+ - **Open-source licence:** [GNU General Public License v3.0 (GPLv3)](LICENSE)
41
+ → Free to use, modify, and redistribute as long as modifications and redistributions are also under GPLv3.
42
+
43
+ - **Commercial licence:** For companies and individuals who wish to use Rectangle in proprietary or closed-source applications, a separate commercial licence is available. See [LICENCE_COM](LICENCE_COM) for details.
44
+
45
+ For commercial licensing enquiries, please contact: **innovation-psb@uibk.ac.at**
46
+
36
47
  ## Release notes
37
48
 
38
49
  See the [changelog][changelog].
@@ -41,6 +52,8 @@ See the [changelog][changelog].
41
52
 
42
53
  If you found a bug, please use the [issue tracker][issue-tracker].
43
54
 
55
+ For commercial licensing: **innovation-psb@uibk.ac.at**
56
+
44
57
  ## Citation
45
58
 
46
59
  > If you use Rectangle in your project, please cite: (TBA)
@@ -2,6 +2,10 @@
2
2
 
3
3
  We welcome contributions! The best way to contribute is by opening a pull request on GitHub.
4
4
 
5
+ ## Contributor License Agreement (CLA)
6
+
7
+ Rectangle uses a dual-licensing model (GPLv3 + commercial). By submitting a contribution (e.g., via pull request), you agree to the terms of our [Contributor License Agreement (CLA)](https://github.com/ComputationalBiomedicineGroup/Rectangle/blob/main/CLA.md). This ensures that contributions can be included in both the open-source and commercial versions of Rectangle.
8
+
5
9
  ## How to Contribute
6
10
 
7
11
  1. Fork the repository and create a new branch for your changes.
@@ -4,7 +4,7 @@ requires = ["hatchling"]
4
4
 
5
5
  [project]
6
6
  name = "rectanglepy"
7
- version = "1.3.0"
7
+ version = "1.4.1"
8
8
  description = "Hierarchical deconvolution of bulk transcriptomics"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -143,8 +143,8 @@ def solve_qp(
143
143
  l=l,
144
144
  u=u,
145
145
  verbose=False,
146
- eps_abs=1e-8,
147
- eps_rel=1e-8,
146
+ eps_abs=1e-7,
147
+ eps_rel=1e-7,
148
148
  max_iter=50000,
149
149
  polish=True,
150
150
  warm_start=False,
@@ -159,7 +159,7 @@ def solve_qp(
159
159
  return res.x
160
160
 
161
161
 
162
- def _find_dampening_constant(signature: pd.DataFrame, bulk: pd.Series, qp_gld: np.ndarray) -> int:
162
+ def _calculate_dampening_constant(signature: pd.DataFrame, bulk: pd.Series, qp_gld: np.ndarray) -> int:
163
163
  solutions_std = []
164
164
  np.random.seed(1)
165
165
  weights = np.square(1 / (np.dot(signature, qp_gld)))
@@ -190,7 +190,7 @@ def _find_dampening_constant(signature: pd.DataFrame, bulk: pd.Series, qp_gld: n
190
190
  return best_dampening_constant
191
191
 
192
192
 
193
- def _calculate_dwls(
193
+ def _calculate_ls(
194
194
  signature: pd.DataFrame,
195
195
  bulk: pd.Series,
196
196
  prev_assignments: list[int or str] = None,
@@ -201,7 +201,7 @@ def _calculate_dwls(
201
201
  bulk = bulk.loc[genes].sort_index().astype("double")
202
202
 
203
203
  approximate_solution = solve_qp(signature, bulk, prev_assignments, prev_weights)
204
- dampening_constant = _find_dampening_constant(signature, bulk, approximate_solution)
204
+ dampening_constant = _calculate_dampening_constant(signature, bulk, approximate_solution)
205
205
  multiplier = 2**dampening_constant
206
206
 
207
207
  max_iterations = 1000
@@ -304,7 +304,7 @@ def _deconvolute(
304
304
  bias_factors = bias_factors * 0 + 1 # set all bias factors to 1
305
305
 
306
306
  signature = pseudobulk_sig_cpm.loc[signature_genes_direct_reduced] * bias_factors
307
- start_fractions = _calculate_dwls(signature, bulk)
307
+ start_fractions = _calculate_ls(signature, bulk)
308
308
 
309
309
  if clustered_pseudobulk_sig_cpm is None:
310
310
  start_fractions, bulk_err = correct_for_unknown_cell_content(
@@ -323,8 +323,8 @@ def _deconvolute(
323
323
  clustered_signature = clustered_pseudobulk_sig_cpm.loc[clustered_signature_genes] * cluster_bias_factors
324
324
 
325
325
  try:
326
- clustered_fractions = _calculate_dwls(clustered_signature, bulk)
327
- recursive_fractions = _calculate_dwls(signature, bulk, signatures.assignments, clustered_fractions)
326
+ clustered_fractions = _calculate_ls(clustered_signature, bulk)
327
+ recursive_fractions = _calculate_ls(signature, bulk, signatures.assignments, clustered_fractions)
328
328
  except Exception as e:
329
329
  logger.warning(f"Recursive deconvolution failed with error: {e}")
330
330
  start_fractions, bulk_err = correct_for_unknown_cell_content(
@@ -9,7 +9,7 @@ from rectanglepy.pp.create_signature import (
9
9
  build_rectangle_signatures,
10
10
  )
11
11
  from rectanglepy.tl.deconvolution import (
12
- _calculate_dwls,
12
+ _calculate_ls,
13
13
  _scale_weights,
14
14
  correct_for_unknown_cell_content,
15
15
  deconvolution,
@@ -58,7 +58,7 @@ def test_simple_weighted_dampened_deconvolution(quantiseq_data):
58
58
  bulk = bulk.iloc[:, j]
59
59
  expected = real_fractions.T.iloc[:, j]
60
60
 
61
- result = _calculate_dwls(signature, bulk)
61
+ result = _calculate_ls(signature, bulk)
62
62
  corr = np.corrcoef(result, expected)[0, 1]
63
63
  rsme = np.sqrt(np.mean((result - expected) ** 2))
64
64
 
@@ -74,7 +74,7 @@ def test_correct_for_unknown_cell_content(small_data, quantiseq_data):
74
74
  bulk = bulk.iloc[:, 5]
75
75
  pseudo_signature = signature.pseudobulk_sig_cpm
76
76
  sig = pseudo_signature.loc[signature.signature_genes]
77
- fractions = _calculate_dwls(sig, bulk)
77
+ fractions = _calculate_ls(sig, bulk)
78
78
  biasfact = (pseudo_signature > 0).sum(axis=0)
79
79
  biasfact = biasfact / biasfact.min()
80
80
  result, bulk_err = correct_for_unknown_cell_content(bulk, pseudo_signature, fractions, biasfact)
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