alphapepttools 0.3.0__tar.gz → 0.4.1.dev0__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.
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.bumpversion.toml +1 -1
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/test.yaml +1 -1
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/PKG-INFO +15 -3
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/README.md +12 -2
- alphapepttools-0.4.1.dev0/docs/_static/logo/alphapepttools.png +0 -0
- alphapepttools-0.4.1.dev0/docs/_static/logo/alphapepttools.svg +85 -0
- alphapepttools-0.4.1.dev0/docs/notebooks/example_data/notebook_02_alphaquant_peptide_results.pkl +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/studies/study_01_biomarker_csf.ipynb +62 -190
- alphapepttools-0.4.1.dev0/docs/notebooks/studies/study_02_peptidomics_pelsa.ipynb +1776 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/studies/study_03_biomarker_skin.ipynb +3 -3
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/studies/study_05_multimodal.ipynb +10 -8
- alphapepttools-0.4.1.dev0/docs/notebooks/tutorials/tutorial_00_data_sources.ipynb +2378 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/tutorials/tutorial_01_basic_workflow.ipynb +4 -4
- alphapepttools-0.4.1.dev0/docs/notebooks/tutorials/tutorial_05_tmt-data.ipynb +1455 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/pyproject.toml +4 -2
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/__init__.py +1 -1
- alphapepttools-0.4.1.dev0/src/alphapepttools/_decorator.py +90 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/_utils.py +19 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/anndata_factory.py +56 -73
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/psm_reader.py +34 -17
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/metrics/feature_level.py +12 -7
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/metrics/sample_and_feature_level.py +4 -7
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pl/colors.py +128 -22
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/batch_correction.py +36 -24
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/data.py +10 -9
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/impute.py +46 -39
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/norm.py +27 -19
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/transform.py +16 -9
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/defaults.py +2 -0
- alphapepttools-0.4.1.dev0/src/alphapepttools/tl/diff_exp/__init__.py +5 -0
- alphapepttools-0.4.1.dev0/src/alphapepttools/tl/diff_exp/ebayes.py +851 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/diff_exp/ttest.py +24 -3
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/embeddings.py +22 -14
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/utils.py +0 -2
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/io/test_anndata_factory.py +23 -20
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/io/test_psm_reader.py +18 -10
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/metrics/test_feature_level.py +28 -17
- alphapepttools-0.4.1.dev0/tests/pl/test_colors.py +204 -0
- alphapepttools-0.4.1.dev0/tests/pl/test_figure.py +168 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pp/test_batch_correction.py +48 -14
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pp/test_data.py +4 -4
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pp/test_impute.py +21 -19
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pp/test_norm.py +14 -14
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pp/test_transform.py +5 -5
- alphapepttools-0.4.1.dev0/tests/test_decorator.py +106 -0
- alphapepttools-0.4.1.dev0/tests/tl/test_diff_exp.py +1614 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/test_embeddings.py +2 -2
- alphapepttools-0.3.0/docs/_static/logo/alphatools.png +0 -0
- alphapepttools-0.3.0/docs/notebooks/example_data/notebook_02_alphaquant_peptide_results.pkl +0 -0
- alphapepttools-0.3.0/docs/notebooks/studies/study_02_peptidomics_pelsa.ipynb +0 -1819
- alphapepttools-0.3.0/docs/notebooks/tutorials/tutorial_00_data_sources.ipynb +0 -2250
- alphapepttools-0.3.0/docs/notebooks/tutorials/tutorial_05_tmt-data.ipynb +0 -1468
- alphapepttools-0.3.0/src/alphapepttools/tl/diff_exp/__init__.py +0 -4
- alphapepttools-0.3.0/src/alphapepttools/tl/diff_exp/ebayes.py +0 -239
- alphapepttools-0.3.0/tests/pl/test_colors.py +0 -206
- alphapepttools-0.3.0/tests/tl/test_diff_exp.py +0 -649
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.codecov.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.cruft.json +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.editorconfig +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/dependabot.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/release.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/build.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/bump_version.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/check-pre-commit.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/code-review.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/create_release.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/docs.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/publish_on_pypi.yml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/release.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.github/workflows/test_notebooks.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.gitignore +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.pre-commit-config.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.prettierrc.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/.readthedocs.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/CHANGELOG.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/CITATION.cff +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/LICENSE +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/alphatools_env.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/Makefile +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/_static/.gitkeep +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/_static/css/custom.css +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/_static/images/anndata_schema.svg +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/_templates/.gitkeep +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/_templates/autosummary/class.rst +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/api.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/changelog.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/conf.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/contributing.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/extensions/typed_returns.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/index.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/data_handler.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/example_data/HeLa_QC_data.pkl +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/example_data/HeLa_QC_feature_metadata.csv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/example_data/HeLa_QC_feature_metadata.pkl +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/example_data/HeLa_QC_sample_metadata.csv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/example_data/HeLa_QC_sample_metadata.pkl +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/studies/study_04_scDVP.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/supplementary/supplementary_01_filtering_demo.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/supplementary/supplementary_02_scalability-demo_PCAn.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/tutorials/tutorial_02_basic_plotting_workflow.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/tutorials/tutorial_03_basic_PCA_workflow.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/notebooks/tutorials/tutorial_04_volcanoplot.ipynb +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/references.bib +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/references.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/docs/tutorials.md +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/release/common/build_wheel.sh +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/data/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/data/datasets.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/data/datasets.yaml +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/mulink_reader.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/pg_reader.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/reader_columns.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/io/utils.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/metrics/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/metrics/principal_component_regression.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pl/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pl/defaults.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pl/figure.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pl/plots.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/pp/_utils.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/diff_exp/alphaquant_wrapper.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/plot_data_handling.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/stats.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/src/alphapepttools/tl/tools.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/.coverage +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/data/test_datasets.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/docs/test_docs.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/alphadia_1.10.4___pg_matrix.tsv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/alphapept_0.5.0__pg_matrix.csv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_alphadia_1.10.4__pg.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_alphadia_181.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_alphapept_0.5.0__pg.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_diann_181.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_diann_190.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/reference_data/reference_ad_var_alphapept_0.5.0__pg.parquet +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/test_alphaquant_pipeline.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/test_anndata.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/integration/test_pg_reader.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/io/test_mulink_reader.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/io/test_pg_reader.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/io/test_utils.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/metrics/test_principal_component_regression.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/metrics/test_sample_and_feature_level.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pl/__init__.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/pl/test_plots.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/run_notebook_tests.sh +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/test_data_handling.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/test_stats.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/test_tools.py +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/tl_test_data/example_dataset_mouse_sn_top20peptides.tsv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/tl_test_data/samplemap_200.tsv +0 -0
- {alphapepttools-0.3.0 → alphapepttools-0.4.1.dev0}/tests/tl/tl_test_data.ipynb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: alphapepttools
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1-dev0
|
|
4
4
|
Summary: Search- and quantification-engine agnostic biological interpretation of proteomics data
|
|
5
5
|
Project-URL: Documentation, https://alphapepttools.readthedocs.io/
|
|
6
6
|
Project-URL: Homepage, https://github.com/MannLabs/alphapepttools
|
|
@@ -227,6 +227,7 @@ Requires-Dist: pyarrow
|
|
|
227
227
|
Requires-Dist: scanpy
|
|
228
228
|
Requires-Dist: scikit-learn
|
|
229
229
|
Requires-Dist: session-info2
|
|
230
|
+
Requires-Dist: tqdm
|
|
230
231
|
Provides-Extra: dev
|
|
231
232
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
232
233
|
Requires-Dist: twine>=4.0.2; extra == 'dev'
|
|
@@ -263,6 +264,7 @@ Requires-Dist: pyarrow==23.0.1; extra == 'stable'
|
|
|
263
264
|
Requires-Dist: scanpy==1.11.5; extra == 'stable'
|
|
264
265
|
Requires-Dist: scikit-learn==1.8; extra == 'stable'
|
|
265
266
|
Requires-Dist: session-info2==0.4; extra == 'stable'
|
|
267
|
+
Requires-Dist: tqdm==4.70; extra == 'stable'
|
|
266
268
|
Provides-Extra: test
|
|
267
269
|
Requires-Dist: coverage; extra == 'test'
|
|
268
270
|
Requires-Dist: nbmake; extra == 'test'
|
|
@@ -274,12 +276,17 @@ Description-Content-Type: text/markdown
|
|
|
274
276
|

