ScreenPro2 0.5.1__tar.gz → 0.7.0__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 (25) hide show
  1. {screenpro2-0.5.1 → screenpro2-0.7.0}/LICENSE +1 -1
  2. {screenpro2-0.5.1 → screenpro2-0.7.0}/PKG-INFO +16 -10
  3. {screenpro2-0.5.1 → screenpro2-0.7.0}/README.md +10 -6
  4. {screenpro2-0.5.1 → screenpro2-0.7.0}/pyproject.toml +3 -2
  5. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/assays/__init__.py +2 -2
  6. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/ngs/cas9.py +9 -10
  7. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/__init__.py +0 -0
  8. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/__main__.py +0 -0
  9. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/dashboard/__init__.py +0 -0
  10. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/load.py +0 -0
  11. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/main.py +0 -0
  12. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/ngs/__init__.py +0 -0
  13. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/ngs/cas12.py +0 -0
  14. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/__init__.py +0 -0
  15. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/_annotate.py +0 -0
  16. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/delta.py +0 -0
  17. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/deseq.py +0 -0
  18. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/evaluate.py +0 -0
  19. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/phenoscore/phenostat.py +0 -0
  20. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/plotting/__init__.py +0 -0
  21. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/plotting/_rank.py +0 -0
  22. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/plotting/_utils.py +0 -0
  23. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/plotting/pheno_plots.py +0 -0
  24. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/plotting/qc_plots.py +0 -0
  25. {screenpro2-0.5.1 → screenpro2-0.7.0}/screenpro/preprocessing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022-2024 ScreenPro2 Development Team.
3
+ Copyright (c) 2022-2026 ScreenPro2 Development Team.
4
4
  All rights reserved.
5
5
  Gilbart Lab, UCSF / Arc Institute.
6
6
  Multi-Omics Tech Center, Arc Insititue.
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: ScreenPro2
3
- Version: 0.5.1
3
+ Version: 0.7.0
4
4
  Summary: Flexible analysis of high-content CRISPR screening
5
5
  License: MIT
6
+ License-File: LICENSE
6
7
  Keywords: CRISPR,screening,bioinformatics
7
- Author: Abe Arab
8
- Author-email: abea@arcinstitute.org
8
+ Author: Abolfazl Arab
9
+ Author-email: abolfazl.arab@ucsf.edu
9
10
  Requires-Python: >=3.9
10
11
  Classifier: License :: OSI Approved :: MIT License
11
12
  Classifier: Programming Language :: Python :: 3
@@ -14,16 +15,19 @@ Classifier: Programming Language :: Python :: 3.10
14
15
  Classifier: Programming Language :: Python :: 3.11
15
16
  Classifier: Programming Language :: Python :: 3.12
16
17
  Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
17
19
  Project-URL: Homepage, https://github.com/ArcInstitute/ScreenPro2
18
20
  Project-URL: Repository, https://github.com/ArcInstitute/ScreenPro2
19
21
  Description-Content-Type: text/markdown
20
22
 
