Hello, I am having a great problem with modeller 9v1. My aim is to model 2 chain protein from a 2 chain template with a ligands. I want two ligands: Ca metal ion and SOX (Penicillin G sulphoxide). My template pdb file briefly looks like this: ---------------------------------------------------------------------------------------------------- ATOM 1 N SER A 3 27.496 31.222 28.262 1.00 48.33 N ATOM 2 CA SER A 3 27.785 31.042 26.803 1.00 43.97 C ... etc to the end of chain a TER 1679 ALA A 209 ATOM 1684 N SER B 1 14.845 1.596 -1.736 1.00 6.93 N ATOM 1685 CA SER B 1 15.548 2.917 -1.659 1.00 6.75 C ATOM 1686 C SER B 1 16.489 3.059 -2.844 1.00 8.04 C ..... ATOM 6113 NE ARG B 557 26.460 16.023 30.916 1.00 23.74 N ATOM 6114 CZ ARG B 557 27.175 15.276 30.094 1.00 19.20 C ATOM 6115 NH1 ARG B 557 28.016 15.921 29.310 1.00 21.83 N ATOM 6116 NH2 ARG B 557 27.069 13.952 30.055 1.00 20.49 N ATOM 6117 OXT ARG B 557 23.973 18.664 34.656 1.00 29.98 O TER 6118 ARG B 557 .... Cutting useless HETATM HETATM 6159 CA CA B1568 23.187 -16.230 6.242 1.00 10.86 CA << Ca ion HETATM 6160 O8 SOX B1569 13.279 0.047 0.037 1.00 37.00 O << SOX ... HETATM 6161 C7 SOX B1569 13.688 -1.062 0.060 1.00 38.52 C .. HETATM 6166 O12 SOX B1569 13.790 -4.072 -2.049 1.00 54.27 O ...etc to the end of SOX (I guess resid for SOX = 569, chain B1, ?) -----------------------------------------------------------------------------------------------------
I have made alignment in PIR using chain breaks "/" and block residues "." for Ca and SOX. My alignment looks like this: ----------------------------------------------------------------------------------------------------- >P1;1gm9 structureX:1gm9.pdb:3:A:569:B1:::: #Starting from A resid =3(because first two are missing) and finishing with SOX --SSSEIKIVRDEYG-PHIYANDTWHLFYGYGYVVAQDRLFQMEMARRSTQGTVAEVLGK DFVKFDKDIRRNYWPDAIRAQIAALSPEDMSILQGYADGMNAWIDKVNTNPETLLPKQFN TFGFTPKRWEPFDVAMIFVGTMANRFSDSTSEIDNLALLTALKDKYGVSQGMAVFNQLKW LVNPSAPTTIAVQESNYPLKFNQQNSQTA/ #Chain break = ending chain A SNMWVIGKSKAQDAKAIMVNGPQFGWYAPAY TYGIGLHGAGYDVTGNTPFAYPGLVFGHNGVISWGSTAGFGDDVDIFAERLSAEKPGYYL HNGKWVKMLSREETITVKNGQAETFTVWRTVHGNILQTDQTTQTAYAKSRAWDGKEVASL LAWTHQMKAKNWQEWTQQAAKQALTINWYYADVNGNIGYVHTGAYPDRQSGHDPRLPVPG TGKWDWKGLLPFEMNPKVYNPQSGYIANWNNSPQKDYPASDLFAFLWGGADRVTEIDRLL EQKPRLTADQAWDVIRQTSRQDLNLRLFLPTLQAATSGLTQSDPRRQLVETLTRWDGINL LNDDGKTWQQPGSAILNVWLTSMLKRTVVAAVPMPFDKWYSASGYETTQDGPTGSLNISV GAKILYEAVQGDKSPIPQAVDLFAGKPQQEVVLAALEDTWETLSKRYGNNVSNWKTPAMA LTFRANNFFGVPQAAAEETRHQAEYQNRGTENDMIVFSPTTSDRPVLAWDVVAPGQSGFI APDGTVDKHYEDQLKMYENFGRKSLWLTKQDVEAHKESQEVLHVQR/..* #Chain break = ending chain B and ".." for two HETATM
>P1;1klc sequence:1klc: : : : ::: 0.00: 0.00 ASPPTEVKIVRDEYGMPHIYADDTYRLFYGYGYVVAQDRLFQMEMARRSTQGTVSEVLGK AFVSFDKDIRQNYWPDSIRAQIASLSAEDKSILQGYADGMNAWIDKVNASPDKLLPQQFS TFGFKPKHWEPFDVAMIFVGTMANRFSDSTSEIDNLALLTAVKDKYGNDEGMAVFNQLKW LVNPSAPTTIAARESSYPLKFDLQNTQTA/ SNMWVIGKNKAQDAKAIMVNGPQFGWYAPAY TYGIGLHGAGYDVTGNTPFAYPGLVFGHNGTISWGSTAGFGDDVDIFAEKLSAEKPGYYQ HNGEWVKMLSRKETIAVKDGQPETFTVWRTLDGNVIKTDTRTQTAYAKARAWAGKEVASL LAWTHQMKAKNWPEWTQQAAKQALTINWYYADVNGNIGYVHTGAYPDRQPGHDPRLPVP- DGKWDWKGLLSFDLNPKVYNPQSGYIANWNNSPQKDYPASDLFAFLWGGADRVTEIDTIL DKQPRFTADQAWDVIRQTSLRDL-LRLFLPALKDATANLAENDPRRQLVDKLASWDGENL VNDDGKTYQQPGSAILNAWLTSMLKRTVVAAVPAPFGKWYSASGYETTQDGPTGSLNISV GAKILYEALQGDKSPIPQAVDLFGGKPEQEVILAALDDAWQTLSKRYGNDVTGWKTPAMA LTFRANNFFGVPQAAAKEARHQAEYQNRGTENDMIVFSPTSGNRPVLAWDVVAPGQSGFI APDGKADKHYDDQLKMYESFGRKSLWLTPQDVDEHKESQEVLQVQR/--* ---------------------------------------------------------------------------------------------------------
Then I used advanced example as a template to write my input script: --------------------------------------------------------------------------------------------------------- from modeller import * from modeller.automodel import *
class mymodel(automodel): def special_restraints(self, aln): rsr = self.restraints for ids in (('NH2:471:B', 'O12:766:C'), # That is for SOX, no restraints for Ca ('ND2:449:B', 'O16:766:C'), ('CE2:280:B', 'C5:766:C')): atoms = [self.atoms[i] for i in ids] rsr.add(forms.upper_bound(group=physical.upper_distance, feature=features.distance(*atoms), mean=3.04, stdev=0.1)) env = environ() env.io.hetatm = True a = mymodel(env, alnfile='1klc_1gm9.ali', knowns='1gm9m, 1klc_model', sequence='1klc') a.starting_model = 1 a.ending_model = 1 a.make() ------------------------------------------------------------------------------------------------------
Modeller starts with this error: "import site' failed; use -v for traceback", (I guess it is not a big problem because in other cases it does not cause any trouble) , then program starts calculating, and then I always get : ----------------------------------------------------------------------------------------------------- Traceback (most recent call last): File "model-multiple-hetero.py", line 47, in ? a.make() File "C:\Program Files\Modeller9v1\modlib\modeller\automodel\automodel.py", li ne 108, in make self.homcsr(exit_stage) File "C:\Program Files\Modeller9v1\modlib\modeller\automodel\automodel.py", li ne 427, in homcsr self.mkhomcsr(selection(self), aln) File "C:\Program Files\Modeller9v1\modlib\modeller\automodel\automodel.py", li ne 537, in mkhomcsr self.special_restraints(aln) File "model-multiple-hetero.py", line 10, in special_restraints atoms = [self.atoms[i] for i in ids] File "C:\Program Files\Modeller9v1\modlib\modeller\coordinates.py", line 127, in __getitem__ (self.offset, self.length, self.suffix)) File "C:\Program Files\Modeller9v1\modlib\modeller\util\modutil.py", line 76, in handle_seq_indx int_indx = lookup_func(*args) File "C:\Program Files\Modeller9v1\modlib\modeller\coordinates.py", line 42, i n _indxatm raise KeyError, ("No such atom: %s" % indx) KeyError: 'No such atom: O12:766:C' ---------------------------------------------------------------------------------------------------------- That means, that it can not see atom O12:766:C. I am sure, that my seq is 764 residues long (I mean residues in seq, not position in alignment). So Ca must be 765 and SOX - 766. I have tried different counts (766,765,767...) and different chains (B1, C) but it did not help. I have tried to model only chain B with SOX, but it did not help. If I remove user restraints and just use automodel, it output good model, but without ligands at all! And the latter is what I absolutely do no understand.
My log has this note about SOX: ----------------------------------------------------------------------------------------------------------- read_pd_459W> Residue type SOX not recognized. 'automodel' model building will treat this residue as a rigid body. To use real parameters, add the residue type to ${LIB}/restyp.lib, its topology to ${LIB}/top_*.lib, and suitable forcefield parameters to ${LIB}/par.lib. ----------------------------------------------------------------------------------------------------------- And nothing about CA (may be the program takes CA as Calpha?).
So my questions are: 1. What am I doing wrong? 2. Why modeller outputs model with no ligands if I use default automodel with no restraints (env.io.hetatm =True)?. What do you think? Thank you for your suggestions.
P.S. I am using windows compilation. May it be some platform specific modeller bug?
Dimitry.A.Suplatov wrote: > I am having a great problem with modeller 9v1. > My aim is to model 2 chain protein from a 2 chain template with a > ligands. I want two ligands: Ca metal ion and SOX (Penicillin G > sulphoxide). My template pdb file briefly looks like this: > ---------------------------------------------------------------------------------------------------- > ATOM 1 N SER A 3 27.496 31.222 28.262 1.00 > 48.33 N > ATOM 2 CA SER A 3 27.785 31.042 26.803 1.00 > 43.97 C > ... etc to the end of chain a > TER 1679 ALA A 209 > ATOM 1684 N SER B 1 14.845 1.596 -1.736 1.00 > 6.93 N > ATOM 1685 CA SER B 1 15.548 2.917 -1.659 1.00 > 6.75 C > ATOM 1686 C SER B 1 16.489 3.059 -2.844 1.00 > 8.04 C > ..... > ATOM 6113 NE ARG B 557 26.460 16.023 30.916 1.00 > 23.74 N > ATOM 6114 CZ ARG B 557 27.175 15.276 30.094 1.00 > 19.20 C > ATOM 6115 NH1 ARG B 557 28.016 15.921 29.310 1.00 > 21.83 N > ATOM 6116 NH2 ARG B 557 27.069 13.952 30.055 1.00 > 20.49 N > ATOM 6117 OXT ARG B 557 23.973 18.664 34.656 1.00 > 29.98 O > TER 6118 ARG B 557 > .... Cutting useless HETATM > HETATM 6159 CA CA B1568 23.187 -16.230 6.242 1.00 > 10.86 CA << Ca ion > HETATM 6160 O8 SOX B1569 13.279 0.047 0.037 1.00 > 37.00 O << SOX ... > HETATM 6161 C7 SOX B1569 13.688 -1.062 0.060 1.00 > 38.52 C > .. > HETATM 6166 O12 SOX B1569 13.790 -4.072 -2.049 1.00 > 54.27 O > ...etc to the end of SOX (I guess resid for SOX = 569, chain B1, ?)
No - see the definition of the PDB file format at http://www.wwpdb.org/documentation/format23/sect9.html
Your SOX residue is number 1569 in chain B. The PDB file format has only one character for the chain ID, so chain "B1" is impossible.
> My alignment looks like this: > ----------------------------------------------------------------------------------------------------- > >P1;1gm9 > structureX:1gm9.pdb:3:A:569:B1:::: #Starting from A resid =3(because > first two are missing) and finishing with SOX
Consequently, this should also be 3:A:1569:B.
> --SSSEIKIVRDEYG-PHIYANDTWHLFYGYGYVVAQDRLFQMEMARRSTQGTVAEVLGK > DFVKFDKDIRRNYWPDAIRAQIAALSPEDMSILQGYADGMNAWIDKVNTNPETLLPKQFN > TFGFTPKRWEPFDVAMIFVGTMANRFSDSTSEIDNLALLTALKDKYGVSQGMAVFNQLKW > LVNPSAPTTIAVQESNYPLKFNQQNSQTA/ #Chain break = ending chain A > SNMWVIGKSKAQDAKAIMVNGPQFGWYAPAY > TYGIGLHGAGYDVTGNTPFAYPGLVFGHNGVISWGSTAGFGDDVDIFAERLSAEKPGYYL > HNGKWVKMLSREETITVKNGQAETFTVWRTVHGNILQTDQTTQTAYAKSRAWDGKEVASL > LAWTHQMKAKNWQEWTQQAAKQALTINWYYADVNGNIGYVHTGAYPDRQSGHDPRLPVPG > TGKWDWKGLLPFEMNPKVYNPQSGYIANWNNSPQKDYPASDLFAFLWGGADRVTEIDRLL > EQKPRLTADQAWDVIRQTSRQDLNLRLFLPTLQAATSGLTQSDPRRQLVETLTRWDGINL > LNDDGKTWQQPGSAILNVWLTSMLKRTVVAAVPMPFDKWYSASGYETTQDGPTGSLNISV > GAKILYEAVQGDKSPIPQAVDLFAGKPQQEVVLAALEDTWETLSKRYGNNVSNWKTPAMA > LTFRANNFFGVPQAAAEETRHQAEYQNRGTENDMIVFSPTTSDRPVLAWDVVAPGQSGFI > APDGTVDKHYEDQLKMYENFGRKSLWLTKQDVEAHKESQEVLHVQR/..* > #Chain break = ending chain B and ".." for two HETATM
That's fine except that there is no chain break between chain B and your two HETATMs in your PDB. The HETATMs are also in chain B, so you should leave out that last chain break.
> >P1;1klc > sequence:1klc: : : : ::: 0.00: 0.00 > ASPPTEVKIVRDEYGMPHIYADDTYRLFYGYGYVVAQDRLFQMEMARRSTQGTVSEVLGK > AFVSFDKDIRQNYWPDSIRAQIASLSAEDKSILQGYADGMNAWIDKVNASPDKLLPQQFS > TFGFKPKHWEPFDVAMIFVGTMANRFSDSTSEIDNLALLTAVKDKYGNDEGMAVFNQLKW > LVNPSAPTTIAARESSYPLKFDLQNTQTA/ > SNMWVIGKNKAQDAKAIMVNGPQFGWYAPAY > TYGIGLHGAGYDVTGNTPFAYPGLVFGHNGTISWGSTAGFGDDVDIFAEKLSAEKPGYYQ > HNGEWVKMLSRKETIAVKDGQPETFTVWRTLDGNVIKTDTRTQTAYAKARAWAGKEVASL > LAWTHQMKAKNWPEWTQQAAKQALTINWYYADVNGNIGYVHTGAYPDRQPGHDPRLPVP- > DGKWDWKGLLSFDLNPKVYNPQSGYIANWNNSPQKDYPASDLFAFLWGGADRVTEIDTIL > DKQPRFTADQAWDVIRQTSLRDL-LRLFLPALKDATANLAENDPRRQLVDKLASWDGENL > VNDDGKTYQQPGSAILNAWLTSMLKRTVVAAVPAPFGKWYSASGYETTQDGPTGSLNISV > GAKILYEALQGDKSPIPQAVDLFGGKPEQEVILAALDDAWQTLSKRYGNDVTGWKTPAMA > LTFRANNFFGVPQAAAKEARHQAEYQNRGTENDMIVFSPTSGNRPVLAWDVVAPGQSGFI > APDGKADKHYDDQLKMYESFGRKSLWLTPQDVDEHKESQEVLQVQR/--*
The last chain break is thus also not necessary here. Plus, Modeller won't build any ligands in your model because you aligned your ligands with gaps in the model. Replace that final '--' with '..' to get the ligands.
> Modeller starts with this error: "import site' failed; use -v for > traceback"
That's a Python warning, which you can ignore: see http://salilab.org/modeller/release.html#issues
> KeyError: 'No such atom: O12:766:C' > ---------------------------------------------------------------------------------------------------------- > That means, that it can not see atom O12:766:C.
It can't find the SOX residue because your alignment does not say to build any ligands. To be sure of the residue numbers, look at the initial model (.ini) file that Modeller generated.
> If I remove user restraints and just use automodel, it output good > model, but without ligands at all! > And the latter is what I absolutely do no understand.
Fix your alignment and everything should work correctly.
> My log has this note about SOX: > ----------------------------------------------------------------------------------------------------------- > read_pd_459W> Residue type SOX not recognized. 'automodel' model building > will treat this residue as a rigid body. > To use real parameters, add the residue type to > ${LIB}/restyp.lib, > its topology to ${LIB}/top_*.lib, and suitable forcefield > parameters to ${LIB}/par.lib.
Indeed.
> And nothing about CA (may be the program takes CA as Calpha?).
No, of course not - Calpha is an atom type, not a residue. Modeller already knows what the "CA" residue type is - it's defined in restyp.lib.
> 2. Why modeller outputs model with no ligands if I use default automodel > with no restraints (env.io.hetatm =True)?.
Turning on env.io.hetatm instructs Modeller to read HETATM residues from your template PDBs. It does not force those HETATMs to appear in your model - the alignment controls that.
> P.S. I am using windows compilation. May it be some platform specific > modeller bug?
No. Ligand modeling works fine in Windows.
Ben Webb, Modeller Caretaker
participants (2)
-
Dimitry.A.Suplatov
-
Modeller Caretaker