cortado-ms 0.16.2__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 (49) hide show
  1. cortado_ms-0.16.2/.github/workflows/black.yml +11 -0
  2. cortado_ms-0.16.2/.github/workflows/publish.yml +90 -0
  3. cortado_ms-0.16.2/.github/workflows/tests.yml +41 -0
  4. cortado_ms-0.16.2/.gitignore +160 -0
  5. cortado_ms-0.16.2/.pre-commit-config.yaml +6 -0
  6. cortado_ms-0.16.2/CONTRIBUTING.md +58 -0
  7. cortado_ms-0.16.2/LICENSE.md +209 -0
  8. cortado_ms-0.16.2/PKG-INFO +96 -0
  9. cortado_ms-0.16.2/README.md +60 -0
  10. cortado_ms-0.16.2/cortado/__init__.py +27 -0
  11. cortado_ms-0.16.2/cortado/backends/__init__.py +14 -0
  12. cortado_ms-0.16.2/cortado/backends/blocking.py +555 -0
  13. cortado_ms-0.16.2/cortado/backends/counting.py +103 -0
  14. cortado_ms-0.16.2/cortado/backends/crema.py +169 -0
  15. cortado_ms-0.16.2/cortado/backends/none.py +35 -0
  16. cortado_ms-0.16.2/cortado/backends/registry.py +103 -0
  17. cortado_ms-0.16.2/cortado/confidence.py +418 -0
  18. cortado_ms-0.16.2/cortado/protein/__init__.py +6 -0
  19. cortado_ms-0.16.2/cortado/protein/confidence.py +135 -0
  20. cortado_ms-0.16.2/cortado/protein/scoring.py +245 -0
  21. cortado_ms-0.16.2/cortado/utils.py +365 -0
  22. cortado_ms-0.16.2/cortado_ms.egg-info/PKG-INFO +96 -0
  23. cortado_ms-0.16.2/cortado_ms.egg-info/SOURCES.txt +48 -0
  24. cortado_ms-0.16.2/cortado_ms.egg-info/dependency_links.txt +1 -0
  25. cortado_ms-0.16.2/cortado_ms.egg-info/requires.txt +23 -0
  26. cortado_ms-0.16.2/cortado_ms.egg-info/top_level.txt +2 -0
  27. cortado_ms-0.16.2/data/2017dec27_overlap_dia_6b_rep1_604to616.dia.features.txt +1771 -0
  28. cortado_ms-0.16.2/docs/Makefile +20 -0
  29. cortado_ms-0.16.2/docs/_static/cortado_logo.png +0 -0
  30. cortado_ms-0.16.2/docs/backends.rst +18 -0
  31. cortado_ms-0.16.2/docs/conf.py +46 -0
  32. cortado_ms-0.16.2/docs/index.rst +48 -0
  33. cortado_ms-0.16.2/docs/quickstart.rst +48 -0
  34. cortado_ms-0.16.2/pyproject.toml +29 -0
  35. cortado_ms-0.16.2/setup.cfg +49 -0
  36. cortado_ms-0.16.2/setup.py +7 -0
  37. cortado_ms-0.16.2/tests/__init__.py +0 -0
  38. cortado_ms-0.16.2/tests/conftest.py +429 -0
  39. cortado_ms-0.16.2/tests/unit_tests/__init__.py +0 -0
  40. cortado_ms-0.16.2/tests/unit_tests/backends/__init__.py +0 -0
  41. cortado_ms-0.16.2/tests/unit_tests/backends/test_blocking.py +164 -0
  42. cortado_ms-0.16.2/tests/unit_tests/backends/test_counting.py +46 -0
  43. cortado_ms-0.16.2/tests/unit_tests/backends/test_crema.py +145 -0
  44. cortado_ms-0.16.2/tests/unit_tests/backends/test_registry.py +11 -0
  45. cortado_ms-0.16.2/tests/unit_tests/protein/__init__.py +0 -0
  46. cortado_ms-0.16.2/tests/unit_tests/protein/test_confidence.py +133 -0
  47. cortado_ms-0.16.2/tests/unit_tests/protein/test_scoring.py +127 -0
  48. cortado_ms-0.16.2/tests/unit_tests/test_confidence.py +186 -0
  49. cortado_ms-0.16.2/tests/unit_tests/test_utils.py +250 -0
