protpy 1.0.8__tar.gz → 1.3.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.
- protpy-1.3.0/PKG-INFO +556 -0
- protpy-1.3.0/README.md +508 -0
- protpy-1.3.0/docs/conf.py +41 -0
- protpy-1.3.0/protpy/__init__.py +42 -0
- protpy-1.3.0/protpy/_constants.py +45 -0
- {protpy-1.0.8 → protpy-1.3.0}/protpy/autocorrelation.py +123 -119
- protpy-1.3.0/protpy/composition.py +1483 -0
- {protpy-1.0.8 → protpy-1.3.0}/protpy/conjoint_triad.py +15 -23
- {protpy-1.0.8 → protpy-1.3.0}/protpy/ctd.py +110 -123
- {protpy-1.0.8 → protpy-1.3.0}/protpy/data/README.md +2 -2
- protpy-1.3.0/protpy/data/grantham-physicochemical-distance-matrix.json +402 -0
- {protpy-1.0.8 → protpy-1.3.0}/protpy/sequence_order.py +132 -164
- protpy-1.3.0/protpy/utils.py +740 -0
- protpy-1.3.0/protpy.egg-info/PKG-INFO +556 -0
- {protpy-1.0.8 → protpy-1.3.0}/protpy.egg-info/SOURCES.txt +8 -6
- protpy-1.3.0/protpy.egg-info/requires.txt +14 -0
- protpy-1.3.0/protpy.egg-info/top_level.txt +6 -0
- protpy-1.3.0/pyproject.toml +84 -0
- protpy-1.3.0/setup.cfg +4 -0
- {protpy-1.0.8 → protpy-1.3.0}/tests/test_autocorrelation.py +199 -102
- protpy-1.3.0/tests/test_composition.py +1287 -0
- protpy-1.3.0/tests/test_conjoint_triad.py +135 -0
- protpy-1.3.0/tests/test_ctd.py +189 -0
- protpy-1.3.0/tests/test_protpy.py +130 -0
- protpy-1.3.0/tests/test_sequence_order.py +584 -0
- protpy-1.3.0/tests/test_utils.py +320 -0
- protpy-1.0.8/PKG-INFO +0 -296
- protpy-1.0.8/README.md +0 -261
- protpy-1.0.8/protpy/__init__.py +0 -30
- protpy-1.0.8/protpy/composition.py +0 -579
- protpy-1.0.8/protpy/data/grantham-physiochemical-distance-matrix.json +0 -403
- protpy-1.0.8/protpy.egg-info/PKG-INFO +0 -296
- protpy-1.0.8/protpy.egg-info/not-zip-safe +0 -1
- protpy-1.0.8/protpy.egg-info/requires.txt +0 -16
- protpy-1.0.8/protpy.egg-info/top_level.txt +0 -2
- protpy-1.0.8/setup.cfg +0 -69
- protpy-1.0.8/setup.py +0 -60
- protpy-1.0.8/tests/test_composition.py +0 -385
- protpy-1.0.8/tests/test_conjoint_triad.py +0 -106
- protpy-1.0.8/tests/test_ctd.py +0 -150
- protpy-1.0.8/tests/test_protpy.py +0 -100
- protpy-1.0.8/tests/test_sequence_order.py +0 -390
- {protpy-1.0.8 → protpy-1.3.0}/LICENSE +0 -0
- {protpy-1.0.8 → protpy-1.3.0}/MANIFEST.in +0 -0
- /protpy-1.0.8/protpy/data/schneider-wrede-physiochemical-distance-matrix.json → /protpy-1.3.0/protpy/data/schneider-wrede-physicochemical-distance-matrix.json +0 -0
- {protpy-1.0.8 → protpy-1.3.0}/protpy.egg-info/dependency_links.txt +0 -0
- {protpy-1.0.8 → protpy-1.3.0}/tests/__init__.py +0 -0
protpy-1.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: protpy
|
|
3
|
+
Version: 1.3.0
|
|
4
|
+
Summary: Python package for generating various biochemical, physicochemical and structural descriptors/features of protein sequences.
|
|
5
|
+
Author-email: AJ McKenna <amckenna41@qub.ac.uk>
|
|
6
|
+
Maintainer-email: AJ McKenna <amckenna41@qub.ac.uk>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/amckenna41/protPy
|
|
9
|
+
Project-URL: Repository, https://github.com/amckenna41/protPy
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/amckenna41/protpy/issues
|
|
11
|
+
Project-URL: Download, https://github.com/amckenna41/protPy/archive/refs/heads/main.zip
|
|
12
|
+
Keywords: bioinformatics,protein engineering,python,pypi,machine learning,aaindex,protein descriptors,physicochemical descriptors,biochemical descriptors,structural descriptors,pySAR
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: Intended Audience :: Healthcare Industry
|
|
18
|
+
Classifier: Intended Audience :: Information Technology
|
|
19
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
20
|
+
Classifier: Natural Language :: English
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
26
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
27
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
28
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
29
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
30
|
+
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
31
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
32
|
+
Requires-Python: >=3.9
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
License-File: LICENSE
|
|
35
|
+
Requires-Dist: aaindex>=1.2.0
|
|
36
|
+
Requires-Dist: numpy>=2.4.4
|
|
37
|
+
Requires-Dist: pandas>=3.0.2
|
|
38
|
+
Requires-Dist: varname>=0.15.1
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest; extra == "test"
|
|
41
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
42
|
+
Requires-Dist: pytest-flake8; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-timeout; extra == "test"
|
|
44
|
+
Requires-Dist: biopython>=1.87; extra == "test"
|
|
45
|
+
Provides-Extra: docs
|
|
46
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
47
|
+
Dynamic: license-file
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
<a id="TOP"></a>
|
|
51
|
+
|
|
52
|
+
# protpy - Package for generating protein physicochemical, biochemical and structural descriptors using their constituent amino acids. #
|
|
53
|
+
[](https://pypi.org/project/protpy/)
|
|
54
|
+
[](https://github.com/amckenna41/protpy/actions?query=workflowBuilding%20and%20Testing)
|
|
55
|
+
[](https://pypi.org/project/protpy/)
|
|
56
|
+
[](https://pypi.org/project/protpy/)
|
|
57
|
+
[](https://codecov.io/gh/amckenna41/protPy)
|
|
58
|
+
[](https://opensource.org/licenses/MIT)
|
|
59
|
+
[](https://github.com/amckenna41/protpy/issues)
|
|
60
|
+
<!-- [](https://github.com/amckenna41/protpy)
|
|
61
|
+
[](https://github.com/amckenna41/protpy) -->
|
|
62
|
+
<!-- <p align="center">
|
|
63
|
+
<img src="https://images.newscientist.com/wp-content/uploads/2021/07/22155326/22-july_deepmind-proteome.jpg?width=300" alt="protpyLogo" height="200"/>
|
|
64
|
+
</p> -->
|
|
65
|
+
|
|
66
|
+
* 🧬 A <b>demo</b> of the software is available [here][demo]
|
|
67
|
+
* 📝 A <b>Medium</b> article about `protPy` and its background is available [here][article]
|
|
68
|
+
|
|
69
|
+
<p align="center">
|
|
70
|
+
<img src="https://raw.githubusercontent.com/amckenna41/protpy/main/images/protpy.png" alt="protpy" width="500"/>
|
|
71
|
+
</p>
|
|
72
|
+
|
|
73
|
+
Table of Contents
|
|
74
|
+
-----------------
|
|
75
|
+
|
|
76
|
+
* [Introduction](#introduction)
|
|
77
|
+
* [Requirements](#requirements)
|
|
78
|
+
* [Installation](#installation)
|
|
79
|
+
* [Usage](#usage)
|
|
80
|
+
* [Documentation](#documentation)
|
|
81
|
+
* [Directories](#directories)
|
|
82
|
+
* [Tests](#tests)
|
|
83
|
+
* [Issues](#Issues)
|
|
84
|
+
* [Contact](#contact)
|
|
85
|
+
* [References](#references)
|
|
86
|
+
|
|
87
|
+
Introduction
|
|
88
|
+
------------
|
|
89
|
+
`protpy` is a Python software package for generating a variety of physicochemical, biochemical and structural descriptors for proteins. All of these descriptors are calculated using sequence-derived or physicochemical features of the amino acids that make up the proteins. These descriptors have been highly studied and used in a series of Bioinformatic applications including protein engineering, SAR (sequence-activity-relationships), predicting protein structure & function, subcellular localization, protein-protein interactions, drug-target interactions etc.
|
|
90
|
+
|
|
91
|
+
This software is aimed at any researcher or developer using protein sequence/structural data, and was mainly created to use in my own project [`pySAR`](https://github.com/amckenna41/pySAR) which uses protein sequence data to identify Sequence Activity Relationships (SAR) using Machine Learning [[1]](#references). `protpy` is built and developed in Python 3.10.
|
|
92
|
+
|
|
93
|
+
The descriptors available in `protpy` include:
|
|
94
|
+
|
|
95
|
+
<details>
|
|
96
|
+
<summary><b>Composition Descriptors (22)</b></summary>
|
|
97
|
+
|
|
98
|
+
* **Amino Acid Composition (AAComp)**
|
|
99
|
+
* **Dipeptide Composition (DPComp)**
|
|
100
|
+
* **Tripeptide Composition (TPComp)**
|
|
101
|
+
* **Grand Average of Hydropathy (GRAVY)**
|
|
102
|
+
* **Aromaticity**
|
|
103
|
+
* **Instability Index**
|
|
104
|
+
* **Isoelectric Point**
|
|
105
|
+
* **Molecular Weight**
|
|
106
|
+
* **Charge Distribution**
|
|
107
|
+
* **Hydrophobic/Polar/Charged Composition (HPC)**
|
|
108
|
+
* **Secondary Structure Propensity (SSP)**
|
|
109
|
+
* **k-mer Composition**
|
|
110
|
+
* **Reduced Alphabet Composition**
|
|
111
|
+
* **Motif Composition**
|
|
112
|
+
* **Amino Acid Pair Composition**
|
|
113
|
+
* **Aliphatic Index**
|
|
114
|
+
* **Extinction Coefficient**
|
|
115
|
+
* **Boman Index**
|
|
116
|
+
* **Aggregation Propensity**
|
|
117
|
+
* **Hydrophobic Moment**
|
|
118
|
+
* **Shannon Entropy**
|
|
119
|
+
* **Pseudo Amino Acid Composition (PAAComp)**
|
|
120
|
+
* **Amphiphilic Amino Acid Composition (APAAComp)**
|
|
121
|
+
|
|
122
|
+
</details>
|
|
123
|
+
|
|
124
|
+
<details>
|
|
125
|
+
<summary><b>Autocorrelation Descriptors (3)</b></summary>
|
|
126
|
+
|
|
127
|
+
* **Moreaubroto Autocorrelation (MBAuto)**
|
|
128
|
+
* **Moran Autocorrelation (MAuto)**
|
|
129
|
+
* **Geary Autocorrelation (GAuto)**
|
|
130
|
+
|
|
131
|
+
</details>
|
|
132
|
+
|
|
133
|
+
<details>
|
|
134
|
+
<summary><b>Conjoint Triad (1)</b></summary>
|
|
135
|
+
|
|
136
|
+
* **Conjoint Triad (CTriad)**
|
|
137
|
+
|
|
138
|
+
</details>
|
|
139
|
+
|
|
140
|
+
<details>
|
|
141
|
+
<summary><b>CTD Descriptors (4)</b></summary>
|
|
142
|
+
|
|
143
|
+
* **CTD Composition**
|
|
144
|
+
* **CTD Transition**
|
|
145
|
+
* **CTD Distribution**
|
|
146
|
+
* **CTD Combined**
|
|
147
|
+
|
|
148
|
+
</details>
|
|
149
|
+
|
|
150
|
+
<details>
|
|
151
|
+
<summary><b>Sequence Order Descriptors (5)</b></summary>
|
|
152
|
+
|
|
153
|
+
* **Sequence Order Coupling Number — single (SOCN)**
|
|
154
|
+
* **Sequence Order Coupling Number — series**
|
|
155
|
+
* **Sequence Order Coupling Number — all matrices**
|
|
156
|
+
* **Quasi Sequence Order (QSO)**
|
|
157
|
+
* **Quasi Sequence Order — all matrices**
|
|
158
|
+
|
|
159
|
+
</details>
|
|
160
|
+
|
|
161
|
+
More detail of each descriptor is listed in the markdown file: [`DESCRIPTORS.md`](https://github.com/amckenna41/protPy/blob/main/DESCRIPTORS.md)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
Requirements
|
|
165
|
+
------------
|
|
166
|
+
* [Python][python] >= 3.9
|
|
167
|
+
* [aaindex][aaindex] >= 1.2.0
|
|
168
|
+
* [numpy][numpy] >= 2.4.4
|
|
169
|
+
* [pandas][pandas] >= 3.0.2
|
|
170
|
+
* [varname][varname] >= 0.15.1
|
|
171
|
+
* [biopython][biopython] >= 1.87 (only required for testing)
|
|
172
|
+
|
|
173
|
+
Installation
|
|
174
|
+
------------
|
|
175
|
+
Install the latest version of `protpy` using pip:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
pip3 install protpy --upgrade
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Install by cloning repository:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
git clone https://github.com/amckenna41/protpy.git
|
|
185
|
+
python3 setup.py install
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Usage
|
|
189
|
+
-----
|
|
190
|
+
### Import `protpy` after installation:
|
|
191
|
+
```python
|
|
192
|
+
import protpy as protpy
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Import protein sequence from fasta:
|
|
196
|
+
```python
|
|
197
|
+
from Bio import SeqIO
|
|
198
|
+
|
|
199
|
+
with open("test_fasta.fasta") as pro:
|
|
200
|
+
protein_seq = str(next(SeqIO.parse(pro,'fasta')).seq)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
<details>
|
|
205
|
+
<summary><b>Composition Descriptors Usage Examples</b></summary>
|
|
206
|
+
|
|
207
|
+
Calculate Amino Acid Composition:
|
|
208
|
+
```python
|
|
209
|
+
amino_acid_composition = protpy.amino_acid_composition(protein_seq)
|
|
210
|
+
# A C D E F ...
|
|
211
|
+
# 6.693 3.108 5.817 3.347 6.614 ...
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Calculate Dipeptide Composition:
|
|
215
|
+
```python
|
|
216
|
+
dipeptide_composition = protpy.dipeptide_composition(protein_seq)
|
|
217
|
+
# AA AC AD AE AF ...
|
|
218
|
+
# 0.72 0.16 0.48 0.4 0.24 ...
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Calculate Tripeptide Composition:
|
|
222
|
+
```python
|
|
223
|
+
tripeptide_composition = protpy.tripeptide_composition(protein_seq)
|
|
224
|
+
# AAA AAC AAD AAE AAF ...
|
|
225
|
+
# 1 0 0 2 0 ...
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Calculate GRAVY (Grand Average of Hydropathy):
|
|
229
|
+
```python
|
|
230
|
+
gravy = protpy.gravy(protein_seq)
|
|
231
|
+
# GRAVY
|
|
232
|
+
# -0.045
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Calculate Aromaticity:
|
|
236
|
+
```python
|
|
237
|
+
aromaticity = protpy.aromaticity(protein_seq)
|
|
238
|
+
# Aromaticity
|
|
239
|
+
# 0.118
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Calculate Instability Index:
|
|
243
|
+
```python
|
|
244
|
+
instability = protpy.instability_index(protein_seq)
|
|
245
|
+
# InstabilityIndex
|
|
246
|
+
# 31.836
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Calculate Isoelectric Point:
|
|
250
|
+
```python
|
|
251
|
+
pi = protpy.isoelectric_point(protein_seq)
|
|
252
|
+
# IsoelectricPoint
|
|
253
|
+
# 5.412
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Calculate Molecular Weight:
|
|
257
|
+
```python
|
|
258
|
+
mw = protpy.molecular_weight(protein_seq)
|
|
259
|
+
# MolecularWeight (Da)
|
|
260
|
+
# 139122.355
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Calculate Charge Distribution:
|
|
264
|
+
```python
|
|
265
|
+
charge = protpy.charge_distribution(protein_seq)
|
|
266
|
+
#using default parameters: ph=7.4
|
|
267
|
+
|
|
268
|
+
# PositiveCharge NegativeCharge NetCharge
|
|
269
|
+
# 99.526 114.956 -15.43
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Calculate Hydrophobic/Polar/Charged Composition:
|
|
273
|
+
```python
|
|
274
|
+
hpc = protpy.hydrophobic_polar_charged_composition(protein_seq)
|
|
275
|
+
# Hydrophobic Polar Charged
|
|
276
|
+
# 44.542 32.669 18.247
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Calculate Secondary Structure Propensity:
|
|
280
|
+
```python
|
|
281
|
+
ssp = protpy.secondary_structure_propensity(protein_seq)
|
|
282
|
+
# Helix Sheet Coil
|
|
283
|
+
# 0.983 1.05 1.043
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Calculate k-mer Composition:
|
|
287
|
+
```python
|
|
288
|
+
kmer = protpy.kmer_composition(protein_seq)
|
|
289
|
+
#using default parameters: k=2
|
|
290
|
+
|
|
291
|
+
# AA AC AD ...
|
|
292
|
+
# 0.797 0.159 ... ...
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Calculate Reduced Alphabet Composition:
|
|
296
|
+
```python
|
|
297
|
+
reduced = protpy.reduced_alphabet_composition(protein_seq)
|
|
298
|
+
#using default parameters: alphabet_size=6
|
|
299
|
+
|
|
300
|
+
# Group_1 Group_2 Group_3 Group_4 Group_5 Group_6
|
|
301
|
+
# 25.339 34.741 9.163 9.084 10.837 10.837
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Calculate Motif Composition:
|
|
305
|
+
```python
|
|
306
|
+
motif = protpy.motif_composition(protein_seq)
|
|
307
|
+
# NxST_glycosylation RGD_integrin KDEL_retention ...
|
|
308
|
+
# 23 0 0 ...
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Calculate Amino Acid Pair Composition:
|
|
312
|
+
```python
|
|
313
|
+
aapair = protpy.amino_acid_pair_composition(protein_seq)
|
|
314
|
+
# AA_Hydrophobic-Hydrophobic AA_Hydrophobic-Polar ...
|
|
315
|
+
# 0.797 0.159 ...
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Calculate Aliphatic Index:
|
|
319
|
+
```python
|
|
320
|
+
aliphatic = protpy.aliphatic_index(protein_seq)
|
|
321
|
+
# AliphaticIndex
|
|
322
|
+
# 82.725
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Calculate Extinction Coefficient:
|
|
326
|
+
```python
|
|
327
|
+
extinction = protpy.extinction_coefficient(protein_seq)
|
|
328
|
+
# ExtCoeff_Reduced ExtCoeff_Oxidized
|
|
329
|
+
# 140960 143335
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Calculate Boman Index:
|
|
333
|
+
```python
|
|
334
|
+
boman = protpy.boman_index(protein_seq)
|
|
335
|
+
# BomanIndex
|
|
336
|
+
# 0.119
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Calculate Aggregation Propensity:
|
|
340
|
+
```python
|
|
341
|
+
aggregation = protpy.aggregation_propensity(protein_seq)
|
|
342
|
+
# AggregProneRegions AggregProneFraction
|
|
343
|
+
# 58 11.793
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Calculate Hydrophobic Moment:
|
|
347
|
+
```python
|
|
348
|
+
hm = protpy.hydrophobic_moment(protein_seq)
|
|
349
|
+
#using default parameters: window=11, angle=100
|
|
350
|
+
|
|
351
|
+
# HydrophobicMoment_Mean HydrophobicMoment_Max
|
|
352
|
+
# 0.272 0.813
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Calculate Shannon Entropy:
|
|
356
|
+
```python
|
|
357
|
+
se = protpy.shannon_entropy(protein_seq)
|
|
358
|
+
# ShannonEntropy
|
|
359
|
+
# 4.163
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Calculate Pseudo Composition:
|
|
363
|
+
```python
|
|
364
|
+
pseudo_composition = protpy.pseudo_amino_acid_composition(protein_seq)
|
|
365
|
+
#using default parameters: lamda=30, weight=0.05, properties=[]
|
|
366
|
+
|
|
367
|
+
# PAAC_1 PAAC_2 PAAC_3 PAAC_4 PAAC_5 ...
|
|
368
|
+
# 0.127 0.059 0.111 0.064 0.126 ...
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Calculate Amphiphilic Composition:
|
|
372
|
+
```python
|
|
373
|
+
amphiphilic_composition = protpy.amphiphilic_pseudo_amino_acid_composition(protein_seq)
|
|
374
|
+
#using default parameters: lamda=30, weight=0.5, properties=[hydrophobicity_, hydrophilicity_]
|
|
375
|
+
|
|
376
|
+
# APAAC_1 APAAC_2 APAAC_3 APAAC_4 APAAC_5 ...
|
|
377
|
+
# 6.624 3.076 5.757 3.032 5.988 ...
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
</details>
|
|
381
|
+
|
|
382
|
+
<details>
|
|
383
|
+
<summary><b>Autocorrelation Descriptors Usage Examples</b></summary>
|
|
384
|
+
|
|
385
|
+
Calculate MoreauBroto Autocorrelation:
|
|
386
|
+
```python
|
|
387
|
+
moreaubroto_autocorrelation = protpy.moreaubroto_autocorrelation(protein_seq)
|
|
388
|
+
#using default parameters: lag=30, properties=["CIDH920105", "BHAR880101", "CHAM820101", "CHAM820102", "CHOC760101", "BIGC670101", "CHAM810101", "DAYM780201"], normalize=True
|
|
389
|
+
|
|
390
|
+
# MBAuto_CIDH920105_1 MBAuto_CIDH920105_2 MBAuto_CIDH920105_3 MBAuto_CIDH920105_4 MBAuto_CIDH920105_5 ...
|
|
391
|
+
# -0.052 -0.104 -0.156 -0.208 0.246 ...
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Calculate Moran Autocorrelation:
|
|
395
|
+
```python
|
|
396
|
+
moran_autocorrelation = protpy.moran_autocorrelation(protein_seq)
|
|
397
|
+
#using default parameters: lag=30, properties=["CIDH920105", "BHAR880101", "CHAM820101", "CHAM820102", "CHOC760101", "BIGC670101", "CHAM810101", "DAYM780201"], normalize=True
|
|
398
|
+
|
|
399
|
+
# MAuto_CIDH920105_1 MAuto_CIDH920105_2 MAuto_CIDH920105_3 MAuto_CIDH920105_4 MAuto_CIDH920105_5 ...
|
|
400
|
+
# -0.07786 -0.07879 -0.07906 -0.08001 0.14911 ...
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Calculate Geary Autocorrelation:
|
|
404
|
+
```python
|
|
405
|
+
geary_autocorrelation = protpy.geary_autocorrelation(protein_seq)
|
|
406
|
+
#using default parameters: lag=30, properties=["CIDH920105", "BHAR880101", "CHAM820101", "CHAM820102", "CHOC760101", "BIGC670101", "CHAM810101", "DAYM780201"], normalize=True
|
|
407
|
+
|
|
408
|
+
# GAuto_CIDH920105_1 GAuto_CIDH920105_2 GAuto_CIDH920105_3 GAuto_CIDH920105_4 GAuto_CIDH920105_5 ...
|
|
409
|
+
# 1.057 1.077 1.04 1.02 1.013 ...
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
</details>
|
|
413
|
+
|
|
414
|
+
<details>
|
|
415
|
+
<summary><b>Conjoint Triad Descriptors Usage Examples</b></summary>
|
|
416
|
+
|
|
417
|
+
Calculate Conjoint Triad:
|
|
418
|
+
```python
|
|
419
|
+
conjoint_triad = protpy.conjoint_triad(protein_seq)
|
|
420
|
+
# 111 112 113 114 115 ...
|
|
421
|
+
# 7 17 11 3 6 ...
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
</details>
|
|
425
|
+
|
|
426
|
+
<details>
|
|
427
|
+
<summary><b>CTD Descriptors Usage Examples</b></summary>
|
|
428
|
+
|
|
429
|
+
Calculate CTD:
|
|
430
|
+
```python
|
|
431
|
+
ctd = protpy.ctd(protein_seq)
|
|
432
|
+
#using default parameters: property="hydrophobicity", all_ctd=True
|
|
433
|
+
|
|
434
|
+
# hydrophobicity_CTD_C_01 hydrophobicity_CTD_C_02 hydrophobicity_CTD_C_03 normalized_vdwv_CTD_C_01 ...
|
|
435
|
+
# 0.279 0.386 0.335 0.389 ...
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
</details>
|
|
439
|
+
|
|
440
|
+
<details>
|
|
441
|
+
<summary><b>Sequence Order Descriptors Usage Examples</b></summary>
|
|
442
|
+
|
|
443
|
+
Calculate Sequence Order Coupling Number (SOCN):
|
|
444
|
+
```python
|
|
445
|
+
socn = protpy.sequence_order_coupling_number_(protein_seq)
|
|
446
|
+
#using default parameters: d=1, distance_matrix="schneider-wrede"
|
|
447
|
+
|
|
448
|
+
#401.387
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
Calculate all SOCN's per distance matrix:
|
|
452
|
+
```python
|
|
453
|
+
#using default parameters: lag=30, distance_matrix="schneider-wrede"
|
|
454
|
+
socn_all = protpy.sequence_order_coupling_number(protein_seq)
|
|
455
|
+
|
|
456
|
+
# SOCN_SW1 SOCN_SW2 SOCN_SW3 SOCN_SW4 SOCN_SW5 ...
|
|
457
|
+
# 401.387 409.243 376.946 393.042 396.196 ...
|
|
458
|
+
|
|
459
|
+
#using custom parameters: lag=10, distance_matrix="grantham"
|
|
460
|
+
socn_all = protpy.sequence_order_coupling_number(protein_seq, lag=10, distance_matrix="grantham")
|
|
461
|
+
|
|
462
|
+
# SOCN_Grant1 SOCN_Grant_2 SOCN_Grant_3 SOCN_Grant_4 SOCN_Grant_5 ...
|
|
463
|
+
# 399.125 402.153 387.820 393.111 409.096 ...
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
Calculate Quasi Sequence Order (QSO):
|
|
467
|
+
```python
|
|
468
|
+
#using default parameters: lag=30, weight=0.1, distance_matrix="schneider-wrede"
|
|
469
|
+
qso = protpy.quasi_sequence_order(protein_seq)
|
|
470
|
+
|
|
471
|
+
# QSO_SW1 QSO_SW2 QSO_SW3 QSO_SW4 QSO_SW5 ...
|
|
472
|
+
# 0.005692 0.002643 0.004947 0.002846 0.005625 ...
|
|
473
|
+
|
|
474
|
+
#using custom parameters: lag=10, weight=0.2, distance_matrix="grantham"
|
|
475
|
+
qso = protpy.quasi_sequence_order(protein_seq, lag=10, weight=0.2, distance_matrix="grantham")
|
|
476
|
+
|
|
477
|
+
# QSO_Grant1 QSO_Grant2 QSO_Grant3 QSO_Grant4 QSO_Grant5 ...
|
|
478
|
+
# 0.123287 0.079967 0.04332 0.039983 0.013332 ...
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
</details>
|
|
482
|
+
|
|
483
|
+
Documentation
|
|
484
|
+
-------------
|
|
485
|
+
The documentation for `protpy` is hosted on **ReadTheDocs** and is available [here][readthedocs].
|
|
486
|
+
|
|
487
|
+
Directories
|
|
488
|
+
-----------
|
|
489
|
+
* `/tests` - unit and integration tests for `protpy` package.
|
|
490
|
+
* `/protpy` - source code and all required external data files for package.
|
|
491
|
+
* `/docs` - `protpy` documentation.
|
|
492
|
+
* `/examples` - example notebook for protpy
|
|
493
|
+
|
|
494
|
+
Tests
|
|
495
|
+
-----
|
|
496
|
+
To run all tests, from the main `protpy` folder run:
|
|
497
|
+
```
|
|
498
|
+
python3 -m unittest discover tests -v
|
|
499
|
+
-v: verbose output flag
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
Contact
|
|
503
|
+
-------
|
|
504
|
+
If you have any questions or comments, please contact amckenna41@qub.ac.uk or raise an issue on the [Issues][Issues] tab.
|
|
505
|
+
|
|
506
|
+
References
|
|
507
|
+
----------
|
|
508
|
+
\[1\]: Mckenna, A., & Dubey, S. (2022). Machine learning based predictive model for the analysis of sequence activity relationships using protein spectra and protein descriptors. Journal of Biomedical Informatics, 128(104016), 104016. https://doi.org/10.1016/j.jbi.2022.104016 <br>
|
|
509
|
+
\[2\]: Shuichi Kawashima, Minoru Kanehisa, AAindex: Amino Acid index database, Nucleic Acids Research, Volume 28, Issue 1, 1 January 2000, Page 374, https://doi.org/10.1093/nar/28.1.374 <br>
|
|
510
|
+
\[3\]: Dong, J., Yao, ZJ., Zhang, L. et al. PyBioMed: a python library for various molecular representations of chemicals, proteins and DNAs and their interactions. J Cheminform 10, 16 (2018). https://doi.org/10.1186/s13321-018-0270-2 <br>
|
|
511
|
+
\[4\]: Reczko, M. and Bohr, H. (1994) The DEF data base of sequence based protein
|
|
512
|
+
fold class predictions. Nucleic Acids Res, 22, 3616-3619. <br>
|
|
513
|
+
\[5\]: Hua, S. and Sun, Z. (2001) Support vector machine approach for protein
|
|
514
|
+
subcellular localization prediction. Bioinformatics, 17, 721-728. <br>
|
|
515
|
+
\[6\]: Broto P, Moreau G, Vandicke C: Molecular structures: perception,
|
|
516
|
+
autocorrelation descriptor and SAR studies. Eur J Med Chem 1984, 19: 71–78. <br>
|
|
517
|
+
\[7\]: Ong, S.A., Lin, H.H., Chen, Y.Z. et al. Efficacy of different protein
|
|
518
|
+
descriptors in predicting protein functional families. BMC Bioinformatics
|
|
519
|
+
8, 300 (2007). https://doi.org/10.1186/1471-2105-8-300 <br>
|
|
520
|
+
\[8\]: Inna Dubchak, Ilya Muchink, Stephen R.Holbrook and Sung-Hou Kim. Prediction
|
|
521
|
+
of protein folding class using global description of amino acid sequence.
|
|
522
|
+
Proc.Natl. Acad.Sci.USA, 1995, 92, 8700-8704. <br>
|
|
523
|
+
\[9\]: Juwen Shen, Jian Zhang, Xiaomin Luo, Weiliang Zhu, Kunqian Yu, Kaixian Chen,
|
|
524
|
+
Yixue Li, Huanliang Jiang. Predicting proten-protein interactions based only
|
|
525
|
+
on sequences inforamtion. PNAS. 2007 (104) 4337-4341. <br>
|
|
526
|
+
\[10\]: Kuo-Chen Chou. Prediction of Protein Subcellar Locations by Incorporating
|
|
527
|
+
Quasi-Sequence-Order Effect. Biochemical and Biophysical Research
|
|
528
|
+
Communications 2000, 278, 477-483. <br>
|
|
529
|
+
\[11\]: Kuo-Chen Chou. Prediction of Protein Cellular Attributes Using
|
|
530
|
+
Pseudo-Amino Acid Composition. PROTEINS: Structure, Function, and
|
|
531
|
+
Genetics, 2001, 43: 246-255. <br>
|
|
532
|
+
\[12\]: Kuo-Chen Chou. Using amphiphilic pseudo amino acid composition to predict enzyme
|
|
533
|
+
subfamily classes. Bioinformatics, 2005,21,10-19.
|
|
534
|
+
|
|
535
|
+
Support
|
|
536
|
+
-------
|
|
537
|
+
[<img src="https://img.shields.io/github/stars/amckenna41/protpy?color=green&label=star%20it%20on%20GitHub" width="132" height="20" alt="Star it on GitHub">](https://github.com/amckenna41/protpy)
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
<a href="https://www.buymeacoffee.com/amckenna41" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
|
|
541
|
+
|
|
542
|
+
[Back to top](#TOP)
|
|
543
|
+
|
|
544
|
+
<!-- Links -->
|
|
545
|
+
[python]: https://www.python.org/downloads/release/python-360/
|
|
546
|
+
[protpy]: https://github.com/amckenna41/protpy
|
|
547
|
+
[aaindex]: https://github.com/amckenna41/aaindex
|
|
548
|
+
[varname]: https://pypi.org/project/varname/
|
|
549
|
+
[biopython]: https://biopython.org/
|
|
550
|
+
[numpy]: https://numpy.org/
|
|
551
|
+
[pandas]: https://pandas.pydata.org/
|
|
552
|
+
[PyPi]: https://pypi.org/project/protpy/
|
|
553
|
+
[demo]: https://colab.research.google.com/drive/12E3ayovpZOf6Gv-8ILwkN1zReKslEksB?usp=sharing
|
|
554
|
+
[article]: https://medium.com/@ajmckenna69/protpy-05f02f821baa
|
|
555
|
+
[Issues]: https://github.com/amckenna41/protpy/issues
|
|
556
|
+
[readthedocs]: https://protpy.readthedocs.io/en/latest
|