From 107644b5311efc0fffbcde37d87dcc46aa7310ef Mon Sep 17 00:00:00 2001 From: Chris Maffeo <cmaffeo2@illinois.edu> Date: Mon, 16 Dec 2024 17:32:38 -0600 Subject: [PATCH] Copy arbmodel commit 7ceb134 to arbdmodel/submodule --- mrdna/arbdmodel/submodule/__init__.py | 6 +++++- mrdna/arbdmodel/submodule/mpipi_polymer.py | 7 +++---- mrdna/arbdmodel/submodule/onck_polymer_model.py | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mrdna/arbdmodel/submodule/__init__.py b/mrdna/arbdmodel/submodule/__init__.py index 2b9fbe8..61ba106 100644 --- a/mrdna/arbdmodel/submodule/__init__.py +++ b/mrdna/arbdmodel/submodule/__init__.py @@ -479,7 +479,7 @@ class ParticleType(): if diffusivity is not None: self.diffusivity = diffusivity self.parent = parent self.rigid_body_potentials = rigid_body_potentials - devlogger.info(f'Created {type(self)} {name} @ {hex(id(self))}') + devlogger.debug(f'Created {type(self)} {name} @ {hex(id(self))}') for key in ParticleType.excludedAttributes: assert( key not in kwargs ) @@ -1043,6 +1043,10 @@ class ArbdModel(PdbModel): self.group_sites = [] + def add(self, obj): + self._clear_types() # TODO: call upon (potentially nested) `child.add(add)` + return Parent.add(self, obj) + def add_group_site(self, particles, weights=None): g = ArbdModel._GroupSite(particles, weights) self.group_sites.append(g) diff --git a/mrdna/arbdmodel/submodule/mpipi_polymer.py b/mrdna/arbdmodel/submodule/mpipi_polymer.py index 61e5196..ef9cdaa 100644 --- a/mrdna/arbdmodel/submodule/mpipi_polymer.py +++ b/mrdna/arbdmodel/submodule/mpipi_polymer.py @@ -5,11 +5,10 @@ import numpy as np import sys import pandas as pd ## Local imports -from . import logger, ParticleType, PointParticle, get_resource_path +from . import logger, ParticleType, PointParticle from .polymer import PolymerBeads, PolymerModel from .interactions import AbstractPotential, HarmonicBond - """Define particle types""" _types = dict( A = ParticleType("ALA", @@ -150,7 +149,7 @@ class MpipiNonbonded(AbstractPotential): def potential(self, r, types): """ Electrostatics """ typeA, typeB = types - ld = self.debye_length + ld = self.debye_length q1 = typeA.charge*0.75 q2 = typeB.charge*0.75 D = 80 # dielectric of water @@ -159,7 +158,7 @@ class MpipiNonbonded(AbstractPotential): u_elec = (A*q1*q2/D)*np.exp(-r/ld) / r """Mpipi Wang-Frenkel Potential""" - WF=pd.read_csv(get_resource_path("mpipi_protein_resname.csv"),index_col=0) + WF=pd.read_csv("mpipi_protein_resname.csv",index_col=0) indices=list(df.columns) if indices.index(typeA.resname)<indices.index(typeB.resname): sigma_ij=WF[typeB.resname][typeA.resname+"_sigma"]*10 diff --git a/mrdna/arbdmodel/submodule/onck_polymer_model.py b/mrdna/arbdmodel/submodule/onck_polymer_model.py index a59fa80..f2ababf 100644 --- a/mrdna/arbdmodel/submodule/onck_polymer_model.py +++ b/mrdna/arbdmodel/submodule/onck_polymer_model.py @@ -244,6 +244,7 @@ class OnckNonbonded(AbstractPotential): u_lj = eps * (3*r8 - 4*r6) except: + sigma = 6.0 r6 = (sigma/r)**6 r8 = (sigma/r)**8 @@ -251,7 +252,6 @@ class OnckNonbonded(AbstractPotential): epsilon_hp = 3.1070746 # units "13 kJ/N_A" kcal_mol epsilon_rep = 2.3900574 # units "10 kJ/N_A" kcal_mol - sigma = 6.0 epsilon = epsilon_hp*np.sqrt( (typeA.epsilon*typeB.epsilon)**alpha ) u_lj = (epsilon_rep-epsilon) * r8 @@ -363,6 +363,7 @@ class OnckModel(PolymerModel): if version not in _types_versions: raise ValueError(f'Unkown Onck model version "{version}"') self.version = version + self.types_dict = _types_versions[version] logger.info(f'Using an implementation of the Onck model {version_name[self.version]} for disordered FG-Nup peptides.') _msg = 'Please cite all appropriate articles, including:\n' @@ -398,7 +399,7 @@ class OnckModel(PolymerModel): i = self.types.index(type_) if type_ in self.types else 0 for t in self.types[i:]: # self.add_nonbonded_interaction( interaction, typeA=type_, typeB=t ) - self.useNonbondedScheme( interaction, typeA=type_, typeB=t ) + self.add_nonbonded_interaction( interaction, typeA=type_, typeB=t ) def _generate_polymer_beads(self, polymer, sequence, polymer_index=None): return OnckBeads(polymer, sequence, -- GitLab