@@ -0,0 +1,11 @@
1
+ name: Lint
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ lint:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - uses: actions/setup-python@v2
11
+ - uses: psf/black@stable
@@ -0,0 +1,90 @@
1
+ # This workflows will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
3
+
4
+ name: Deploy Packages
5
+
6
+ on:
7
+ release:
8
+ types: [created]
9
+
10
+ jobs:
11
+ codeartifact-deploy:
12
+ name: Upload release to CodeArtifact
13
+ if: ${{ github.event_name == 'release' }}
14
+ runs-on: [self-hosted, aws-master, X64]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v2
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v2
20
+ with:
21
+ python-version: '3.x'
22
+ - name: Install dependencies
23
+ run: |
24
+ pip config unset global.index-url || true
25
+ python -m pip install --upgrade pip
26
+ pip install setuptools wheel twine build 'awscli>=1.18.83'
27
+ aws codeartifact login --tool twine --repository seer_ds --domain seer --domain-owner 718843040700 --region us-west-2
28
+ - name: Build and publish
29
+ run: |
30
+ python -m build --sdist --wheel .
31
+ twine upload --repository codeartifact dist/*
32
+
33
+ pypi-deploy:
34
+ name: Upload release to PyPI
35
+ if: ${{ github.event_name == 'release' }}
36
+ runs-on: ubuntu-latest
37
+ permissions:
38
+ contents: read
39
+ id-token: write
40
+ environment:
41
+ name: pypi
42
+ url: https://pypi.org/p/cortado-ms
43
+ steps:
44
+ - uses: actions/checkout@v2
45
+ - name: Set up Python
46
+ uses: actions/setup-python@v2
47
+ with:
48
+ python-version: '3.x'
49
+ - name: Install dependencies
50
+ run: |
51
+ python -m pip install --upgrade pip
52
+ pip install setuptools wheel twine build
53
+ - name: Build package
54
+ run: python -m build --sdist --wheel .
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+
58
+ build-docs:
59
+ runs-on: ubuntu-latest
60
+ needs: pypi-deploy
61
+ steps:
62
+ - name: Checkout
63
+ uses: actions/checkout@v4
64
+ - name: Set up Python
65
+ uses: actions/setup-python@v2
66
+ with:
67
+ python-version: '3.x'
68
+ - name: Set up Sphinx + AutoAPI
69
+ run: pip install sphinx sphinx-autoapi
70
+ - name: Render documentation
71
+ run: |
72
+ make -C docs html
73
+ - name: Upload artifact
74
+ uses: actions/upload-pages-artifact@v3
75
+ with:
76
+ path: docs/_build/html/
77
+
78
+ deploy-docs:
79
+ runs-on: ubuntu-latest
80
+ needs: build-docs
81
+ environment:
82
+ name: github-pages
83
+ url: ${{steps.deployment.outputs.page_url}}
84
+ permissions:
85
+ pages: write
86
+ id-token: write
87
+ steps:
88
+ - name: Deploy to GitHub Pages
89
+ id: deployment
90
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,41 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: tests
5
+
6
+ on:
7
+ push:
8
+ branches: [ main ]
9
+ pull_request:
10
+ branches: [ main ]
11
+ schedule:
12
+ - cron: "0 0 1 1/1 *" # Run monthly
13
+
14
+ jobs:
15
+ build:
16
+ runs-on: [self-hosted, aws-master, X64]
17
+ # strategy:
18
+ # matrix:
19
+ # os: [ubuntu-latest, windows-latest, macos-latest]
20
+
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+ - name: Set up Python 3.10
24
+ uses: actions/setup-python@v2
25
+ with:
26
+ python-version: "3.10"
27
+ - name: Install dependencies
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ pip install flake8 pytest wheel
31
+ aws codeartifact login --tool pip --repository seer_ds --domain seer --domain-owner 718843040700 --region us-west-2
32
+ pip install '.[test]'
33
+ - name: Lint with flake8
34
+ run: |
35
+ # stop the build if there are Python syntax errors or undefined names
36
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
37
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
38
+ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
39
+ - name: Test with pytest
40
+ run: |
41
+ pytest
@@ -0,0 +1,160 @@
1
+ .idea
2
+ _build
3
+
4
+
5
+ # Sphinx generated docs
6
+ docs/_build/
7
+ docs/_autosummary/
8
+
9
+
10
+ # Created by https://www.toptal.com/developers/gitignore/api/python
11
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python
12
+
13
+ ### Python ###
14
+ # Byte-compiled / optimized / DLL files
15
+ __pycache__/
16
+ *.py[cod]
17
+ *$py.class
18
+
19
+ # C extensions
20
+ *.so
21
+
22
+ # Distribution / packaging
23
+ .Python
24
+ build/
25
+ develop-eggs/
26
+ dist/
27
+ downloads/
28
+ eggs/
29
+ .eggs/
30
+ parts/
31
+ sdist/
32
+ var/
33
+ wheels/
34
+ pip-wheel-metadata/
35
+ share/python-wheels/
36
+ *.egg-info/
37
+ .installed.cfg
38
+ *.egg
39
+ MANIFEST
40
+
41
+ # PyInstaller
42
+ # Usually these files are written by a python script from a template
43
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
44
+ *.manifest
45
+ *.spec
46
+
47
+ # Installer logs
48
+ pip-log.txt
49
+ pip-delete-this-directory.txt
50
+
51
+ # Unit test / coverage reports
52
+ htmlcov/
53
+ .tox/
54
+ .nox/
55
+ .coverage
56
+ .coverage.*
57
+ .cache
58
+ nosetests.xml
59
+ coverage.xml
60
+ *.cover
61
+ *.py,cover
62
+ .hypothesis/
63
+ .pytest_cache/
64
+ pytestdebug.log
65
+
66
+ # Translations
67
+ *.mo
68
+ *.pot
69
+
70
+ # Django stuff:
71
+ *.log
72
+ local_settings.py
73
+ db.sqlite3
74
+ db.sqlite3-journal
75
+
76
+ # Flask stuff:
77
+ instance/
78
+ .webassets-cache
79
+
80
+ # Scrapy stuff:
81
+ .scrapy
82
+
83
+ # Sphinx documentation
84
+ docs/_build/
85
+ doc/_build/
86
+
87
+ # PyBuilder
88
+ target/
89
+
90
+ # Jupyter Notebook
91
+ .ipynb_checkpoints
92
+
93
+ # IPython
94
+ profile_default/
95
+ ipython_config.py
96
+
97
+ # pyenv
98
+ .python-version
99
+
100
+ # pipenv
101
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
102
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
103
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
104
+ # install all needed dependencies.
105
+ #Pipfile.lock
106
+
107
+ # poetry
108
+ #poetry.lock
109
+
110
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
111
+ __pypackages__/
112
+
113
+ # Celery stuff
114
+ celerybeat-schedule
115
+ celerybeat.pid
116
+
117
+ # SageMath parsed files
118
+ *.sage.py
119
+
120
+ # Environments
121
+ # .env
122
+ .env/
123
+ .venv/
124
+ env/
125
+ venv/
126
+ ENV/
127
+ env.bak/
128
+ venv.bak/
129
+ pythonenv*
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # operating system-related files
153
+ *.DS_Store #file properties cache/storage on macOS
154
+ Thumbs.db #thumbnail cache on Windows
155
+
156
+ # profiling data
157
+ .prof
158
+
159
+
160
+ # End of https://www.toptal.com/developers/gitignore/api/python
@@ -0,0 +1,6 @@
1
+ repos:
2
+ - repo: https://github.com/psf/black
3
+ rev: stable # Replace by any tag/version: https://github.com/psf/black/tags
4
+ hooks:
5
+ - id: black
6
+ language_version: python3 # Should be a command that runs python3.6+
@@ -0,0 +1,58 @@
1
+ ## Contributing to `cortado`
2
+
3
+ ### Setting up for development
4
+
5
+ 1. Clone the repository
6
+
7
+ ```shell
8
+ git clone git@github.com:seerbio/cortado.git
9
+ cd cortado
10
+ ```
11
+
12
+ Alternatively, create a fork through GitHub and clone that repository.
13
+
14
+ 2. Set up `pre-commit` hook (for code formatting):
15
+
16
+ ```shell
17
+ pip install pre-commit
18
+ pre-commit install
19
+ ```
20
+
21
+ This will ensure all Python sources are consistently formatted whenever
22
+ you commit to the repository.
23
+
24
+ ### Developing changes
25
+
26
+ 1. Create a branch
27
+
28
+ ```shell
29
+ git checkout main
30
+ git pull --ff-only --tags origin main
31
+ git checkout -b my-feature-branch main
32
+ ```
33
+
34
+ 2. Develop your changes. Commit often, with meaningful messages for each commit.
35
+ Be sure to develop unit tests and ensure that all existing tests pass:
36
+
37
+ ```shell
38
+ pytest
39
+ ```
40
+
41
+ 3. Push changes back to the repository (or your fork).
42
+ 4. Create a pull request through GitHub. Assign yourself to it and add appropriate
43
+ reviewers.
44
+
45
+ ### Releasing `cortado`
46
+
47
+ After changes are developed, reviewed, and merged, it's possible to create a
48
+ release automatically using GitHub.
49
+
50
+ 1. Determine the appropriate [semantic version](https://semver.org/) for the
51
+ new release. Check the GitHub repo's "Releases" section to see what the most
52
+ recent release number is and consider the changes made.
53
+ 2. Create a Release through the GitHub UI. Choose to create a new tag targeting
54
+ the `main` branch and name it for the new version number, i.e. `v3.4.5`.
55
+ Use the same string as the release title. Click "generate release notes" to
56
+ automatically create a list of PRs since the last release.
57
+ 3. After creating the release, the package will be automatically built and
58
+ deployed with the new version number.
@@ -0,0 +1,209 @@
1
+ **LICENSE**
2
+
3
+ Use of the Fulcrum Pipeline™ framework software, including any portion
4
+ thereof, is licensed under a Mandatory Grant-Back Apache 2.0 license, as
5
+ modified by the Commons Clause (collectively, the "**License**").
6
+
7
+ You may not use the Fulcrum Pipeline™ software, including any portion
8
+ thereof, except in compliance with the License. See the entire License
9
+ for specific language governing permissions and limitations under the
10
+ License.
11
+
12
+ ------------------------------------------------------------------------
13
+
14
+ **Mandatory Grant-Back** **Apache 2.0 License, as modified by the Commons Clause May 2026**
15
+
16
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
17
+
18
+ **1. Definitions**.
19
+
20
+ "**License**" shall mean the terms and conditions for use,
21
+ reproduction, and distribution as defined by Sections 1 through 10 of
22
+ this document.
23
+
24
+ "**Licensor**" shall mean the copyright owner or entity authorized by
25
+ the copyright owner that is granting the License.
26
+
27
+ "**Original Licensor**" shall mean Seer, Inc., or any assignee of or
28
+ successor in interest to Seer, Inc.
29
+
30
+ "**Legal Entity**" shall mean the union of the acting entity and all
31
+ other entities that control, are controlled by, or are under common
32
+ control with that entity. For the purposes of this definition,
33
+ "**control**" means (i) the power, direct or indirect, to cause the
34
+ direction or management of such entity, whether by contract or
35
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
36
+ outstanding shares, or (iii) beneficial ownership of such entity.
37
+
38
+ "**You**" (or "**Your**") shall mean an individual or Legal Entity
39
+ exercising permissions granted by this License.
40
+
41
+ "**Source**" form shall mean the preferred form for making
42
+ modifications, including but not limited to software source code,
43
+ documentation source, and configuration files.
44
+
45
+ "**Object**" form shall mean any form resulting from mechanical
46
+ transformation or translation of a Source form, including but not
47
+ limited to compiled object code, generated documentation, and
48
+ conversions to other media types.
49
+
50
+ "**Work**" shall mean the work of authorship, whether in Source or
51
+ Object form, made available under the License, as indicated by a
52
+ copyright notice that is included in or attached to the work.
53
+
54
+ "**Derivative Works**" shall mean any work, whether in Source or
55
+ Object form, that is based on (or derived from) the Work and for which
56
+ the editorial revisions, annotations, elaborations, or other
57
+ modifications represent, as a whole, an original work of authorship. For
58
+ the purposes of this License, Derivative Works shall not include works,
59
+ including known or novel plugins, that remain separable from, or merely
60
+ link (or bind by name) to the interfaces of, the Work and Derivative
61
+ Works thereof.
62
+
63
+ "**Contribution**" shall mean any work of authorship, including the
64
+ original version of the Work and any modifications or additions to that
65
+ Work or Derivative Works thereof, that is intentionally submitted to
66
+ Licensor for inclusion in the Work by the copyright owner or by an
67
+ individual or Legal Entity authorized to submit on behalf of the
68
+ copyright owner. For the purposes of this definition, "**submitted**"
69
+ means any form of electronic, verbal, or written communication sent to
70
+ the Licensor or its representatives, including but not limited to
71
+ communication on electronic mailing lists, source code control systems,
72
+ and issue tracking systems that are managed by, or on behalf of, the
73
+ Licensor for the purpose of discussing and improving the Work.
74
+
75
+ "**Contributor**" shall mean Licensor and any individual or Legal
76
+ Entity on behalf of whom a Contribution has been received by Licensor
77
+ and subsequently incorporated within the Work.
78
+
79
+ "**Sell**" shall mean practicing any or all of the rights granted to
80
+ You under the License to provide to third parties, for a fee or other
81
+ consideration (including without limitation fees for hosting or
82
+ consulting/ support services related to the Work or modified Work,
83
+ including Derivative Work(s) thereof), a product or service whose value
84
+ derives, entirely or substantially, from the functionality of the Work,
85
+ modified Work, or Derivative Work(s).
86
+
87
+ **2. Grant of Copyright License**. Subject to the terms and conditions
88
+ of this License, each Contributor hereby grants to You a perpetual,
89
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright
90
+ license to reproduce, prepare Derivative Works of, publicly display,
91
+ publicly perform, sublicense, and distribute the Work and such
92
+ Derivative Works in Source or Object form.
93
+
94
+ **3. Grant of Patent License**. Subject to the terms and conditions of
95
+ this License, each Contributor hereby grants to You a perpetual,
96
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except
97
+ as stated in this section) patent license to make, have made, use, offer
98
+ to sell, sell, import, and otherwise transfer the Work, where such
99
+ license applies only to those patent claims licensable by such
100
+ Contributor that are necessarily infringed by their Contribution(s)
101
+ alone or by combination of their Contribution(s) with the Work to which
102
+ such Contribution(s) was submitted. If You institute patent litigation
103
+ against any entity (including a cross-claim or counterclaim in a
104
+ lawsuit) alleging that the Work or a Contribution incorporated within
105
+ the Work constitutes direct or contributory patent infringement, then
106
+ any patent licenses granted to You under this License for that Work
107
+ shall terminate as of the date such litigation is filed.
108
+
109
+ **4. Redistribution**. You may reproduce and distribute copies of the
110
+ Work or Derivative Works thereof in any medium, with or without
111
+ modifications, and in Source or Object form, provided that You meet the
112
+ following conditions:
113
+
114
+ a) You must give any other recipients of the Work or Derivative Works a
115
+ copy of this License; and
116
+
117
+ b) You must cause any modified files to carry prominent notices stating
118
+ that You changed the files; and
119
+
120
+ c) You must retain, in the Source form of any Derivative Works that You
121
+ distribute, all copyright, patent, trademark, and attribution
122
+ notices from the Source form of the Work, excluding those notices
123
+ that do not pertain to any part of the Derivative Works; and
124
+
125
+ d) If the Work includes a "**NOTICE**" text file as part of its
126
+ distribution, then any Derivative Works that You distribute must
127
+ include a readable copy of the attribution notices contained within
128
+ such NOTICE file, excluding those notices that do not pertain to any
129
+ part of the Derivative Works, in at least one of the following
130
+ places: within a NOTICE text file distributed as part of the
131
+ Derivative Works; within the Source form or documentation, if
132
+ provided along with the Derivative Works; or, within a display
133
+ generated by the Derivative Works, if and wherever such third-party
134
+ notices normally appear. The contents of the NOTICE file are for
135
+ informational purposes only and do not modify the License. You may
136
+ add Your own attribution notices within Derivative Works that You
137
+ distribute, alongside or as an addendum to the NOTICE text from the
138
+ Work, provided that such additional attribution notices cannot be
139
+ construed as modifying the License.
140
+
141
+ e) To the extent that You generate any Derivative Works or otherwise
142
+ modify the Work, You must submit such modified Work or Derivative
143
+ Work(s) to the Original Licensor and such submitted modified Work or
144
+ Derivative Work(s) shall constitute a Contribution as defined
145
+ herein.
146
+
147
+ You may add Your own copyright statement to Your modifications and may
148
+ provide additional or different license terms and conditions for use,
149
+ reproduction, or distribution of Your modifications, provided Your use,
150
+ reproduction, and distribution of the modified Work (or Derivative Work)
151
+ otherwise complies with the conditions stated in this License.
152
+
153
+ **5. Submission of Contributions**. Unless You explicitly state
154
+ otherwise, any Contribution intentionally submitted for inclusion in the
155
+ Work by You to the Licensor shall be under the terms and conditions of
156
+ this License, without any additional terms or conditions; provided that
157
+ (a) any Contribution to Original Licensor shall carry with it a
158
+ perpetual, worldwide, non-exclusive, no-charge, royalty-free,
159
+ irrevocable copyright license to reproduce, prepare Derivative Works of,
160
+ publicly display, publicly perform, sublicense, and distribute such
161
+ Contribution in Source or Object form, and (b) Original Licensor's use
162
+ of such Contribution shall not be subject to Section 10 of this License.
163
+
164
+ **6. Trademarks**. This License does not grant permission to use the
165
+ trade names, trademarks, service marks, or product names of the
166
+ Licensor, except as required for reasonable and customary use in
167
+ describing the origin of the Work and reproducing the content of the
168
+ NOTICE file.
169
+
170
+ **7. Disclaimer of Warranty**. Unless required by applicable law or
171
+ agreed to in writing, Licensor provides the Work (and each Contributor
172
+ provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR
173
+ CONDITIONS OF ANY KIND, either express or implied, including, without
174
+ limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
175
+ MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
176
+ responsible for determining the appropriateness of using or
177
+ redistributing the Work and assume any risks associated with Your
178
+ exercise of permissions under this License.
179
+
180
+ **8. Limitation of Liability**. In no event and under no legal theory,
181
+ whether in tort (including negligence), contract, or otherwise, unless
182
+ required by applicable law (such as deliberate and grossly negligent
183
+ acts) or agreed to in writing, shall any Contributor be liable to You
184
+ for damages, including any direct, indirect, special, incidental, or
185
+ consequential damages of any character arising as a result of this
186
+ License or out of the use or inability to use the Work (including but
187
+ not limited to damages for loss of goodwill, work stoppage, computer
188
+ failure or malfunction, or any and all other commercial damages or
189
+ losses), even if such Contributor has been advised of the possibility of
190
+ such damages.
191
+
192
+ **9. Accepting Warranty or Additional Liability**. While redistributing
193
+ the Work or Derivative Works thereof, You may choose to offer, and
194
+ charge a fee for, acceptance of support, warranty, indemnity, or other
195
+ liability obligations and/or rights consistent with this License.
196
+ However, in accepting such obligations, You may act only on Your own
197
+ behalf and on Your sole responsibility, not on behalf of any other
198
+ Contributor, and only if You agree to indemnify, defend, and hold each
199
+ Contributor harmless for any liability incurred by, or claims asserted
200
+ against, such Contributor by reason of your accepting any such warranty
201
+ or additional liability.
202
+
203
+ **10. "Commons Clause" License Condition.** The Work is provided to You
204
+ by the Licensor under the License, subject to the following condition.
205
+ Without limiting other conditions in the License, the grant of rights
206
+ under the License will not include, and the License does not grant to
207
+ You, the right to Sell the Work or Derivative Works thereof. Any license
208
+ notice or attribution required by the License must also include this
209
+ Commons Clause License Condition.
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.4
2
+ Name: cortado-ms
3
+ Version: 0.16.2
4
+ Summary: Confidence estimation for extreme-scale proteomics experiments
5
+ Home-page: https://github.com/seerbio/cortado
6
+ Author: Seth Just
7
+ Author-email: sjust@seer.bio
8
+ Project-URL: Bug Tracker, https://github.com/seerbio/cortado/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
12
+ Requires-Python: >=3.6
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.md
15
+ Requires-Dist: numpy>=1.18.1
16
+ Requires-Dist: pandas>=1.3.0
17
+ Requires-Dist: pyspark[sql]<4,>=3.3.1
18
+ Requires-Dist: wheely-mammoth<2.0.0,>=0.16.1
19
+ Requires-Dist: crema-ms<2.0.0,>=0.0.6
20
+ Requires-Dist: importlib-metadata>=5.1.0
21
+ Requires-Dist: scipy<2.0.0
22
+ Provides-Extra: docs
23
+ Requires-Dist: numpydoc>=1.0.0; extra == "docs"
24
+ Requires-Dist: sphinx-argparse>=0.2.5; extra == "docs"
25
+ Requires-Dist: sphinx-rtd-theme>=0.5.0; extra == "docs"
26
+ Requires-Dist: nbsphinx>=0.7.1; extra == "docs"
27
+ Requires-Dist: ipykernel>=5.3.0; extra == "docs"
28
+ Requires-Dist: recommonmark>=0.5.0; extra == "docs"
29
+ Provides-Extra: test
30
+ Requires-Dist: pytest; extra == "test"
31
+ Requires-Dist: polars; extra == "test"
32
+ Provides-Extra: dev
33
+ Requires-Dist: pre-commit>=2.7.1; extra == "dev"
34
+ Requires-Dist: black>=20.8b1; extra == "dev"
35
+ Dynamic: license-file
36
+
37
+ <img alt="cortado logo" src="./docs/_static/cortado_logo.png" height="128" align="left" style="margin: 8px">
38
+
39
+ **cortado** is a Python package that implements various methods to estimate
40
+ false discovery rates (FDR) in extreme-scale mass spectrometry proteomics
41
+ experiments. cortado is focused on gathering and reducing datasets to enable
42
+ applying efficient implementations to estimate FDR. An additional focus is
43
+ supporting peptide-centric searching through the "mixture-maximum" (MixMax)
44
+ approach, which also supports spectrum-centric searches.
45
+
46
+ Cortado is designed to be easy-to-use and flexible. Currently the following modes
47
+ are supported:
48
+ - Global PSM FDR
49
+ - Global peptide or precursor FDR
50
+ - MixMax _q_-value estimation
51
+ - Protein scoring by rolling up PSM scores
52
+ - Protein _q_-value estimation
53
+
54
+ ## Installation
55
+
56
+ cortado requires Python 3.8+ and can be installed with pip:
57
+
58
+ ```shell
59
+ pip install cortado-ms
60
+ ```
61
+
62
+ ## Basic Usage
63
+
64
+ Using `cortado` requires that you collect a dataset of PSMs, which can easily be
65
+ accomplished with the
66
+ [`wheely-mammoth` library](https://github.com/seerbio/wheely-mammoth), which is
67
+ installed when you install `cortado-ms`:
68
+
69
+ ```pycon
70
+ >>> from wheely.mammoth.parsers import read_encyclopedia_features
71
+ >>> ds = read_encyclopedia_features("data/*.features.txt")
72
+ ```
73
+
74
+ You can then compute _q_-values using the `assign_confidence` function:
75
+
76
+ ```pycon
77
+ >>> from cortado import assign_confidence
78
+ >>> conf = assign_confidence(ds, "primary", desc=False)
79
+ >>> print(f"pi0={100*conf.pi0:.2f}%")
80
+ pi0=36.74%
81
+ >>> conf.data.toPandas()[["primary", "sequence", "q-value"]]
82
+ primary sequence q-value
83
+ 0 43.783160 -.LSLEGDHSTPPSAYGSVK.- 0.000000
84
+ 1 41.212322 -.NGPLEVAGAAVSAGHGLPAK.- 0.000000
85
+ 2 36.081665 -.IMDPNIVGSEHYDVAR.- 0.000000
86
+ 3 34.730186 -.TTHYTPLAC[+57.0214635]GSNPLKR.- 0.000000
87
+ 4 34.666630 -.SGPKPFSAPKPQTSPSPK.- 0.000000
88
+ .. ... ... ...
89
+ 827 8.150498 -.FGVEQDRMDK.- 0.414025
90
+ 828 8.065474 -.QYYYSADGSR.- 0.416572
91
+ 829 8.028464 -.APHDFQFVQK.- 0.416572
92
+ 830 7.946067 -.KLYEDAQMAR.- 0.417337
93
+ 831 7.632076 -.LTC[+57.0214635]PC[+57.0214635]C[+57.0214635... 0.420368
94
+
95
+ [832 rows x 3 columns]
96
+ ```