Modeller is transforming ZN2 atom names to ZN
Hello all, I'm using modeller to mutate a single residue in a PDB template that contains ZN atoms.
The mutation is taking place correctly, but the resulting PDB is written with the name ZN instead of ZN2, which is in the original template. My ZN is in a different coordination state and I need the name to stay ZN2 in the mutated structure.
I have tried setting env.io.heatatm = True, but the outcome is the same.
Is there a way to explicitly set modeller to leave the atom names untouched? Thanks in advance for any help. Pedro
Here is my code:
env = environ() env.io.atom_files_directory = ['.', './atom_files'] env.libs.topology.read(file='$(LIB)/top_heav.lib') env.libs.parameters.read(file='$(LIB)/par.lib') env.io.hetatm = True
#Prepare Modeller mdl = model(self.env, file=pdb_file) aln = alignment(self.env) aln.append_model(mdl, atom_files=pdb_file, align_codes=pdb_file)
chain_id, res_id = mutatnt.split(":") pointmut = f'{res_id}:{chain_id}' new_residue = "A" sel = selection(mdl.residues[pointmut]) sel.mutate(residue_type=self.res1to3[new_residue]) #mutate
# Generate the mutated model aln.append_model(mdl, align_codes='mut') mdl.clear_topology() mdl.generate_topology(aln['mut']) mdl.transfer_xyz(aln) mdl.build(initialize_xyz=False, build_method='INTERNAL_COORDINATES') mdl2 = model(self.env, file=pdb_file)
mdl.res_num_from(mdl2,aln)
# Write the mutated structure to a PDB file mdl.write(file=output_file, model_format='PDB')
On 2/27/23 10:22 AM, Pedro Guillem via modeller_usage wrote: > I'm using modeller to mutate a single residue in a PDB template that > contains ZN atoms. > > The mutation is taking place correctly, but the resulting PDB is written > with the name ZN instead of ZN2, which is in the original template. My > ZN is in a different coordination state and I need the name to stay > ZN2 in the mutated structure.
Yes, Modeller treats the ZN2 residue type as a synonym for ZN. This is defined in the modlib/restyp.lib file in your Modeller distribution. If you like, you can modify this file to remove the synonym, i.e. find the line
HETATM | ZN ZN2 | z | | ZN2 | zinc, +2
and replace with
HETATM | ZN | z | | ZN2 | zinc, +2
Modeller will then treat ZN and ZN2 as two different residue types. Since it then won't recognize ZN2, it will treat it as a rigid body, which is probably fine for your application, although you could add a new ZN2-specific residue type if you want as per https://salilab.org/modeller/FAQ.html#8
Ben Webb, Modeller Caretaker
Awesome Ben, thank you so much for your reply!!! As long as the atom name is the same it will be fine.
I just modified restyp.lib like you suggested but the output PDB is still generated with ZN only. I also deactivated/activated the conda environment (where modeller is installed). I tried both env.io.heatatm True and False.
ORIGINAL: ATOM 599 ZN ZN2 A 74 28.353 -59.777 92.760 1.00 0.00 ZN ATOM 600 ZN ZN0 A 75 40.834 -53.893 90.903 1.00 0.00 ZN ATOM 601 ZN ZN2 A 76 26.392 -65.030 97.280 1.00 0.00 ZN
POST-MODELLER: HETATM 600 ZN ZN A 74 28.353 -59.777 92.760 1.00 0.00 ZN ATOM 601 ZN ZN0 A 75 40.834 -53.893 90.903 1.00 0.00 ZN TER 602 ZN0 A 75 HETATM 603 ZN ZN A 76 26.392 -65.030 97.280 1.00 0.00 ZN
Any hints? Pedro
El lun, 27 feb 2023 a las 20:24, Modeller Caretaker (< modeller-care@salilab.org>) escribió:
> On 2/27/23 10:22 AM, Pedro Guillem via modeller_usage wrote: > > I'm using modeller to mutate a single residue in a PDB template that > > contains ZN atoms. > > > > The mutation is taking place correctly, but the resulting PDB is written > > with the name ZN instead of ZN2, which is in the original template. My > > ZN is in a different coordination state and I need the name to stay > > ZN2 in the mutated structure. > > Yes, Modeller treats the ZN2 residue type as a synonym for ZN. This is > defined in the modlib/restyp.lib file in your Modeller distribution. If > you like, you can modify this file to remove the synonym, i.e. find the > line > > HETATM | ZN ZN2 | z | | ZN2 | zinc, +2 > > and replace with > > HETATM | ZN | z | | ZN2 | zinc, +2 > > Modeller will then treat ZN and ZN2 as two different residue types. > Since it then won't recognize ZN2, it will treat it as a rigid body, > which is probably fine for your application, although you could add a > new ZN2-specific residue type if you want as per > https://salilab.org/modeller/FAQ.html#8 > > Ben Webb, Modeller Caretaker > -- > modeller-care@salilab.org https://salilab.org/modeller/ > Modeller mail list: https://salilab.org/mailman/listinfo/modeller_usage >
participants (2)
-
Modeller Caretaker
-
Pedro Guillem