instanexus 0.1.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 (131) hide show
  1. instanexus-0.1.0/.github/workflows/cdci.yml +33 -0
  2. instanexus-0.1.0/.gitignore +26 -0
  3. instanexus-0.1.0/LICENSE +21 -0
  4. instanexus-0.1.0/PKG-INFO +238 -0
  5. instanexus-0.1.0/README.md +214 -0
  6. instanexus-0.1.0/environment.linux.yml +45 -0
  7. instanexus-0.1.0/environment.osx-arm64.yaml +42 -0
  8. instanexus-0.1.0/examples/README.md +1 -0
  9. instanexus-0.1.0/examples/dbg_workflow.ipynb +933 -0
  10. instanexus-0.1.0/examples/dbg_workflow_with_figures.ipynb +1008 -0
  11. instanexus-0.1.0/examples/greedy_workflow.ipynb +807 -0
  12. instanexus-0.1.0/examples/greedy_workflow_with_figures.ipynb +807 -0
  13. instanexus-0.1.0/examples/hybrid_workflow.ipynb +1531 -0
  14. instanexus-0.1.0/examples/hybrid_workflow_with_selector.ipynb +1572 -0
  15. instanexus-0.1.0/fasta/antibodies_normalized.fasta +70 -0
  16. instanexus-0.1.0/fasta/bsa.fasta +3 -0
  17. instanexus-0.1.0/fasta/contaminants.fasta +2724 -0
  18. instanexus-0.1.0/fasta/ma3.fasta +14 -0
  19. instanexus-0.1.0/git +0 -0
  20. instanexus-0.1.0/images/instanexus_logo 2.svg +75 -0
  21. instanexus-0.1.0/images/instanexus_logo.pdf +0 -0
  22. instanexus-0.1.0/images/instanexus_logo.svg +33 -0
  23. instanexus-0.1.0/images/instanexus_panel.pdf +0 -0
  24. instanexus-0.1.0/images/instanexus_panel.png +0 -0
  25. instanexus-0.1.0/images/instanexus_workflow.png +0 -0
  26. instanexus-0.1.0/inputs/BIND17.csv +30923 -0
  27. instanexus-0.1.0/inputs/NB10.csv +31932 -0
  28. instanexus-0.1.0/inputs/NB6.csv +32123 -0
  29. instanexus-0.1.0/inputs/bsa.csv +109359 -0
  30. instanexus-0.1.0/inputs/ma1.csv +78322 -0
  31. instanexus-0.1.0/json/colors.json +18 -0
  32. instanexus-0.1.0/json/gridsearch_params.json +18 -0
  33. instanexus-0.1.0/json/protease_colors.json +12 -0
  34. instanexus-0.1.0/json/sample_metadata.json +152 -0
  35. instanexus-0.1.0/nextflow/main.nf +28 -0
  36. instanexus-0.1.0/nextflow/modules/assembly_dbg.nf +22 -0
  37. instanexus-0.1.0/nextflow/modules/preprocess.nf +14 -0
  38. instanexus-0.1.0/nextflow/nextflow.config +32 -0
  39. instanexus-0.1.0/notebooks/cdr_plots.ipynb +311 -0
  40. instanexus-0.1.0/notebooks/composite_score.ipynb +2004 -0
  41. instanexus-0.1.0/notebooks/heatmaps_gridsearch.ipynb +487 -0
  42. instanexus-0.1.0/notebooks/notebook_results/contigs_chymotrypsin_elastase_stats.json +15 -0
  43. instanexus-0.1.0/notebooks/notebook_results/contigs_chymotrypsin_stats.json +15 -0
  44. instanexus-0.1.0/notebooks/notebook_results/contigs_chymotrypsin_trypsin_elastase_stats.json +15 -0
  45. instanexus-0.1.0/notebooks/notebook_results/contigs_chymotrypsin_trypsin_stats.json +15 -0
  46. instanexus-0.1.0/notebooks/notebook_results/contigs_elastase_stats.json +15 -0
  47. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_chymotrypsin_elastase_stats.json +15 -0
  48. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_chymotrypsin_stats.json +15 -0
  49. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_chymotrypsin_trypsin_elastase_stats.json +15 -0
  50. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_chymotrypsin_trypsin_stats.json +15 -0
  51. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_elastase_stats.json +15 -0
  52. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_stats.json +15 -0
  53. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_trypsin_elastase_stats.json +15 -0
  54. instanexus-0.1.0/notebooks/notebook_results/contigs_legumain_trypsin_stats.json +15 -0
  55. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_chymotrypsin_elastase_stats.json +15 -0
  56. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_chymotrypsin_stats.json +15 -0
  57. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_chymotrypsin_trypsin_elastase_stats.json +15 -0
  58. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_chymotrypsin_trypsin_stats.json +15 -0
  59. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_elastase_stats.json +15 -0
  60. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_stats.json +15 -0
  61. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_trypsin_elastase_stats.json +15 -0
  62. instanexus-0.1.0/notebooks/notebook_results/contigs_protk_trypsin_stats.json +15 -0
  63. instanexus-0.1.0/notebooks/notebook_results/contigs_stats.json +22 -0
  64. instanexus-0.1.0/notebooks/notebook_results/contigs_trypsin_elastase_stats.json +15 -0
  65. instanexus-0.1.0/notebooks/notebook_results/contigs_trypsin_stats.json +15 -0
  66. instanexus-0.1.0/notebooks/notebook_results/scaffolds_stats.json +22 -0
  67. instanexus-0.1.0/notebooks/policlonal_antibodies.ipynb +229 -0
  68. instanexus-0.1.0/notebooks/prot_optimization_dbg.ipynb +1196 -0
  69. instanexus-0.1.0/notebooks/prot_optimization_greedy.ipynb +1252 -0
  70. instanexus-0.1.0/notebooks/scaffold_scores_for_radar_plot_dbg.csv +13 -0
  71. instanexus-0.1.0/notebooks/summary_tables/antibodies/contig_scores_antibodies_dbg.csv +7 -0
  72. instanexus-0.1.0/notebooks/summary_tables/antibodies/contig_scores_antibodies_dbg.xlsx +0 -0
  73. instanexus-0.1.0/notebooks/summary_tables/antibodies/contig_scores_antibodies_greedy.csv +7 -0
  74. instanexus-0.1.0/notebooks/summary_tables/antibodies/contig_scores_antibodies_greedy.xlsx +0 -0
  75. instanexus-0.1.0/notebooks/summary_tables/antibodies/scaffold_scores_antibodies_dbg.csv +7 -0
  76. instanexus-0.1.0/notebooks/summary_tables/antibodies/scaffold_scores_antibodies_dbg.xlsx +0 -0
  77. instanexus-0.1.0/notebooks/summary_tables/antibodies/scaffold_scores_antibodies_greedy.csv +7 -0
  78. instanexus-0.1.0/notebooks/summary_tables/antibodies/scaffold_scores_antibodies_greedy.xlsx +0 -0
  79. instanexus-0.1.0/notebooks/summary_tables/best_param_modes_contigs_dbg.csv +6 -0
  80. instanexus-0.1.0/notebooks/summary_tables/best_param_modes_contigs_greedy.csv +5 -0
  81. instanexus-0.1.0/notebooks/summary_tables/best_param_modes_scaffolds_dbg.csv +6 -0
  82. instanexus-0.1.0/notebooks/summary_tables/best_param_modes_scaffolds_greedy.csv +5 -0
  83. instanexus-0.1.0/notebooks/summary_tables/binders/contig_scores_binders_dbg.csv +4 -0
  84. instanexus-0.1.0/notebooks/summary_tables/binders/contig_scores_binders_dbg.xlsx +0 -0
  85. instanexus-0.1.0/notebooks/summary_tables/binders/contig_scores_binders_greedy.csv +4 -0
  86. instanexus-0.1.0/notebooks/summary_tables/binders/contig_scores_binders_greedy.xlsx +0 -0
  87. instanexus-0.1.0/notebooks/summary_tables/binders/scaffold_scores_binders_dbg.csv +4 -0
  88. instanexus-0.1.0/notebooks/summary_tables/binders/scaffold_scores_binders_dbg.xlsx +0 -0
  89. instanexus-0.1.0/notebooks/summary_tables/binders/scaffold_scores_binders_greedy.csv +4 -0
  90. instanexus-0.1.0/notebooks/summary_tables/binders/scaffold_scores_binders_greedy.xlsx +0 -0
  91. instanexus-0.1.0/notebooks/summary_tables/bsa/contig_scores_bsa_dbg.csv +2 -0
  92. instanexus-0.1.0/notebooks/summary_tables/bsa/contig_scores_bsa_greedy.csv +2 -0
  93. instanexus-0.1.0/notebooks/summary_tables/bsa/scaffold_scores_bsa_dbg.csv +2 -0
  94. instanexus-0.1.0/notebooks/summary_tables/bsa/scaffold_scores_bsa_greedy.csv +2 -0
  95. instanexus-0.1.0/notebooks/summary_tables/nanobodies/contig_scores_nanobodies_dbg.csv +11 -0
  96. instanexus-0.1.0/notebooks/summary_tables/nanobodies/contig_scores_nanobodies_dbg.xlsx +0 -0
  97. instanexus-0.1.0/notebooks/summary_tables/nanobodies/contig_scores_nanobodies_greedy.csv +11 -0
  98. instanexus-0.1.0/notebooks/summary_tables/nanobodies/contig_scores_nanobodies_greedy.xlsx +0 -0
  99. instanexus-0.1.0/notebooks/summary_tables/nanobodies/scaffold_scores_nanobodies_dbg.csv +11 -0
  100. instanexus-0.1.0/notebooks/summary_tables/nanobodies/scaffold_scores_nanobodies_dbg.xlsx +0 -0
  101. instanexus-0.1.0/notebooks/summary_tables/nanobodies/scaffold_scores_nanobodies_greedy.csv +11 -0
  102. instanexus-0.1.0/notebooks/summary_tables/nanobodies/scaffold_scores_nanobodies_greedy.xlsx +0 -0
  103. instanexus-0.1.0/notebooks/summary_tables/policlonals/contig_scores_policlonals_dbg.csv +7 -0
  104. instanexus-0.1.0/notebooks/summary_tables/policlonals/contig_scores_policlonals_greedy.csv +1 -0
  105. instanexus-0.1.0/notebooks/summary_tables/policlonals/scaffold_scores_policlonals_dbg.csv +7 -0
  106. instanexus-0.1.0/notebooks/summary_tables/policlonals/scaffold_scores_policlonals_greedy.csv +1 -0
  107. instanexus-0.1.0/notes.md +45 -0
  108. instanexus-0.1.0/pyproject.toml +56 -0
  109. instanexus-0.1.0/src/README.md +0 -0
  110. instanexus-0.1.0/src/instanexus/__init__.py +0 -0
  111. instanexus-0.1.0/src/instanexus/__main__.py +54 -0
  112. instanexus-0.1.0/src/instanexus/alignment.py +50 -0
  113. instanexus-0.1.0/src/instanexus/clustering.py +105 -0
  114. instanexus-0.1.0/src/instanexus/clustering_stats.py +73 -0
  115. instanexus-0.1.0/src/instanexus/compute_statistics.py +94 -0
  116. instanexus-0.1.0/src/instanexus/consensus.py +336 -0
  117. instanexus-0.1.0/src/instanexus/dbg.py +384 -0
  118. instanexus-0.1.0/src/instanexus/generate_cluster_fasta.py +50 -0
  119. instanexus-0.1.0/src/instanexus/greedy_method.py +322 -0
  120. instanexus-0.1.0/src/instanexus/mapping.py +639 -0
  121. instanexus-0.1.0/src/instanexus/model_peptide_selector.py +467 -0
  122. instanexus-0.1.0/src/instanexus/opt/__init__.py +0 -0
  123. instanexus-0.1.0/src/instanexus/opt/gridsearch.py +99 -0
  124. instanexus-0.1.0/src/instanexus/opt/opt_dbg.py +221 -0
  125. instanexus-0.1.0/src/instanexus/opt/opt_greedy.py +203 -0
  126. instanexus-0.1.0/src/instanexus/preprocessing.py +817 -0
  127. instanexus-0.1.0/src/instanexus/scaffolding.py +259 -0
  128. instanexus-0.1.0/src/instanexus/script_dbg.py +294 -0
  129. instanexus-0.1.0/src/instanexus/script_greedy.py +303 -0
  130. instanexus-0.1.0/unittests/unittest_contigs_greedy.py +123 -0
  131. instanexus-0.1.0/unittests/unittest_scaffolds_greedy.py +42 -0
