Skip to content

Commit 2d6817a

Browse files
author
pmblanco
committed
all functional tests run now, started fixing the tutorial
1 parent 8abf3ee commit 2d6817a

18 files changed

Lines changed: 1863 additions & 404 deletions

pyMBE/lib/lattice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,5 +333,5 @@ def __init__(self,mpc,bond_l):
333333
raise ValueError("mpc must be a non-zero positive integer.")
334334
self.mpc = mpc
335335
self.bond_l = bond_l
336-
self.box_l = (self.mpc+1)*self.bond_l.magnitude / (np.sqrt(3)*0.25)
336+
self.box_l = (self.mpc+2)*self.bond_l.magnitude / (np.sqrt(3)*0.25)
337337

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name,sigma,epsilon,cutoff,offset,initial_state
2-
D,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",D
3-
E,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",E
4-
n,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",n
2+
D,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",DH
3+
E,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",EH
4+
n,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",nH
55
S,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",S
6-
H,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",H
6+
H,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",HH
77
A,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",A
8-
K,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",K
8+
K,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",KH
99
Y,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",Y
10-
R,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",R
10+
R,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",RH
1111
G,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",G
1212
F,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",F
13-
c,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",c
13+
c,"{""magnitude"":0.4,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",cH
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
pmb_type,name,particle_name,z,es_type
22
particle_state,S,S,0,0
33
particle_state,A,A,0,1
4-
particle_state,K,K,0,2
5-
particle_state,G,G,0,3
6-
particle_state,F,F,0,4
7-
4+
particle_state,G,G,0,2
5+
particle_state,F,F,0,3
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name,sigma,epsilon,cutoff,offset,initial_state
22
CA,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",CA
3-
D,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",D
4-
E,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",E
5-
H,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",H
6-
Y,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",Y
7-
K,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",K
3+
D,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",DH
4+
E,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",EH
5+
H,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",HH
6+
Y,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",YH
7+
K,"{""magnitude"":0.35,""units"":""nm"",""dimension"":""length""}","{""magnitude"":25.69257912108585,""units"":""meV"",""dimension"":""energy""}","{""magnitude"":0.3984740271498274,""units"":""nm"",""dimension"":""length""}","{""magnitude"":0.0,""units"":""nm"",""dimension"":""length""}",KH