|
|
275
277
|
[![Tests][badge-tests]][tests]
|
|
276
278
|
[![Documentation][badge-docs]][documentation]
|
|
279
|
+
[![Preprint][badge-preprint]][preprint]
|
|
277
280
|
|
|
278
281
|
[badge-tests]: https://img.shields.io/github/actions/workflow/status/MannLabs/alphapepttools/test.yaml?branch=main
|
|
279
282
|
[badge-docs]: https://github.com/MannLabs/alphapepttools/actions/workflows/docs.yaml/badge.svg
|
|
283
|
+
[badge-preprint]: https://img.shields.io/badge/preprint-bioRxiv-b31b1b
|
|
280
284
|
|
|
281
285
|
Search- and quantification-engine agnostic downstream processing of proteomics data
|
|
282
286
|
|
|
287
|
+
> [!TIP]
|
|
288
|
+
> Our [preprint is out now][preprint]!
|
|
289
|
+
|
|
283
290
|
## `alphapepttools` was made to make your life in proteomics easier!
|
|
284
291
|
|
|
285
292
|
Functionalities are intended to be as close to pure python as possible, avoiding closed end-to-end implementations, which is reflected in several design choices:
|
|
@@ -305,7 +312,7 @@ in particular, the [API documentation][].
|
|
|
305
312
|
|
|
306
313
|
## Installation
|
|
307
314
|
|
|
308
|
-
You need to have Python 3.11 or newer installed on your system.
|
|
315
|
+
You need to have Python 3.11 or newer installed on your system (Linux/MacOS/Windows).
|
|
309
316
|
If you don't have Python installed, we recommend installing [Mambaforge][].
|
|
310
317
|
|
|
311
318
|
There are several alternative options to install alphapepttools:
|
|
@@ -324,6 +331,9 @@ As the package is still under development, consider installing the latest develo
|
|
|
324
331
|
pip install git+https://github.com/MannLabs/alphapepttools.git@main
|
|
325
332
|
```
|
|
326
333
|
|
|
334
|
+
For a full list of dependencies, see the dependencies section in the [pyproject.toml](pyproject.toml).
|
|
335
|
+
Installation should take less than 5 minutes.
|
|
336
|
+
|
|
327
337
|
### Installation extras
|
|
328
338
|
|
|
329
339
|
Depending on your use case, you might want to install specific versions of packages or additional dependencies.
|
|
@@ -380,12 +390,14 @@ If you found a bug, please use the [issue tracker][].
|
|
|
380
390
|
|
|
381
391
|
## Citation
|
|
382
392
|
|
|
383
|
-
>
|
|
393
|
+
> Brennsteiner, V., Diedrich, L. et al.
|
|
394
|
+
> [_AlphaPeptTools: scverse-native analysis of mass spectrometry-based proteomics_][preprint] (preprint), bioRxiv (2026).
|
|
384
395
|
|
|
385
396
|
[mambaforge]: https://github.com/conda-forge/miniforge#mambaforge
|
|
386
397
|
[scverse discourse]: https://discourse.scverse.org/
|
|
387
398
|
[issue tracker]: https://github.com/MannLabs/alphapepttools/issues
|
|
388
399
|
[tests]: https://github.com/MannLabs/alphapepttools/actions/workflows/test.yml
|
|
400
|
+
[preprint]: https://www.biorxiv.org/content/10.64898/2026.09.11.750886v1
|
|
389
401
|
|
|
390
402
|
<!-- TODO: Change documentation pages back to readthedocs upon public release -->
|
|
391
403
|
<!-- [documentation]: https://alphapepttools.readthedocs.io -->
|
|
@@ -3,12 +3,17 @@
|
|
|
3
3
|

|
|
4
4
|
[![Tests][badge-tests]][tests]
|
|
5
5
|
[![Documentation][badge-docs]][documentation]
|
|
6
|
+
[![Preprint][badge-preprint]][preprint]
|
|
6
7
|
|
|
7
8
|
[badge-tests]: https://img.shields.io/github/actions/workflow/status/MannLabs/alphapepttools/test.yaml?branch=main
|
|
8
9
|
[badge-docs]: https://github.com/MannLabs/alphapepttools/actions/workflows/docs.yaml/badge.svg
|
|
10
|
+
[badge-preprint]: https://img.shields.io/badge/preprint-bioRxiv-b31b1b
|
|
9
11
|
|
|
10
12
|
Search- and quantification-engine agnostic downstream processing of proteomics data
|
|
11
13
|
|
|
14
|
+
> [!TIP]
|
|
15
|
+
> Our [preprint is out now][preprint]!
|
|
16
|
+
|
|
12
17
|
## `alphapepttools` was made to make your life in proteomics easier!
|
|
13
18
|
|
|
14
19
|
Functionalities are intended to be as close to pure python as possible, avoiding closed end-to-end implementations, which is reflected in several design choices:
|
|
@@ -34,7 +39,7 @@ in particular, the [API documentation][].
|
|
|
34
39
|
|
|
35
40
|
## Installation
|
|
36
41
|
|
|
37
|
-
You need to have Python 3.11 or newer installed on your system.
|
|
42
|
+
You need to have Python 3.11 or newer installed on your system (Linux/MacOS/Windows).
|
|
38
43
|
If you don't have Python installed, we recommend installing [Mambaforge][].
|
|
39
44
|
|
|
40
45
|
There are several alternative options to install alphapepttools:
|
|
@@ -53,6 +58,9 @@ As the package is still under development, consider installing the latest develo
|
|
|
53
58
|
pip install git+https://github.com/MannLabs/alphapepttools.git@main
|
|
54
59
|
```
|
|
55
60
|
|
|
61
|
+
For a full list of dependencies, see the dependencies section in the [pyproject.toml](pyproject.toml).
|
|
62
|
+
Installation should take less than 5 minutes.
|
|
63
|
+
|
|
56
64
|
### Installation extras
|
|
57
65
|
|
|
58
66
|
Depending on your use case, you might want to install specific versions of packages or additional dependencies.
|
|
@@ -109,12 +117,14 @@ If you found a bug, please use the [issue tracker][].
|
|
|
109
117
|
|
|
110
118
|
## Citation
|
|
111
119
|
|
|
112
|
-
>
|
|
120
|
+
> Brennsteiner, V., Diedrich, L. et al.
|
|
121
|
+
> [_AlphaPeptTools: scverse-native analysis of mass spectrometry-based proteomics_][preprint] (preprint), bioRxiv (2026).
|
|
113
122
|
|
|
114
123
|
[mambaforge]: https://github.com/conda-forge/miniforge#mambaforge
|
|
115
124
|
[scverse discourse]: https://discourse.scverse.org/
|
|
116
125
|
[issue tracker]: https://github.com/MannLabs/alphapepttools/issues
|
|
117
126
|
[tests]: https://github.com/MannLabs/alphapepttools/actions/workflows/test.yml
|
|
127
|
+
[preprint]: https://www.biorxiv.org/content/10.64898/2026.09.11.750886v1
|
|
118
128
|
|
|
119
129
|
<!-- TODO: Change documentation pages back to readthedocs upon public release -->
|
|
120
130
|
<!-- [documentation]: https://alphapepttools.readthedocs.io -->
|
|
Binary file
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg id="stripes" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 283.46 283.46">
|
|
3
|
+
<defs>
|
|
4
|
+
<style>
|
|
5
|
+
.cls-1 {
|
|
6
|
+
fill: none;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.cls-2 {
|
|
10
|
+
fill: #42c4ec;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.cls-3 {
|
|
14
|
+
fill: #eaecb3;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.cls-4 {
|
|
18
|
+
fill: #17232c;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.cls-5 {
|
|
22
|
+
clip-path: url(#clippath-1);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.cls-6 {
|
|
26
|
+
clip-path: url(#clippath-2);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.cls-7 {
|
|
30
|
+
fill: #86ccac;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.cls-8 {
|
|
34
|
+
fill: #d7d7d7;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.cls-9 {
|
|
38
|
+
fill: #63c6cf;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.cls-10 {
|
|
42
|
+
clip-path: url(#clippath);
|
|
43
|
+
}
|
|
44
|
+
</style>
|
|
45
|
+
<clipPath id="clippath">
|
|
46
|
+
<rect id="rectangle-2" data-name="rectangle" class="cls-1" x="0" y=".26" width="282.95" height="282.95" rx="31.44" ry="31.44"/>
|
|
47
|
+
</clipPath>
|
|
48
|
+
<clipPath id="clippath-1">
|
|
49
|
+
<rect id="rectangle-3" data-name="rectangle" class="cls-1" x="0" y=".26" width="282.95" height="282.95" rx="31.44" ry="31.44"/>
|
|
50
|
+
</clipPath>
|
|
51
|
+
<clipPath id="clippath-2">
|
|
52
|
+
<path id="rectangle-4" data-name="rectangle" class="cls-1" d="M282.95,121.64v130.12c0,17.36-14.08,31.44-31.44,31.44H31.44C14.08,283.21,0,269.13,0,251.77V31.7C0,14.33,14.08.26,31.44.26h220.07c17.36,0,31.44,14.08,31.44,31.44v89.95"/>
|
|
53
|
+
</clipPath>
|
|
54
|
+
</defs>
|
|
55
|
+
<rect id="rectangle" class="cls-4" x="0" y=".26" width="282.95" height="282.95" rx="31.44" ry="31.44"/>
|
|
56
|
+
<g>
|
|
57
|
+
<path class="cls-8" d="M35.78,169.17l13.92,35.64h-5.24l-3.89-10.73h-15.07l-3.99,10.73h-4.84l13.87-35.64h5.24ZM39.08,190.09l-5.94-16.62h-.1l-6.04,16.62h12.08Z"/>
|
|
58
|
+
<path class="cls-8" d="M56.99,169.17v35.64h-4.24v-35.64h4.24Z"/>
|
|
59
|
+
<path class="cls-8" d="M67.97,179.01v3.49h.1c.7-1.43,1.8-2.47,3.29-3.12,1.5-.65,3.14-.97,4.94-.97,2,0,3.73.37,5.22,1.1,1.48.73,2.71,1.72,3.69,2.97.98,1.25,1.72,2.69,2.22,4.32.5,1.63.75,3.36.75,5.19s-.24,3.56-.72,5.19c-.48,1.63-1.21,3.05-2.2,4.27-.98,1.21-2.21,2.17-3.69,2.87-1.48.7-3.2,1.05-5.17,1.05-.63,0-1.34-.07-2.12-.2-.78-.13-1.56-.35-2.32-.65-.77-.3-1.49-.71-2.17-1.22-.68-.52-1.26-1.16-1.72-1.92h-.1v13.28h-4.24v-35.63h4.24ZM83.22,188.17c-.32-1.15-.8-2.17-1.45-3.07s-1.48-1.61-2.5-2.15c-1.02-.53-2.2-.8-3.57-.8-1.43,0-2.65.28-3.64.85-1,.57-1.81,1.31-2.45,2.22-.63.92-1.09,1.96-1.37,3.12-.28,1.17-.42,2.35-.42,3.54,0,1.26.15,2.49.45,3.67s.77,2.22,1.42,3.12,1.49,1.62,2.52,2.17c1.03.55,2.28.82,3.74.82s2.69-.28,3.67-.85c.98-.57,1.77-1.31,2.37-2.25s1.03-2,1.3-3.19c.27-1.2.4-2.43.4-3.69,0-1.2-.16-2.37-.47-3.52Z"/>
|
|
60
|
+
<path class="cls-8" d="M97.42,169.17v13.63h.1c.33-.8.8-1.47,1.4-2.02.6-.55,1.27-1,2.02-1.35s1.53-.61,2.35-.77c.81-.17,1.6-.25,2.37-.25,1.7,0,3.11.23,4.24.7,1.13.47,2.05,1.12,2.74,1.95.7.83,1.19,1.82,1.47,2.97.28,1.15.42,2.42.42,3.82v16.97h-4.24v-17.47c0-1.6-.47-2.86-1.4-3.79-.93-.93-2.21-1.4-3.84-1.4-1.3,0-2.42.2-3.37.6-.95.4-1.74.96-2.37,1.7-.63.73-1.11,1.59-1.42,2.57-.32.98-.47,2.05-.47,3.22v14.57h-4.24v-35.64h4.24Z"/>
|
|
61
|
+
<path class="cls-8" d="M143.79,204.71c-.73.43-1.75.65-3.05.65-1.1,0-1.97-.31-2.62-.92-.65-.62-.97-1.62-.97-3.02-1.16,1.4-2.52,2.4-4.07,3.02-1.55.62-3.22.92-5.02.92-1.17,0-2.27-.13-3.32-.4-1.05-.27-1.96-.68-2.72-1.25-.77-.57-1.37-1.31-1.82-2.22-.45-.91-.67-2.02-.67-3.32,0-1.46.25-2.66.75-3.59.5-.93,1.16-1.69,1.97-2.27.81-.58,1.75-1.02,2.79-1.32,1.05-.3,2.12-.55,3.22-.75,1.17-.23,2.27-.41,3.32-.52,1.05-.12,1.97-.28,2.77-.5.8-.22,1.43-.53,1.9-.95s.7-1.02.7-1.82c0-.93-.18-1.68-.52-2.25-.35-.57-.8-1-1.35-1.3s-1.17-.5-1.85-.6c-.68-.1-1.36-.15-2.02-.15-1.8,0-3.29.34-4.49,1.02-1.2.68-1.85,1.97-1.95,3.87h-4.24c.07-1.6.4-2.95,1-4.04.6-1.1,1.4-1.99,2.4-2.67,1-.68,2.14-1.17,3.42-1.47,1.28-.3,2.65-.45,4.12-.45,1.16,0,2.32.08,3.47.25s2.19.51,3.12,1.02,1.68,1.24,2.25,2.17c.56.93.85,2.14.85,3.63v13.25c0,1,.06,1.73.18,2.19.12.46.51.7,1.17.7.37,0,.8-.07,1.3-.2v3.29ZM136.9,191.48c-.53.4-1.23.69-2.1.87s-1.77.33-2.72.45c-.95.12-1.9.25-2.87.4-.97.15-1.83.39-2.6.72-.77.33-1.39.8-1.87,1.42-.48.61-.72,1.45-.72,2.51,0,.7.14,1.28.42,1.76.28.48.65.87,1.1,1.17s.97.51,1.57.65c.6.13,1.23.2,1.9.2,1.4,0,2.6-.19,3.59-.57,1-.38,1.81-.86,2.45-1.44.63-.58,1.1-1.21,1.4-1.89.3-.68.45-1.32.45-1.91v-4.32Z"/>
|
|
62
|
+
<path class="cls-8" d="M164.05,169.17c3.59,0,6.31.92,8.16,2.77s2.77,4.43,2.77,7.76-.92,5.92-2.77,7.79-4.57,2.78-8.16,2.75h-10.88v14.57h-4.74v-35.64h15.62ZM162.45,186.24c2.69.03,4.67-.52,5.91-1.65,1.25-1.13,1.87-2.76,1.87-4.89s-.62-3.75-1.87-4.87c-1.25-1.11-3.22-1.67-5.91-1.67h-9.28v13.08h9.28Z"/>
|
|
63
|
+
<path class="cls-8" d="M198.34,203.16c-1.93,1.46-4.36,2.2-7.29,2.2-2.06,0-3.85-.33-5.37-1s-2.79-1.6-3.82-2.79c-1.03-1.2-1.81-2.63-2.32-4.29s-.81-3.48-.87-5.44c0-1.96.3-3.76.9-5.39s1.44-3.04,2.52-4.24c1.08-1.2,2.36-2.13,3.84-2.79,1.48-.67,3.1-1,4.87-1,2.3,0,4.2.47,5.71,1.42,1.51.95,2.73,2.15,3.64,3.62.91,1.46,1.55,3.06,1.9,4.79.35,1.73.49,3.38.42,4.94h-19.31c-.03,1.13.1,2.2.4,3.22.3,1.02.78,1.91,1.45,2.7.67.78,1.51,1.41,2.55,1.87,1.03.47,2.25.7,3.64.7,1.8,0,3.27-.42,4.42-1.25,1.15-.83,1.9-2.1,2.27-3.79h4.19c-.57,2.9-1.81,5.08-3.74,6.54ZM197.31,186.59c-.38-.9-.9-1.67-1.55-2.32s-1.41-1.16-2.3-1.55c-.88-.38-1.86-.57-2.92-.57s-2.09.19-2.97.57c-.88.38-1.64.91-2.27,1.57-.63.67-1.13,1.44-1.5,2.32-.37.88-.58,1.82-.65,2.82h14.82c-.07-1-.29-1.95-.67-2.84Z"/>
|
|
64
|
+
<path class="cls-8" d="M211.26,179.01v3.49h.1c.7-1.43,1.8-2.47,3.29-3.12,1.5-.65,3.14-.97,4.94-.97,2,0,3.74.37,5.22,1.1s2.71,1.72,3.69,2.97c.98,1.25,1.72,2.69,2.22,4.32.5,1.63.75,3.36.75,5.19s-.24,3.56-.72,5.19c-.48,1.63-1.21,3.05-2.2,4.27-.98,1.21-2.21,2.17-3.69,2.87-1.48.7-3.2,1.05-5.17,1.05-.63,0-1.34-.07-2.12-.2-.78-.13-1.56-.35-2.32-.65-.77-.3-1.49-.71-2.17-1.22-.68-.52-1.26-1.16-1.72-1.92h-.1v13.28h-4.24v-35.63h4.24ZM226.51,188.17c-.32-1.15-.8-2.17-1.45-3.07-.65-.9-1.48-1.61-2.5-2.15-1.02-.53-2.2-.8-3.57-.8s-2.65.28-3.64.85c-1,.57-1.81,1.31-2.45,2.22-.63.92-1.09,1.96-1.37,3.12s-.42,2.35-.42,3.54c0,1.26.15,2.49.45,3.67s.77,2.22,1.42,3.12c.65.9,1.49,1.62,2.52,2.17s2.28.82,3.74.82,2.69-.28,3.67-.85c.98-.57,1.77-1.31,2.37-2.25.6-.93,1.03-2,1.3-3.19.27-1.2.4-2.43.4-3.69,0-1.2-.16-2.37-.47-3.52Z"/>
|
|
65
|
+
<path class="cls-8" d="M247.5,179.01v3.74h-5.14v16.02c0,.5.04.9.12,1.2.08.3.24.53.47.7.23.17.56.27.97.32s.96.08,1.62.08h1.95v3.74h-3.24c-1.1,0-2.04-.08-2.82-.22-.78-.15-1.42-.42-1.9-.82-.48-.4-.84-.96-1.07-1.7-.23-.73-.35-1.7-.35-2.89v-16.42h-4.39v-3.74h4.39v-7.74h4.24v7.74h5.14Z"/>
|
|
66
|
+
<path class="cls-8" d="M17.07,233.06v-3.99h28.5v3.99h-11.88v31.64h-4.74v-31.64h-11.88Z"/>
|
|
67
|
+
<path class="cls-8" d="M42.67,246.51c.53-1.65,1.33-3.08,2.4-4.29,1.06-1.21,2.38-2.17,3.94-2.87,1.56-.7,3.36-1.05,5.39-1.05s3.87.35,5.42,1.05c1.55.7,2.85,1.66,3.92,2.87,1.06,1.21,1.86,2.65,2.4,4.29.53,1.65.8,3.42.8,5.32s-.27,3.66-.8,5.29c-.53,1.63-1.33,3.05-2.4,4.27-1.07,1.22-2.37,2.16-3.92,2.84-1.55.68-3.35,1.02-5.42,1.02s-3.83-.34-5.39-1.02c-1.56-.68-2.88-1.63-3.94-2.84-1.06-1.21-1.86-2.64-2.4-4.27-.53-1.63-.8-3.39-.8-5.29s.27-3.67.8-5.32ZM46.99,255.99c.42,1.21.99,2.23,1.72,3.04.73.82,1.59,1.44,2.57,1.87.98.43,2.02.65,3.12.65s2.14-.22,3.12-.65c.98-.43,1.84-1.06,2.57-1.87.73-.81,1.31-1.83,1.72-3.04s.62-2.6.62-4.17-.21-2.95-.62-4.17c-.42-1.21-.99-2.24-1.72-3.07-.73-.83-1.59-1.46-2.57-1.9-.98-.43-2.02-.65-3.12-.65s-2.14.22-3.12.65c-.98.43-1.84,1.06-2.57,1.9-.73.83-1.31,1.86-1.72,3.07-.42,1.21-.62,2.6-.62,4.17s.21,2.95.62,4.17Z"/>
|
|
68
|
+
<path class="cls-8" d="M71.32,246.51c.53-1.65,1.33-3.08,2.4-4.29,1.06-1.21,2.38-2.17,3.94-2.87,1.56-.7,3.36-1.05,5.39-1.05s3.87.35,5.42,1.05c1.55.7,2.85,1.66,3.92,2.87,1.06,1.21,1.86,2.65,2.4,4.29.53,1.65.8,3.42.8,5.32s-.27,3.66-.8,5.29c-.53,1.63-1.33,3.05-2.4,4.27-1.07,1.22-2.37,2.16-3.92,2.84-1.55.68-3.35,1.02-5.42,1.02s-3.83-.34-5.39-1.02c-1.56-.68-2.88-1.63-3.94-2.84-1.06-1.21-1.86-2.64-2.4-4.27-.53-1.63-.8-3.39-.8-5.29s.27-3.67.8-5.32ZM75.63,255.99c.42,1.21.99,2.23,1.72,3.04.73.82,1.59,1.44,2.57,1.87.98.43,2.02.65,3.12.65s2.14-.22,3.12-.65c.98-.43,1.84-1.06,2.57-1.87.73-.81,1.31-1.83,1.72-3.04s.62-2.6.62-4.17-.21-2.95-.62-4.17c-.42-1.21-.99-2.24-1.72-3.07-.73-.83-1.59-1.46-2.57-1.9-.98-.43-2.02-.65-3.12-.65s-2.14.22-3.12.65c-.98.43-1.84,1.06-2.57,1.9-.73.83-1.31,1.86-1.72,3.07-.42,1.21-.62,2.6-.62,4.17s.21,2.95.62,4.17Z"/>
|
|
69
|
+
<path class="cls-8" d="M105.06,229.07v35.64h-4.24v-35.64h4.24Z"/>
|
|
70
|
+
<path class="cls-8" d="M114.89,258.94c.4.65.92,1.17,1.57,1.55.65.38,1.38.66,2.2.82.81.17,1.65.25,2.52.25.67,0,1.36-.05,2.1-.15.73-.1,1.41-.28,2.02-.55s1.12-.66,1.52-1.17.6-1.17.6-1.97c0-1.1-.42-1.93-1.25-2.5-.83-.57-1.87-1.02-3.12-1.37-1.25-.35-2.6-.67-4.07-.95-1.46-.28-2.82-.68-4.07-1.2-1.25-.52-2.29-1.24-3.12-2.17-.83-.93-1.25-2.23-1.25-3.89,0-1.3.29-2.41.87-3.34.58-.93,1.33-1.69,2.25-2.27.92-.58,1.95-1.01,3.09-1.3,1.15-.28,2.29-.42,3.42-.42,1.46,0,2.81.12,4.04.38,1.23.25,2.32.68,3.27,1.3.95.62,1.7,1.45,2.27,2.5.57,1.05.9,2.35,1,3.92h-4.24c-.07-.83-.28-1.52-.65-2.07-.37-.55-.83-.99-1.4-1.32-.57-.33-1.19-.57-1.87-.72-.68-.15-1.37-.22-2.07-.22-.63,0-1.27.05-1.92.15-.65.1-1.24.27-1.77.52-.53.25-.97.58-1.3,1-.33.42-.5.96-.5,1.62,0,.73.26,1.34.77,1.82.52.48,1.17.88,1.97,1.2.8.32,1.7.58,2.7.8,1,.22,2,.44,2.99.67,1.06.23,2.1.52,3.12.85,1.01.33,1.91.77,2.7,1.32.78.55,1.41,1.24,1.9,2.07.48.83.72,1.86.72,3.09,0,1.56-.32,2.86-.97,3.89-.65,1.03-1.5,1.86-2.55,2.5-1.05.63-2.23,1.07-3.54,1.32-1.31.25-2.62.37-3.92.37-1.43,0-2.79-.15-4.09-.45-1.3-.3-2.45-.79-3.44-1.47-1-.68-1.8-1.58-2.4-2.7-.6-1.11-.93-2.47-1-4.07h4.24c.03.93.25,1.72.65,2.37Z"/>
|
|
71
|
+
</g>
|
|
72
|
+
<g>
|
|
73
|
+
<polyline class="cls-3" points="282.95 121.64 261.77 142.83 217.3 98.37 283.46 32.21"/>
|
|
74
|
+
<line class="cls-3" x1="283.46" y1="32.21" x2="282.95" y2="121.64"/>
|
|
75
|
+
<g class="cls-10">
|
|
76
|
+
<rect class="cls-2" x="-30" y=".24" width="251.51" height="62.88" transform="translate(5.65 76.99) rotate(-45)"/>
|
|
77
|
+
</g>
|
|
78
|
+
<g class="cls-5">
|
|
79
|
+
<rect class="cls-7" x="80.05" y=".24" width="251.51" height="62.88" transform="translate(37.88 154.8) rotate(-45)"/>
|
|
80
|
+
</g>
|
|
81
|
+
<g class="cls-6">
|
|
82
|
+
<rect class="cls-9" x="-144.31" y=".24" width="251.51" height="62.88" transform="translate(-27.83 -3.84) rotate(-45)"/>
|
|
83
|
+
</g>
|
|
84
|
+
</g>
|
|
85
|
+
</svg>
|