@@ -0,0 +1,33 @@
1
+ name: Python application
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+ branches: ["main"]
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ format:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - uses: psf/black@stable
17
+ - uses: isort/isort-action@v1
18
+ lint:
19
+ name: Lint with ruff
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.11"
27
+ - name: Install ruff
28
+ run: |
29
+ pip install ruff
30
+ - name: Lint with ruff
31
+ run: |
32
+ # stop the build if there are Python syntax errors or undefined names
33
+ ruff check src unittests
@@ -0,0 +1,26 @@
1
+ # data
2
+ outputs/
3
+ figures/
4
+ logs/
5
+
6
+ # ignore compiled python files
7
+ *.pyc
8
+ __pycache__/
9
+ .DS_Store
10
+ environment.yml
11
+
12
+ # files
13
+ inputs/BIND15.csv
14
+ inputs/BIND16.csv
15
+ inputs/ma2.csv
16
+ inputs/ma3.csv
17
+ inputs/NB1.csv
18
+ inputs/NB2.csv
19
+ inputs/NB3.csv
20
+ inputs/NB4.csv
21
+ inputs/NB5.csv
22
+ inputs/NB8.csv
23
+ inputs/NB12.csv
24
+ inputs/NB13.csv
25
+ inputs/pa.csv
26
+ inputs/pb.csv
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Multi-omics Network Analytics Group
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,238 @@
1
+ Metadata-Version: 2.4
2
+ Name: instanexus
3
+ Version: 0.1.0
4
+ Summary: End-to-end workflow for de novo protein sequencing based on InstaNovo
5
+ Project-URL: Homepage, https://github.com/Multiomics-Analytics-Group/InstaNexus
6
+ Project-URL: Issues, https://github.com/Multiomics-Analytics-Group/InstaNexus/issues
7
+ Author-email: Marco Reverenna <marcor@dtu.dk>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: assembly,bioinformatics,de novo,mass spectrometry,protein sequencing,proteomics
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Requires-Python: >=3.10
15
+ Requires-Dist: biopython>=1.85
16
+ Requires-Dist: logomaker>=0.8
17
+ Requires-Dist: matplotlib>=3.8.0
18
+ Requires-Dist: networkx>=3.3
19
+ Requires-Dist: pandas>=2.3.1
20
+ Requires-Dist: plotly>=6.2.0
21
+ Requires-Dist: seaborn>=0.13.2
22
+ Requires-Dist: tqdm>=4.67.1
23
+ Description-Content-Type: text/markdown
24
+
25
+ <p align="center">
26
+ <img src="images/instanexus_logo 2.svg" width="600" alt="InstaNexus logo">
27
+ </p>
28
+
29
+ <p align="center"><em>A de novo protein sequencing workflow</em></p>
30
+
31
+ <p align="center">
32
+ <img src="https://img.shields.io/badge/environment-conda-blue" alt="Conda">
33
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
34
+ <img src="https://img.shields.io/badge/python-3.9+-blue" alt="Python">
35
+ </p>
36
+
37
+ ---
38
+
39
+ ## Table of Contents
40
+ - [Introduction](#introduction)
41
+ - [Features](#features)
42
+ - [Workflow Diagram](#workflow-diagram)
43
+ - [Repository Structure](#repository-structure)
44
+ - [Installation](#installation)
45
+ - [Command-Line Usage](#command-line-usage)
46
+ - [Hyperparameter Optimization](#hyperparameter-optimization)
47
+ - [License](#license)
48
+ - [Acknowledgments](#acknowledgments)
49
+ - [References](#references)
50
+ - [Citation](#citation)
51
+
52
+ ---
53
+
54
+ ## Introduction
55
+
56
+ InstaNexus is a generalizable, end-to-end workflow for direct protein sequencing, tailored to reconstruct full-length protein therapeutics such as antibodies and nanobodies. It integrates AI-driven de novo peptide sequencing with optimized assembly and scoring strategies to maximize accuracy, coverage, and functional relevance.
57
+
58
+ This pipeline enables robust reconstruction of critical protein regions, advancing applications in therapeutic discovery, immune profiling, and protein engineering.
59
+
60
+ ---
61
+
62
+ ## Features
63
+
64
+ - 🧬 Supports De Bruijn Graph and Greedy-based assembly
65
+ - ⚗️ Handles multiple protease digestions (Trypsin, LysC, GluC, etc.)
66
+ - 🧹 Integrated contaminant removal and confidence filtering
67
+ - 🧩 Clustering, alignment, and consensus sequence reconstruction
68
+ - 🔗 Integrates with external tools:
69
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2) for fast clustering
70
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/) for high-quality alignment
71
+ - 📊 Output-ready for downstream analysis and visualization
72
+
73
+ ---
74
+
75
+ ## Workflow Diagram
76
+
77
+ <p align="center">
78
+ <img src="images/instanexus_panel.png" width="900" alt="InstaNexus Workflow">
79
+ </p>
80
+
81
+ ---
82
+
83
+ ## Repository Structure
84
+
85
+
86
+ | Folder / File | Description |
87
+ |----------------|-------------|
88
+ | `environment.linux.yml` | Conda environment for Linux systems |
89
+ | `environment.osx-arm64.yaml` | Conda environment for macOS (Apple Silicon) |
90
+ | `src/instanexus/` | Core InstaNexus package (modules + CLI) |
91
+ | `src/instanexus/__main__.py` | Entry point for CLI (`instanexus` command) |
92
+ | `src/instanexus/script_dbg.py` | De Bruijn Graph-based assembly |
93
+ | `src/instanexus/script_greedy.py` | Greedy-based peptide assembly |
94
+ | `src/opt/` | Grid search and optimization workflows |
95
+ | `fasta/` | FASTA reference and contaminant sequences |
96
+ | `inputs/` | Example input CSV files |
97
+ | `json/` | Metadata and parameter configuration files |
98
+ | `notebooks/` | Jupyter notebooks for analysis and visualization |
99
+ | `images/` | Logos and workflow figures |
100
+ | `outputs/` | Generated results (created during execution) |
101
+
102
+ ---
103
+
104
+ ## Installation
105
+
106
+ - [Conda](https://docs.conda.io/en/latest/)
107
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2)
108
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/)
109
+
110
+ > [!IMPORTANT]
111
+ > MMseqs2 and Clustal Omega are available through Conda, but compatibility depends on your system architecture.
112
+ > - 🔍 [Clustal Omega on Anaconda.org](https://anaconda.org/search?q=clustalo)
113
+
114
+ ---
115
+
116
+ ## Getting Started
117
+
118
+ Follow these steps to clone the repository and set up the environment using Conda:
119
+
120
+ ### 1. Clone the repository
121
+
122
+ To clone and set up the environment:
123
+
124
+ ```bash
125
+ git clone git@github.com:Multiomics-Analytics-Group/InstaNexus.git
126
+ cd instanexus
127
+ ```
128
+
129
+ ### 2. Create and activate the Conda environment
130
+
131
+ Create instanexus conda environment for linux.
132
+
133
+ ```bash
134
+ conda env create -f environment.linux.yml
135
+ ```
136
+
137
+ Create instanexus conda environment for OS.
138
+
139
+ ```bash
140
+ conda env create -f environment.osx-arm64.yaml
141
+ ```
142
+
143
+ Activate:
144
+
145
+ ```bash
146
+ conda activate instanexus
147
+ ```
148
+
149
+ ---
150
+
151
+ ### 3. Install InstaNexus as a local package
152
+
153
+ ```
154
+ pip install -e .
155
+ ```
156
+
157
+ Then verify the CLI installation:
158
+
159
+ ```
160
+ instanexus --version
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Command-line usage
166
+
167
+ After activating the environment, you can run InstaNexus directly from the terminal:
168
+ ```bash
169
+ instanexus --help
170
+ ```
171
+
172
+ ### Run De Bruijn graph assembly
173
+
174
+ ```
175
+ instanexus dbg --input_csv inputs/sample.csv --chain light --folder_outputs outputs --reference
176
+ ```
177
+
178
+ ### Run greedy assembly
179
+
180
+ ```
181
+ instanexus greedy --input_csv inputs/sample.csv --folder_outputs outputs
182
+ ```
183
+
184
+
185
+
186
+
187
+ ---
188
+
189
+ ## Hyperparameter Optimization
190
+
191
+ To launch the hyperparameter grid search, run the following command from the project root (the folder containing ```src/``` and ```json/```):
192
+
193
+ ```bash
194
+ python -m src.opt.gridsearch
195
+ ```
196
+ **Adjusting Parameters**
197
+
198
+ Grid search parameters for both the De Bruijn graph (dbg) and Greedy (greedy) assembly methods are defined in:
199
+
200
+ ```bash
201
+ json/gridsearch_params.json
202
+ ```
203
+
204
+ To test more (or fewer) combinations, edit the arrays for each parameter in this file.
205
+
206
+ ## License
207
+
208
+ This project is licensed under the [MIT License](LICENSE).
209
+
210
+ ---
211
+
212
+ ## Acknowledgments
213
+
214
+ InstaNexus was developed at **DTU Biosustain** and **DTU Bioengineering**.
215
+
216
+ We are grateful to the **DTU Bioengineering Proteomics Core Facility** for maintenance and operation of mass spectrometry instrumentation.
217
+
218
+ We also thank the **Informatics Platform at DTU Biosustain** for their support during the development and optimization of InstaNexus.
219
+
220
+ Special thanks to the users and developers of:
221
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2)
222
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/)
223
+
224
+ ---
225
+
226
+ ## References
227
+
228
+ 1. Hauser, M., et al. **MMseqs2: ultra fast and sensitive sequence searching**. *Nature Biotechnology* 35, 1026–1028 (2016). https://doi.org/10.1038/nbt.3988
229
+ 2. Sievers, F., et al. **Fast, scalable generation of high-quality protein multiple sequence alignments using Clustal Omega**. *Molecular Systems Biology* 7, 539 (2011). https://doi.org/10.1038/msb.2011.75
230
+ 3. Eloff, K., Kalogeropoulos, K., Mabona, A., Morell, O., Catzel, R., Rivera-de-Torre, E., ... & Jenkins, T. P. (2025). **InstaNovo enables diffusion-powered de novo peptide sequencing in large-scale proteomics experiments.** Nature Machine Intelligence, 1-15.
231
+
232
+ ---
233
+
234
+ ## Citation
235
+
236
+ If you find this project useful in your research or work, please cite it as:
237
+
238
+ Reverenna M., Nielsen M. W., Wolff D. S., Lytra E., Colaianni P. D., Ljungars A., Laustsen A. H., Schoof E. M., Van Goey J., Jenkins T. P., Lukassen M. V., Santos A., Kalogeropoulos K. (2025). *Generalizable direct protein sequencing with InstaNexus* [Preprint]. bioRxiv. https://doi.org/10.1101/2025.07.25.666861
@@ -0,0 +1,214 @@
1
+ <p align="center">
2
+ <img src="images/instanexus_logo 2.svg" width="600" alt="InstaNexus logo">
3
+ </p>
4
+
5
+ <p align="center"><em>A de novo protein sequencing workflow</em></p>
6
+
7
+ <p align="center">
8
+ <img src="https://img.shields.io/badge/environment-conda-blue" alt="Conda">
9
+ <img src="https://img.shields.io/badge/license-MIT-green" alt="License">
10
+ <img src="https://img.shields.io/badge/python-3.9+-blue" alt="Python">
11
+ </p>
12
+
13
+ ---
14
+
15
+ ## Table of Contents
16
+ - [Introduction](#introduction)
17
+ - [Features](#features)
18
+ - [Workflow Diagram](#workflow-diagram)
19
+ - [Repository Structure](#repository-structure)
20
+ - [Installation](#installation)
21
+ - [Command-Line Usage](#command-line-usage)
22
+ - [Hyperparameter Optimization](#hyperparameter-optimization)
23
+ - [License](#license)
24
+ - [Acknowledgments](#acknowledgments)
25
+ - [References](#references)
26
+ - [Citation](#citation)
27
+
28
+ ---
29
+
30
+ ## Introduction
31
+
32
+ InstaNexus is a generalizable, end-to-end workflow for direct protein sequencing, tailored to reconstruct full-length protein therapeutics such as antibodies and nanobodies. It integrates AI-driven de novo peptide sequencing with optimized assembly and scoring strategies to maximize accuracy, coverage, and functional relevance.
33
+
34
+ This pipeline enables robust reconstruction of critical protein regions, advancing applications in therapeutic discovery, immune profiling, and protein engineering.
35
+
36
+ ---
37
+
38
+ ## Features
39
+
40
+ - 🧬 Supports De Bruijn Graph and Greedy-based assembly
41
+ - ⚗️ Handles multiple protease digestions (Trypsin, LysC, GluC, etc.)
42
+ - 🧹 Integrated contaminant removal and confidence filtering
43
+ - 🧩 Clustering, alignment, and consensus sequence reconstruction
44
+ - 🔗 Integrates with external tools:
45
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2) for fast clustering
46
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/) for high-quality alignment
47
+ - 📊 Output-ready for downstream analysis and visualization
48
+
49
+ ---
50
+
51
+ ## Workflow Diagram
52
+
53
+ <p align="center">
54
+ <img src="images/instanexus_panel.png" width="900" alt="InstaNexus Workflow">
55
+ </p>
56
+
57
+ ---
58
+
59
+ ## Repository Structure
60
+
61
+
62
+ | Folder / File | Description |
63
+ |----------------|-------------|
64
+ | `environment.linux.yml` | Conda environment for Linux systems |
65
+ | `environment.osx-arm64.yaml` | Conda environment for macOS (Apple Silicon) |
66
+ | `src/instanexus/` | Core InstaNexus package (modules + CLI) |
67
+ | `src/instanexus/__main__.py` | Entry point for CLI (`instanexus` command) |
68
+ | `src/instanexus/script_dbg.py` | De Bruijn Graph-based assembly |
69
+ | `src/instanexus/script_greedy.py` | Greedy-based peptide assembly |
70
+ | `src/opt/` | Grid search and optimization workflows |
71
+ | `fasta/` | FASTA reference and contaminant sequences |
72
+ | `inputs/` | Example input CSV files |
73
+ | `json/` | Metadata and parameter configuration files |
74
+ | `notebooks/` | Jupyter notebooks for analysis and visualization |
75
+ | `images/` | Logos and workflow figures |
76
+ | `outputs/` | Generated results (created during execution) |
77
+
78
+ ---
79
+
80
+ ## Installation
81
+
82
+ - [Conda](https://docs.conda.io/en/latest/)
83
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2)
84
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/)
85
+
86
+ > [!IMPORTANT]
87
+ > MMseqs2 and Clustal Omega are available through Conda, but compatibility depends on your system architecture.
88
+ > - 🔍 [Clustal Omega on Anaconda.org](https://anaconda.org/search?q=clustalo)
89
+
90
+ ---
91
+
92
+ ## Getting Started
93
+
94
+ Follow these steps to clone the repository and set up the environment using Conda:
95
+
96
+ ### 1. Clone the repository
97
+
98
+ To clone and set up the environment:
99
+
100
+ ```bash
101
+ git clone git@github.com:Multiomics-Analytics-Group/InstaNexus.git
102
+ cd instanexus
103
+ ```
104
+
105
+ ### 2. Create and activate the Conda environment
106
+
107
+ Create instanexus conda environment for linux.
108
+
109
+ ```bash
110
+ conda env create -f environment.linux.yml
111
+ ```
112
+
113
+ Create instanexus conda environment for OS.
114
+
115
+ ```bash
116
+ conda env create -f environment.osx-arm64.yaml
117
+ ```
118
+
119
+ Activate:
120
+
121
+ ```bash
122
+ conda activate instanexus
123
+ ```
124
+
125
+ ---
126
+
127
+ ### 3. Install InstaNexus as a local package
128
+
129
+ ```
130
+ pip install -e .
131
+ ```
132
+
133
+ Then verify the CLI installation:
134
+
135
+ ```
136
+ instanexus --version
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Command-line usage
142
+
143
+ After activating the environment, you can run InstaNexus directly from the terminal:
144
+ ```bash
145
+ instanexus --help
146
+ ```
147
+
148
+ ### Run De Bruijn graph assembly
149
+
150
+ ```
151
+ instanexus dbg --input_csv inputs/sample.csv --chain light --folder_outputs outputs --reference
152
+ ```
153
+
154
+ ### Run greedy assembly
155
+
156
+ ```
157
+ instanexus greedy --input_csv inputs/sample.csv --folder_outputs outputs
158
+ ```
159
+
160
+
161
+
162
+
163
+ ---
164
+
165
+ ## Hyperparameter Optimization
166
+
167
+ To launch the hyperparameter grid search, run the following command from the project root (the folder containing ```src/``` and ```json/```):
168
+
169
+ ```bash
170
+ python -m src.opt.gridsearch
171
+ ```
172
+ **Adjusting Parameters**
173
+
174
+ Grid search parameters for both the De Bruijn graph (dbg) and Greedy (greedy) assembly methods are defined in:
175
+
176
+ ```bash
177
+ json/gridsearch_params.json
178
+ ```
179
+
180
+ To test more (or fewer) combinations, edit the arrays for each parameter in this file.
181
+
182
+ ## License
183
+
184
+ This project is licensed under the [MIT License](LICENSE).
185
+
186
+ ---
187
+
188
+ ## Acknowledgments
189
+
190
+ InstaNexus was developed at **DTU Biosustain** and **DTU Bioengineering**.
191
+
192
+ We are grateful to the **DTU Bioengineering Proteomics Core Facility** for maintenance and operation of mass spectrometry instrumentation.
193
+
194
+ We also thank the **Informatics Platform at DTU Biosustain** for their support during the development and optimization of InstaNexus.
195
+
196
+ Special thanks to the users and developers of:
197
+ - [MMseqs2](https://github.com/soedinglab/MMseqs2)
198
+ - [Clustal Omega](https://www.ebi.ac.uk/Tools/msa/clustalo/)
199
+
200
+ ---
201
+
202
+ ## References
203
+
204
+ 1. Hauser, M., et al. **MMseqs2: ultra fast and sensitive sequence searching**. *Nature Biotechnology* 35, 1026–1028 (2016). https://doi.org/10.1038/nbt.3988
205
+ 2. Sievers, F., et al. **Fast, scalable generation of high-quality protein multiple sequence alignments using Clustal Omega**. *Molecular Systems Biology* 7, 539 (2011). https://doi.org/10.1038/msb.2011.75
206
+ 3. Eloff, K., Kalogeropoulos, K., Mabona, A., Morell, O., Catzel, R., Rivera-de-Torre, E., ... & Jenkins, T. P. (2025). **InstaNovo enables diffusion-powered de novo peptide sequencing in large-scale proteomics experiments.** Nature Machine Intelligence, 1-15.
207
+
208
+ ---
209
+
210
+ ## Citation
211
+
212
+ If you find this project useful in your research or work, please cite it as:
213
+
214
+ Reverenna M., Nielsen M. W., Wolff D. S., Lytra E., Colaianni P. D., Ljungars A., Laustsen A. H., Schoof E. M., Van Goey J., Jenkins T. P., Lukassen M. V., Santos A., Kalogeropoulos K. (2025). *Generalizable direct protein sequencing with InstaNexus* [Preprint]. bioRxiv. https://doi.org/10.1101/2025.07.25.666861
@@ -0,0 +1,45 @@
1
+ name: instanexus
2
+ channels:
3
+ - bioconda
4
+ - conda-forge
5
+ - defaults
6
+ dependencies:
7
+ - biopython=1.85
8
+ - pcre2=10.42
9
+ - bzip2=1.0.8
10
+ - zlib=1.2.13
11
+ - wheel=0.45.1
12
+ - ncurses=6.5
13
+ - readline=8.2
14
+ - xz=5.6.4
15
+ - gettext=0.21.0
16
+ - ca-certificates=2025.2.25
17
+ - wget=1.25.0
18
+ - llvm-openmp=17.0.6
19
+ - openssl==3.0.17
20
+ - libxml2=2.13.8
21
+ - python=3.9.21
22
+ - libexpat=2.7.0
23
+ - setuptools=80.9.0
24
+ - icu=73.1
25
+ - libffi=3.4.6
26
+ - libiconv=1.16
27
+ - pandas=2.3.1
28
+ - pip=25.1.1
29
+ - gawk=5.3.1
30
+ - tk=8.6.14
31
+ - libcxx=17.0.6
32
+ - sqlite=3.45.3
33
+ - tqdm=4.67.1
34
+ - libidn2=2.3.4
35
+ - libunistring=0.9.10
36
+ - clustalo=1.2.4
37
+ - matplotlib-base
38
+ - seaborn=0.13.2
39
+ - plotly=6.2.0
40
+ - logomaker=0.8
41
+ - networkx
42
+ - mmseqs2
43
+ - pip
44
+ - pip:
45
+ - kaleido==0.2.1
@@ -0,0 +1,42 @@
1
+ name: instanexus
2
+ channels:
3
+ - conda-forge
4
+ - bioconda
5
+ - defaults
6
+
7
+ dependencies:
8
+ # core runtime dependencies
9
+ - python=3.11
10
+ - biopython=1.85
11
+ - pandas=2.3.1
12
+ - upsetplot
13
+ - tqdm=4.67.1
14
+ - seaborn=0.13.2
15
+ - matplotlib-base
16
+ - plotly=6.2.0
17
+ - logomaker=0.8
18
+ - networkx
19
+ - mmseqs2
20
+ - sbl::clustalomega
21
+ - gawk
22
+ - wget
23
+
24
+ # notebook
25
+ - ipykernel
26
+ - nbformat
27
+
28
+ # development tools
29
+ - black
30
+ - pytest
31
+ - coverage
32
+ - mypy
33
+ - pre-commit
34
+
35
+ # packaging
36
+ - pip
37
+ - pip:
38
+ - kaleido==0.2.1
39
+ - build
40
+ - twine
41
+ - hatchling
42
+ - wheel
@@ -0,0 +1 @@
1
+ In these notebooks we provide examples for greedy and DBG methods, with and without plots.