21
23
  [![website](https://img.shields.io/badge/website-live-brightgreen)](https://arcinstitute.org/tools/screenpro2)
24
+ [![zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.18807934.svg)](https://doi.org/10.5281/zenodo.18807934)
25
+ [![NCB](https://img.shields.io/badge/DOI-10.1038%2Fs41589--026--02312--z-blue.svg)](https://doi.org/10.1038/s41589-026-02312-z)
22
26
  [![PyPI version](https://badge.fury.io/py/ScreenPro2.svg)](https://badge.fury.io/py/ScreenPro2)
23
27
  [![Documentation Status](https://readthedocs.org/projects/screenpro2/badge/?version=latest)](https://screenpro2.readthedocs.io/en/latest/?version=latest)
24
28
  [![Downloads](https://static.pepy.tech/badge/screenpro2)](https://pepy.tech/project/screenpro2)
25
29
  [![Downloads](https://static.pepy.tech/badge/screenpro2/month)](https://pepy.tech/project/screenpro2)
26
- [![CodeQL](https://github.com/ArcInstitute/ScreenPro2/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/ArcInstitute/ScreenPro2/actions/workflows/github-code-scanning/codeql)
30
+
27
31
  # ScreenPro2
28
32
 
29
33
  ## Introduction
@@ -356,11 +360,13 @@ ScreenPro2 is licensed under the terms of the MIT license (see [LICENSE](LICENSE
356
360
  by Abolfazl (Abe) Arab ([@abearab](https://github.com/abearab)) as a Research Associate in the Gilbert lab at UCSF and Arc Institute.
357
361
 
358
362
  ## Citation
359
- If you use ScreenPro2 in your research, please cite the following paper.
363
+ If you use ScreenPro2 in your research, please cite both the software release and the published paper.
360
364
 
361
- Coming soon...
365
+ **Final publication note**: The final ScreenPro2 publication is now available in _Nature Chemical Biology_ (2026): https://doi.org/10.1038/s41589-026-02312-z
366
+
367
+ - **Software (Zenodo)**:
368
+ > Arab, A., et al. ArcInstitute/ScreenPro2. _Zenodo_ (2026). https://doi.org/10.5281/zenodo.18884467
362
369
 
363
- ## Development
364
- ### Testing
365
- Tests can be easily run using the `pytest` framework.
370
+ - **Paper (Nature Chemical Biology)**:
371
+ > O’Loughlin, T.A., Arab, A., et al. **Chemogenomic maps reveal a PRDX1-dependent iron–damage axis in the DNA damage response.** _Nat Chem Biol_ (2026). https://doi.org/10.1038/s41589-026-02312-z
366
372
 
@@ -1,9 +1,11 @@
1
1
  [![website](https://img.shields.io/badge/website-live-brightgreen)](https://arcinstitute.org/tools/screenpro2)
2
+ [![zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.18807934.svg)](https://doi.org/10.5281/zenodo.18807934)
3
+ [![NCB](https://img.shields.io/badge/DOI-10.1038%2Fs41589--026--02312--z-blue.svg)](https://doi.org/10.1038/s41589-026-02312-z)
2
4
  [![PyPI version](https://badge.fury.io/py/ScreenPro2.svg)](https://badge.fury.io/py/ScreenPro2)
3
5
  [![Documentation Status](https://readthedocs.org/projects/screenpro2/badge/?version=latest)](https://screenpro2.readthedocs.io/en/latest/?version=latest)
4
6
  [![Downloads](https://static.pepy.tech/badge/screenpro2)](https://pepy.tech/project/screenpro2)
5
7
  [![Downloads](https://static.pepy.tech/badge/screenpro2/month)](https://pepy.tech/project/screenpro2)
6
- [![CodeQL](https://github.com/ArcInstitute/ScreenPro2/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/ArcInstitute/ScreenPro2/actions/workflows/github-code-scanning/codeql)
8
+
7
9
  # ScreenPro2
8
10
 
9
11
  ## Introduction
@@ -336,10 +338,12 @@ ScreenPro2 is licensed under the terms of the MIT license (see [LICENSE](LICENSE
336
338
  by Abolfazl (Abe) Arab ([@abearab](https://github.com/abearab)) as a Research Associate in the Gilbert lab at UCSF and Arc Institute.
337
339
 
338
340
  ## Citation
339
- If you use ScreenPro2 in your research, please cite the following paper.
341
+ If you use ScreenPro2 in your research, please cite both the software release and the published paper.
340
342
 
341
- Coming soon...
343
+ **Final publication note**: The final ScreenPro2 publication is now available in _Nature Chemical Biology_ (2026): https://doi.org/10.1038/s41589-026-02312-z
344
+
345
+ - **Software (Zenodo)**:
346
+ > Arab, A., et al. ArcInstitute/ScreenPro2. _Zenodo_ (2026). https://doi.org/10.5281/zenodo.18884467
342
347
 
343
- ## Development
344
- ### Testing
345
- Tests can be easily run using the `pytest` framework.
348
+ - **Paper (Nature Chemical Biology)**:
349
+ > O’Loughlin, T.A., Arab, A., et al. **Chemogenomic maps reveal a PRDX1-dependent iron–damage axis in the DNA damage response.** _Nat Chem Biol_ (2026). https://doi.org/10.1038/s41589-026-02312-z
@@ -1,9 +1,10 @@
1
1
  [tool.poetry]
2
2
  name = "ScreenPro2"
3
3
  description = "Flexible analysis of high-content CRISPR screening"
4
- version = "0.5.1"
4
+ version = "0.7.0"
5
5
  authors = [
6
- "Abe Arab <abea@arcinstitute.org>"
6
+ "Abolfazl Arab <abolfazl.arab@ucsf.edu>",
7
+ "Nick Youngblut <nick.youngblut@arcinstitute.org>",
7
8
  ]
8
9
  license = "MIT"
9
10
  readme = "README.md"
@@ -71,8 +71,8 @@ class PooledScreens(object):
71
71
  growth_factors = []
72
72
  # calculate growth factor for gamma, tau, or rho score per replicates
73
73
  for replicate in adat.obs.replicate.unique():
74
- db_untreated = adat.obs.query(f'condition == "{untreated}" & replicate == {str(replicate)}')[db_rate_col][0]
75
- db_treated = adat.obs.query(f'condition == "{treated}" & replicate == {str(replicate)}')[db_rate_col][0]
74
+ db_untreated = adat.obs.query(f'condition == "{untreated}" & replicate == {str(replicate)}')[db_rate_col].iloc[0]
75
+ db_treated = adat.obs.query(f'condition == "{treated}" & replicate == {str(replicate)}')[db_rate_col].iloc[0]
76
76
 
77
77
  growth_factors.append(('gamma', db_untreated, replicate, f'gamma_replicate_{replicate}'))
78
78
  growth_factors.append(('tau', db_treated, replicate, f'tau_replicate_{replicate}'))
@@ -154,10 +154,9 @@ def map_to_library_single_guide(df_count, library, return_type='all', verbose=Fa
154
154
  )
155
155
 
156
156
  if verbose:
157
- print("% mapped reads",
158
- 100 * \
159
- res_map.to_pandas()['count'].fillna(0).sum() / \
160
- int(res.select(pl.sum("count")).to_pandas()['count'])
157
+ print(
158
+ "% mapped reads",
159
+ 100 * res_map['count'].sum() / res["count"].sum()
161
160
  )
162
161
 
163
162
  if return_type == 'unmapped':
@@ -221,8 +220,8 @@ def map_to_library_dual_guide(df_count, library, get_recombinant=False, return_t
221
220
  if verbose:
222
221
  print("% mapped reads",
223
222
  100 * \
224
- res_map.to_pandas()['count'].fillna(0).sum() / \
225
- int(res.select(pl.sum("count")).to_pandas()['count'])
223
+ res_map['count'].sum() / \
224
+ res["count"].sum()
226
225
  )
227
226
 
228
227
  if get_recombinant:
@@ -230,8 +229,8 @@ def map_to_library_dual_guide(df_count, library, get_recombinant=False, return_t
230
229
  if verbose:
231
230
  print("% unmapped reads",
232
231
  100 * \
233
- res_unmap.to_pandas()['count'].fillna(0).sum() / \
234
- int(res.select(pl.sum("count")).to_pandas()['count'])
232
+ res_unmap['count'].sum() / \
233
+ res["count"].sum()
235
234
  )
236
235
 
237
236
  sgRNA_table = pd.concat([
@@ -253,8 +252,8 @@ def map_to_library_dual_guide(df_count, library, get_recombinant=False, return_t
253
252
  if verbose:
254
253
  print("% fully remapped recombination events",
255
254
  100 * \
256
- res_recomb_events.drop_nulls().to_pandas()['count'].fillna(0).sum() / \
257
- int(res.select(pl.sum("count")).to_pandas()['count'])
255
+ res_recomb_events.drop_nulls()['count'].sum() / \
256
+ res['count'].sum()
258
257
  )
259
258
 
260
259
  if return_type == 'unmapped':
File without changes
File without changes