pyMBE/pyMBE.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,10 +269,11 @@ def _create_hydrogel_chain(self, hydrogel_chain, nodes, espresso_system, use_def
269269
start_node_id = nodes[node_start_label]["id"]
270270
end_node_id = nodes[node_end_label]["id"]
271271
# Finding a backbone vector between node_start and node_end
272-
vec_between_nodes = np.array(nodes[node_start_label]["pos"]) - np.array(nodes[node_end_label]["pos"])
272+
vec_between_nodes = np.array(nodes[node_end_label]["pos"]) - np.array(nodes[node_start_label]["pos"])
273273
vec_between_nodes = vec_between_nodes - self.lattice_builder.box_l * np.round(vec_between_nodes/self.lattice_builder.box_l)
274-
backbone_vector = np.array((vec_between_nodes/(self.lattice_builder.mpc + 1)))
275-
backbone_vector = backbone_vector / np.linalg.norm(backbone_vector)
274+
backbone_vector = vec_between_nodes / np.linalg.norm(vec_between_nodes)
275+
if reverse_residue_order:
276+
vec_between_nodes *= -1.0
276277
# Calculate the start position of the chain
277278
chain_residues = self.db.get_template(pmb_type="molecule",
278279
name=molecule_name).residue_list
@@ -292,7 +293,7 @@ def _create_hydrogel_chain(self, hydrogel_chain, nodes, espresso_system, use_def
292293
mol_id = self.create_molecule(name=molecule_name, # Use the name defined earlier
293294
number_of_molecules=1, # Creating one chain
294295
espresso_system=espresso_system,
295-
list_of_first_residue_positions=[first_bead_pos.tolist()],#Start at the first node
296+
list_of_first_residue_positions=[first_bead_pos.tolist()], #Start at the first node
296297
backbone_vector=np.array(backbone_vector)/l0,
297298
use_default_bond=use_default_bond,
298299
reverse_residue_order=reverse_residue_order)[0]

pyMBE/storage/manager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,7 @@ def get_particle_id_map(self, object_name):
997997

998998
if object_type is None:
999999
raise ValueError(f"No object named '{object_name}' found in database.")
1000+
10001001
# Maps to return
10011002
id_list = []
10021003
residue_map = {}

samples/Beyer2024/create_paper_data.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818

1919
# Import pyMBE and other libraries
2020
import pyMBE
21-
from pyMBE.lib import analysis
21+
from pyMBE.lib import analysis, handy_functions
2222
from pathlib import Path
2323
import sys
2424
import numpy as np
2525
import argparse
2626
import subprocess
27+
import pandas as pd
2728

2829
# Create an instance of pyMBE library
2930
pmb = pyMBE.pymbe_library(seed=42)
@@ -49,7 +50,7 @@
4950
parser.add_argument('--plot', action='store_true', help="Switch to plot the data")
5051
args = parser.parse_args()
5152

52-
samples_path = Path(__file__).parent
53+
samples_path = Path(pmb.root).parent / "samples"
5354

5455
# Inputs
5556
fig_label=args.fig_label
@@ -59,6 +60,16 @@
5960
## Peptide plots (Fig. 7)
6061
labels_fig7=["7a", "7b", "7c"]
6162

63+
if fig_label in labels_fig7:
64+
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "peptides"
65+
66+
if fig_label in labels_fig8:
67+
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "globular_protein"
68+
69+
if fig_label == "9":
70+
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "grxmc"
71+
72+
6273
if fig_label in labels_fig7:
6374
script_path=samples_path / "Beyer2024" / "peptide.py"
6475
if fig_label == "7a":
@@ -71,7 +82,7 @@
7182
raise RuntimeError()
7283
pH_range = np.linspace(2, 12, num=21)
7384
for pH in pH_range:
74-
run_command=[sys.executable, script_path, "--sequence", sequence, "--pH", str(pH), "--mode", mode]
85+
run_command=[sys.executable, script_path, "--sequence", sequence, "--pH", str(pH), "--mode", mode, "--output", time_series_folder_path]
7586
print(subprocess.list2cmdline(run_command))
7687
subprocess.check_output(run_command)
7788

@@ -87,7 +98,7 @@
8798
protein_pdb=pdb_codes[fig_label]
8899
path_to_cg = pmb.root / "parameters" / "globular_proteins" / f"{protein_pdb}.vtf"
89100
for pH in pH_range:
90-
run_command=run_command_common + ["--pH", str(pH),"--pdb", protein_pdb, "--path_to_cg", str(path_to_cg)]
101+
run_command=run_command_common + ["--pH", str(pH),"--pdb", protein_pdb, "--path_to_cg", str(path_to_cg), "--output", time_series_folder_path]
91102
print(subprocess.list2cmdline(run_command))
92103
subprocess.check_output(run_command)
93104

@@ -97,19 +108,11 @@
97108
pH_range = np.linspace(1, 13, num=13)
98109
c_salt_res = 0.01 * pmb.units.mol/pmb.units.L
99110
for pH in pH_range:
100-
run_command=[sys.executable, script_path, "--c_salt_res", str(0.01), "--c_mon_sys", str(0.435), "--pH_res", str(pH), "--pKa_value", str(4.0), "--mode", mode]
111+
run_command=[sys.executable, script_path, "--c_salt_res", str(0.01), "--c_mon_sys", str(0.435), "--pH_res", str(pH), "--pKa_value", str(4.0), "--mode", mode, "--output", time_series_folder_path]
101112
print(subprocess.list2cmdline(run_command))
102113
subprocess.check_output(run_command)
103114

104115
# Analyze all time series
105-
if fig_label in labels_fig7:
106-
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "peptides"
107-
108-
if fig_label in labels_fig8:
109-
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "globular_protein"
110-
111-
if fig_label == "9":
112-
time_series_folder_path=samples_path / "Beyer2024" / "time_series" / "grxmc"
113116

114117
data=analysis.analyze_time_series(path_to_datafolder=time_series_folder_path)
115118

@@ -124,9 +127,8 @@
124127
import matplotlib.pyplot as plt
125128
import matplotlib as mpl
126129

127-
plt.rc('text', usetex=True)
128-
plt.rc('text.latex', preamble=r"\usepackage{mathptmx}")
129-
plt.rcParams["font.family"] = "serif"
130+
plt.rcParams['text.usetex'] = False
131+
plt.rcParams['font.family'] = 'serif'
130132
plt.tight_layout()
131133
mpl.rc('axes', linewidth=1)
132134
mpl.rcParams['lines.markersize'] = 5
@@ -162,11 +164,13 @@
162164
pmb.load_database(par_path)
163165

164166
# Load ref data
165-
ref_data=analysis.read_csv_file(path=Path(__file__).parent / "data" / fig_data[fig_label])
167+
ref_data=pd.read_csv(filepath_or_buffer=Path(pmb.root).parent / "testsuite" / "data"/ fig_data[fig_label])
166168

167169
# Calculate and plot Henderson-Hasselbalch (HH)
168170
if fig_label in labels_fig7:
169-
171+
handy_functions.define_peptide_AA_residues(sequence=sequence,
172+
model="1beadAA",
173+
pmb=pmb)
170174
pmb.define_peptide (name=sequence,
171175
sequence=sequence,
172176
model="1beadAA")

0 commit comments

Comments
 (0)