-
Notifications
You must be signed in to change notification settings - Fork 0
/
CCSB_v2_1_1.py
100 lines (99 loc) · 4.3 KB
/
CCSB_v2_1_1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
"""THIS PROGRAM CALCULATES THE CCS BOUNDARIES FOR A GIVEN AMINO ACID SEQUENCE"""
import pandas as pd
import math
""""THIS FUNCTION READS A SEQUENCE INPUT FILE AND RETURNS A LIST"""
def get_list(sequence):
sequence = list(sequence)
for i in sequence:
if i == '\n':
sequence.remove(i)
return sequence
########################################################################################################################
def get_count(sequence):
sequence = get_list(sequence)
AADICT = {'A': {'Residue':71.08, 'Vol':92, 'Count': 0},
'R': {'Residue':156.19, 'Vol':225, 'Count': 0},
'N': {'Residue':114.11, 'Vol':135, 'Count': 0},
'D': {'Residue':115.09, 'Vol':125, 'Count': 0},
'C': {'Residue':103.15, 'Vol':106, 'Count': 0},
'E': {'Residue':129.12, 'Vol':155, 'Count': 0},
'Q': {'Residue':128.13, 'Vol':161, 'Count': 0},
'G': {'Residue':57.05, 'Vol':66, 'Count': 0},
'H': {'Residue':137.14, 'Vol':167, 'Count': 0},
'I': {'Residue':113.16, 'Vol':169, 'Count': 0},
'L': {'Residue':113.16, 'Vol':168, 'Count': 0},
'K': {'Residue':128.18, 'Vol':171, 'Count': 0},
'M': {'Residue':131.20, 'Vol':171, 'Count': 0},
'F': {'Residue':147.18, 'Vol':203, 'Count': 0},
'P': {'Residue':97.12, 'Vol':129, 'Count': 0},
'S': {'Residue':87.08, 'Vol':99, 'Count': 0},
'T': {'Residue':101.11, 'Vol':122, 'Count': 0},
'W': {'Residue':186.22, 'Vol':240, 'Count': 0},
'Y': {'Residue':163.13, 'Vol':203, 'Count': 0},
'V': {'Residue':99.13, 'Vol':142, 'Count': 0}}
for i in sequence:
AADICT[i]['Count'] += 1
return AADICT
########################################################################################################################
def get_mass(sequence):
AADICT = get_count(sequence)
mass = 0
for i in AADICT:
mass += AADICT[i]['Count'] * AADICT[i]['Residue']
return mass
########################################################################################################################
def get_vol(sequence):
AADICT = get_count(sequence)
total = 0
for i in AADICT:
total += AADICT[i]['Count'] * AADICT[i]['Vol']
return total
########################################################################################################################
def get_span(sequence):
AADICT = get_count(sequence)
span = 0
for i in AADICT:
span += AADICT[i]['Count']
return span
########################################################################################################################
def get_lower(sequence):
mass = get_mass(sequence)
pi = math.pi
vol = mass/0.904 # where 0.904 is the protein density
r = ((3 * vol) / (4 * pi)) ** (1 / 3)
CCS = pi * (r ** 2)
return CCS
########################################################################################################################
def get_higher(sequence):
span = get_span(sequence)
vol = get_vol(sequence)
pi = math.pi
total = vol / span
r = (total / (pi * 3.63)) ** (1 / 2)
length = 3.63 * span
CCS = (4 / pi) * r * length + 2 * (r ** 2)
return CCS
########################################################################################################################
def low_scaling(sequence):
lower = get_lower(sequence)
factor = 1.19
lower = lower * factor
return lower
########################################################################################################################
def high_scaling(sequence):
higher = get_higher(sequence)
factor = 1.19
higher = higher * factor
return higher
####################################### TESTING ########################################################################
#sequence = ['R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R']
#print(get_list(sequence))
#print(get_count(sequence))
#print(get_mass(sequence))
#print(get_vol(sequence))
#print(get_span(sequence))
#print(get_lower(sequence))
#print(get_higher(sequence))
#print(low_scaling(sequence))
#print(high_scaling(sequence))
#########################################################################################################################