You can subscribe to this list here.
| 2005 |
Jan
(70) |
Feb
(200) |
Mar
(222) |
Apr
(198) |
May
(122) |
Jun
(74) |
Jul
(171) |
Aug
(235) |
Sep
(118) |
Oct
(165) |
Nov
(276) |
Dec
(167) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(102) |
Feb
(124) |
Mar
(90) |
Apr
(155) |
May
(162) |
Jun
(285) |
Jul
(142) |
Aug
(136) |
Sep
(251) |
Oct
(188) |
Nov
(156) |
Dec
(144) |
| 2007 |
Jan
(231) |
Feb
(151) |
Mar
(142) |
Apr
(69) |
May
(66) |
Jun
(88) |
Jul
(61) |
Aug
(82) |
Sep
(125) |
Oct
(167) |
Nov
(115) |
Dec
(70) |
| 2008 |
Jan
(112) |
Feb
(109) |
Mar
(163) |
Apr
(239) |
May
(185) |
Jun
(147) |
Jul
(123) |
Aug
(142) |
Sep
(134) |
Oct
(106) |
Nov
(151) |
Dec
(114) |
| 2009 |
Jan
(143) |
Feb
(188) |
Mar
(121) |
Apr
(188) |
May
(193) |
Jun
(113) |
Jul
(161) |
Aug
(172) |
Sep
(95) |
Oct
(157) |
Nov
(123) |
Dec
(112) |
| 2010 |
Jan
(61) |
Feb
(115) |
Mar
(163) |
Apr
(138) |
May
(152) |
Jun
(133) |
Jul
(228) |
Aug
(135) |
Sep
(230) |
Oct
(214) |
Nov
(178) |
Dec
(225) |
| 2011 |
Jan
(197) |
Feb
(284) |
Mar
(244) |
Apr
(190) |
May
(119) |
Jun
(195) |
Jul
(305) |
Aug
(204) |
Sep
(175) |
Oct
(196) |
Nov
(166) |
Dec
(170) |
| 2012 |
Jan
(203) |
Feb
(197) |
Mar
(255) |
Apr
(153) |
May
(111) |
Jun
(130) |
Jul
(82) |
Aug
(207) |
Sep
(103) |
Oct
(173) |
Nov
(150) |
Dec
(171) |
| 2013 |
Jan
(156) |
Feb
(242) |
Mar
(216) |
Apr
(264) |
May
(116) |
Jun
(218) |
Jul
(192) |
Aug
(255) |
Sep
(157) |
Oct
(209) |
Nov
(227) |
Dec
(222) |
| 2014 |
Jan
(207) |
Feb
(214) |
Mar
(223) |
Apr
(125) |
May
(183) |
Jun
(213) |
Jul
(219) |
Aug
(230) |
Sep
(195) |
Oct
(275) |
Nov
(179) |
Dec
(163) |
| 2015 |
Jan
(227) |
Feb
(148) |
Mar
(148) |
Apr
(178) |
May
(228) |
Jun
(195) |
Jul
(155) |
Aug
(168) |
Sep
(168) |
Oct
(151) |
Nov
(259) |
Dec
(137) |
| 2016 |
Jan
(127) |
Feb
(244) |
Mar
(219) |
Apr
(266) |
May
(120) |
Jun
(366) |
Jul
(211) |
Aug
(203) |
Sep
(222) |
Oct
(155) |
Nov
(97) |
Dec
|
|
From: <ph...@us...> - 2016-11-23 15:53:11
|
Revision: 25775
http://sourceforge.net/p/cctbx/code/25775
Author: phyy-nx
Date: 2016-11-23 15:53:09 +0000 (Wed, 23 Nov 2016)
Log Message:
-----------
Add a docstring.
Development has moved to the cctbx git repository. Please send further commits there.
Modified Paths:
--------------
trunk/xfel/ui/db/xfel_db.py
Modified: trunk/xfel/ui/db/xfel_db.py
===================================================================
--- trunk/xfel/ui/db/xfel_db.py 2016-11-23 08:01:20 UTC (rev 25774)
+++ trunk/xfel/ui/db/xfel_db.py 2016-11-23 15:53:09 UTC (rev 25775)
@@ -109,6 +109,13 @@
self.columns_dict = self.init_tables.set_up_columns_dict(self)
def execute_query(self, query, commit = False):
+ """ Execute a database query
+ @param query MySQL database query string
+ @param commit whether to execute a commit. Default is False, indictating the
+ query is just a read
+ @return the cursor object from the query containing the results
+ """
+
if self.params.db.verbose:
from time import time
st = time()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ph...@us...> - 2016-11-23 08:01:23
|
Revision: 25774
http://sourceforge.net/p/cctbx/code/25774
Author: phyy-nx
Date: 2016-11-23 08:01:20 +0000 (Wed, 23 Nov 2016)
Log Message:
-----------
Bugfix
Modified Paths:
--------------
trunk/xfel/ui/db/experiment.py
Modified: trunk/xfel/ui/db/experiment.py
===================================================================
--- trunk/xfel/ui/db/experiment.py 2016-11-23 01:21:26 UTC (rev 25773)
+++ trunk/xfel/ui/db/experiment.py 2016-11-23 08:01:20 UTC (rev 25774)
@@ -101,7 +101,8 @@
cells = self.app.get_all_x(Cell, 'cell', where = "WHERE isoform_id = %d"%self.id)
assert len(cells) == 1
return cells[0]
- raise AttributeError(key)
+ else:
+ return super(Isoform, self).__getattr__(key)
class Cell(db_proxy):
def __init__(self, app, cell_id = None, crystal = None, **kwargs):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ole...@us...> - 2016-11-23 01:21:28
|
Revision: 25773
http://sourceforge.net/p/cctbx/code/25773
Author: olegsobolev
Date: 2016-11-23 01:21:26 +0000 (Wed, 23 Nov 2016)
Log Message:
-----------
Stub for considering Rama fixes in SS elements with stricter RMSD cutoffs.
Modified Paths:
--------------
trunk/mmtbx/building/loop_closure/ccd.py
trunk/mmtbx/building/loop_idealization.py
Modified: trunk/mmtbx/building/loop_closure/ccd.py
===================================================================
--- trunk/mmtbx/building/loop_closure/ccd.py 2016-11-22 22:44:28 UTC (rev 25772)
+++ trunk/mmtbx/building/loop_closure/ccd.py 2016-11-23 01:21:26 UTC (rev 25773)
@@ -54,7 +54,7 @@
phi_psi_angles = utils.get_pair_angles(phi_psi_pair)
before_rotation_rama_score = utils.get_rama_score(phi_psi_pair, self.r, rama_key, round_coords=True)
if (ramalyze.evalScore(rama_key, before_rotation_rama_score) == RAMALYZE_OUTLIER):
- # or ramalyze.evalScore(rama_key, before_rotation_rama_score) == RAMALYZE_ALLOWED):
+ # or ramalyze.evalScore(rama_key, before_rotation_rama_score) == RAMALYZE_ALLOWED):
# assert i == 0
if i != 0:
# this is a error, we should spot rama outliers on the first angle
Modified: trunk/mmtbx/building/loop_idealization.py
===================================================================
--- trunk/mmtbx/building/loop_idealization.py 2016-11-22 22:44:28 UTC (rev 25772)
+++ trunk/mmtbx/building/loop_idealization.py 2016-11-23 01:21:26 UTC (rev 25773)
@@ -12,6 +12,7 @@
set_xyz_smart
from mmtbx.refinement.geometry_minimization import minimize_wrapper_for_ramachandran
from cctbx import maptbx
+from scitbx.array_family import flex
import boost.python
ext = boost.python.import_ext("mmtbx_validation_ramachandran_ext")
@@ -239,6 +240,10 @@
hierarchy, resnum, 2, 2, include_intermediate=True)
list_of_reference_exclusion += excl_res
out_i = 0
+ chain_ss_annot = self.secondary_structure_annotation
+ if chain_ss_annot is not None:
+ chain_ss_annot = self.secondary_structure_annotation.deep_copy()
+ chain_ss_annot.remove_empty_annotations(hierarchy=working_h)
for rama_out_resnum in rama_out_resnums:
print >> self.log
print >> self.log, "Fixing outlier:", rama_out_resnum
@@ -247,7 +252,8 @@
pdb_hierarchy=working_h,
out_res_num=rama_out_resnum,
prefix=self.params.output_prefix,
- minimize=False)
+ minimize=False,
+ ss_annotation=chain_ss_annot)
print >> self.log, "listing outliers after loop minimization"
outp = utils.list_rama_outliers_h(new_h, self.r)
print >> self.log, outp
@@ -260,17 +266,22 @@
return list_of_reference_exclusion, new_h
def ccd_solution_is_ok(self,
- anchor_rmsd, mc_rmsd, ccd_radius, change_all_angles, change_radius):
+ anchor_rmsd, mc_rmsd, ccd_radius, change_all_angles, change_radius,
+ contains_ss_element):
adaptive_mc_rmsd = {1:3.0, 2:3.5, 3:4.0}
- if (mc_rmsd < adaptive_mc_rmsd[ccd_radius] and anchor_rmsd < 0.3):
+ ss_multiplier = 1
+ if contains_ss_element:
+ ss_multiplier = 0.2
+ if (mc_rmsd < adaptive_mc_rmsd[ccd_radius]*ss_multiplier and anchor_rmsd < 0.3):
return True
elif ccd_radius == 3 and change_all_angles and change_radius == 2:
# we are desperate and trying the most extensive search,
# this deserves relaxed criteria...
- return mc_rmsd < 5 and anchor_rmsd < 0.4
+ return mc_rmsd < 5*ss_multiplier and anchor_rmsd < 0.4
def fix_rama_outlier(self,
- pdb_hierarchy, out_res_num, prefix="", minimize=True):
+ pdb_hierarchy, out_res_num, prefix="", minimize=True,
+ ss_annotation=None):
original_pdb_h = pdb_hierarchy.deep_copy()
original_pdb_h.reset_atom_i_seqs()
@@ -293,11 +304,13 @@
# while ccd_radius <= 3:
print >> self.log, " Starting optimization with radius, change_all, change_radius:", ccd_radius, change_all, change_radius
self.log.flush()
- moving_h, moving_ref_atoms_iseqs, fixed_ref_atoms, m_selection = get_fixed_moving_parts(
+ #
+ moving_h, moving_ref_atoms_iseqs, fixed_ref_atoms, m_selection, contains_ss_element = get_fixed_moving_parts(
pdb_hierarchy=pdb_hierarchy,
out_res_num=out_res_num,
n_following=ccd_radius,
- n_previous=ccd_radius)
+ n_previous=ccd_radius,
+ ss_annotation=ss_annotation)
moving_h_set = None
if change_all:
moving_h_set = starting_conformations.get_all_starting_conformations(
@@ -315,7 +328,7 @@
if len(moving_h_set) == 0:
# outlier was fixed before somehow...
- # or there's a bug in get_starting_conformatiosn
+ # or there's a bug in get_starting_conformations
return original_pdb_h
for i, h in enumerate(moving_h_set):
@@ -380,7 +393,8 @@
mc_rmsd=mc_rmsd,
ccd_radius=ccd_radius,
change_all_angles=change_all,
- change_radius=change_radius):
+ change_radius=change_radius,
+ contains_ss_element=contains_ss_element):
print "Choosen result (mc_rmsd, anchor_rmsd, map_target, n_iter):", mc_rmsd, resulting_rmsd, map_target, n_iter
self.log.flush()
if minimize:
@@ -528,17 +542,36 @@
res.append(residue_list[i].resseq)
return res
-def get_fixed_moving_parts(pdb_hierarchy, out_res_num, n_following, n_previous):
+def get_fixed_moving_parts(pdb_hierarchy, out_res_num, n_following, n_previous,
+ ss_annotation=None):
# limitation: only one chain in pdb_hierarchy!!!
original_pdb_h = pdb_hierarchy.deep_copy()
start_res_num, end_res_num = get_res_nums_around(
pdb_hierarchy, out_res_num, n_following, n_previous)
-
xrs = original_pdb_h.extract_xray_structure()
truncate_to_poly_gly(pdb_hierarchy, start_res_num, end_res_num)
cache = pdb_hierarchy.atom_selection_cache()
# print "selectioin:", "resid %d through %d" % (start_res_num, end_res_num)
- m_selection = cache.iselection("(name N or name CA or name C or name O) and resid %s through %s" % (start_res_num, end_res_num))
+ m_selection = cache.iselection(
+ "(name N or name CA or name C or name O) and resid %s through %s" % (
+ start_res_num, end_res_num))
+ # Somewhere here would be the place to tweak n_following, n_previous to
+ # exclude SS parts. It would be nice to increase n_prev in case
+ # we need to cut on n_following etc.
+ # If no ss_annotation is provided, don't filter.
+ contains_ss_element = False
+ if ss_annotation is not None:
+ ss_selection_str = ss_annotation.overall_selection()
+ ss_selection = cache.iselection(ss_selection_str)
+ intersect = flex.size_t(sorted(list(set(ss_selection) & set(m_selection))))
+ if intersect.size > 0:
+ intersect_h = pdb_hierarchy.select(intersect)
+ print "Hitting SS element"
+ print intersect_h.as_pdb_string()
+ contains_ss_element = True
+ # assert 0, "hitting SS element!"
+
+
moving_h = pdb_hierarchy.select(m_selection)
moving_h.reset_atom_i_seqs()
# print dir(moving_h)
@@ -571,7 +604,7 @@
fixed_ref_atoms = [fixed_N, fixed_CA, fixed_C]
- return moving_h, moving_ref_atoms_iseqs, fixed_ref_atoms, m_selection
+ return moving_h, moving_ref_atoms_iseqs, fixed_ref_atoms, m_selection, contains_ss_element
def get_main_chain_rmsd_range(
hierarchy, original_h, all_atoms=False, placing_range=None):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ph...@us...> - 2016-11-22 22:44:30
|
Revision: 25772
http://sourceforge.net/p/cctbx/code/25772
Author: phyy-nx
Date: 2016-11-22 22:44:28 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
Revert back to python 2.7.8 until SSL issues introduced in 2.7.9 are worked out.
Modified Paths:
--------------
trunk/libtbx/auto_build/package_defs.py
Modified: trunk/libtbx/auto_build/package_defs.py
===================================================================
--- trunk/libtbx/auto_build/package_defs.py 2016-11-22 18:57:16 UTC (rev 25771)
+++ trunk/libtbx/auto_build/package_defs.py 2016-11-22 22:44:28 UTC (rev 25772)
@@ -32,8 +32,8 @@
# base packages updated on 2/15/2015 by bkpoon
# from CCI
-#PYTHON_PKG = "Python-2.7.8_cci.tar.gz"
-PYTHON_PKG = "Python-2.7.12.tar.gz"
+PYTHON_PKG = "Python-2.7.8_cci.tar.gz"
+#PYTHON_PKG = "Python-2.7.12.tar.gz"
NUMPY_PKG = "numpy-1.8.1.tar.gz" # used many places
IMAGING_PKG = "Imaging-1.1.7.tar.gz" # for labelit, gltbx
REPORTLAB_PKG = "reportlab-2.6.tar.gz" # for labelit
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nwm...@us...> - 2016-11-22 18:57:18
|
Revision: 25771
http://sourceforge.net/p/cctbx/code/25771
Author: nwmoriarty
Date: 2016-11-22 18:57:16 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
glyco linking test
Modified Paths:
--------------
trunk/mmtbx/monomer_library/tst_linking.py
Modified: trunk/mmtbx/monomer_library/tst_linking.py
===================================================================
--- trunk/mmtbx/monomer_library/tst_linking.py 2016-11-22 17:48:01 UTC (rev 25770)
+++ trunk/mmtbx/monomer_library/tst_linking.py 2016-11-22 18:57:16 UTC (rev 25771)
@@ -2154,6 +2154,69 @@
ATOM 46 C ASN A 210 -63.605 34.499 -16.022 1.00 72.64 C
ATOM 47 CB ASN A 210 -63.830 34.555 -13.567 1.00 77.34 C
""",
+ "linking_test_partial_alt_loc_glyco.pdb" : """
+HETATM 3615 C1 ANDG B 401 11.587 187.498 -2.208 0.50 17.33 C
+HETATM 3616 C2 ANDG B 401 10.855 188.231 -1.091 0.50 17.55 C
+HETATM 3617 C3 ANDG B 401 10.531 189.647 -1.547 0.50 16.69 C
+HETATM 3618 C4 ANDG B 401 11.775 190.352 -2.092 0.50 16.31 C
+HETATM 3619 C5 ANDG B 401 12.356 189.491 -3.197 0.50 16.42 C
+HETATM 3620 C6 ANDG B 401 13.546 190.144 -3.891 0.50 17.65 C
+HETATM 3621 C7 ANDG B 401 9.454 186.869 0.419 0.50 17.55 C
+HETATM 3622 C8 ANDG B 401 8.079 186.314 0.643 0.50 16.99 C
+HETATM 3623 O ANDG B 401 12.733 188.238 -2.631 0.50 16.58 O
+HETATM 3624 O3 ANDG B 401 10.019 190.380 -0.453 0.50 17.04 O
+HETATM 3625 O4 ANDG B 401 11.386 191.615 -2.628 0.50 15.06 O
+HETATM 3626 O6 ANDG B 401 14.616 190.314 -2.961 0.50 17.54 O
+HETATM 3627 O7 ANDG B 401 10.336 186.702 1.248 0.50 18.38 O
+HETATM 3628 N2 ANDG B 401 9.620 187.548 -0.722 0.50 17.55 N
+HETATM 3629 O1LANDG B 401 10.701 187.349 -3.322 0.50 17.86 O
+HETATM 3630 C1 BNAG B 402 11.696 187.522 -2.281 0.50 19.30 C
+HETATM 3631 C2 BNAG B 402 10.842 188.218 -1.233 0.50 19.73 C
+HETATM 3632 C3 BNAG B 402 10.507 189.651 -1.615 0.50 18.14 C
+HETATM 3633 C4 BNAG B 402 11.754 190.377 -2.114 0.50 17.57 C
+HETATM 3634 C5 BNAG B 402 12.374 189.564 -3.233 0.50 17.69 C
+HETATM 3635 C6 BNAG B 402 13.544 190.278 -3.896 0.50 19.10 C
+HETATM 3636 C7 BNAG B 402 9.520 186.549 -0.070 0.50 22.13 C
+HETATM 3637 C8 BNAG B 402 8.215 185.818 0.005 0.50 22.97 C
+HETATM 3638 N2 BNAG B 402 9.630 187.444 -1.049 0.50 20.88 N
+HETATM 3639 O1 BNAG B 402 12.174 186.314 -1.691 0.50 19.78 O
+HETATM 3640 O3 BNAG B 402 10.007 190.337 -0.478 0.50 17.72 O
+HETATM 3641 O4 BNAG B 402 11.350 191.649 -2.605 0.50 15.73 O
+HETATM 3642 O5 BNAG B 402 12.803 188.319 -2.692 0.50 18.12 O
+HETATM 3643 O6 BNAG B 402 14.675 190.273 -3.024 0.50 18.91 O
+HETATM 3644 O7 BNAG B 402 10.422 186.331 0.724 0.50 24.09 O
+HETATM 3645 C1 AFUC B 403 8.585 190.434 -0.438 0.50 18.44 C
+HETATM 3646 C1 BFUC B 403 8.574 190.425 -0.442 0.50 18.71 C
+HETATM 3647 C2 FUC B 403 8.154 190.791 0.979 1.00 19.23 C
+HETATM 3648 C3 FUC B 403 8.688 192.169 1.357 1.00 19.53 C
+HETATM 3649 C4 FUC B 403 8.143 193.181 0.356 1.00 20.34 C
+HETATM 3650 C5 FUC B 403 8.484 192.740 -1.077 1.00 20.67 C
+HETATM 3651 C6 FUC B 403 7.889 193.667 -2.123 1.00 22.65 C
+HETATM 3652 O2 FUC B 403 8.618 189.805 1.908 1.00 20.29 O
+HETATM 3653 O3 FUC B 403 8.325 192.496 2.712 1.00 19.86 O
+HETATM 3654 O4 FUC B 403 6.720 193.304 0.464 1.00 20.42 O
+HETATM 3655 O5 FUC B 403 8.050 191.390 -1.356 1.00 18.33 O
+HETATM 3656 C1 AGAL B 404 12.208 192.729 -2.260 0.50 14.68 C
+HETATM 3657 C1 BGAL B 404 12.218 192.731 -2.262 0.50 15.08 C
+HETATM 3658 C2 AGAL B 404 11.977 193.809 -3.313 0.50 14.65 C
+HETATM 3659 C2 BGAL B 404 11.974 193.813 -3.310 0.50 14.87 C
+HETATM 3660 C3 GAL B 404 12.714 195.089 -2.980 1.00 14.36 C
+HETATM 3661 C4 AGAL B 404 12.326 195.524 -1.566 0.50 14.68 C
+HETATM 3662 C4 BGAL B 404 12.331 195.517 -1.566 0.50 14.89 C
+HETATM 3663 C5 AGAL B 404 12.545 194.397 -0.567 0.50 14.42 C
+HETATM 3664 C5 BGAL B 404 12.656 194.395 -0.596 0.50 14.74 C
+HETATM 3665 C6 AGAL B 404 12.057 194.809 0.817 0.50 14.38 C
+HETATM 3666 C6 BGAL B 404 12.314 194.806 0.831 0.50 14.69 C
+HETATM 3667 O2 AGAL B 404 12.381 193.340 -4.606 0.50 14.14 O
+HETATM 3668 O2 BGAL B 404 12.367 193.348 -4.608 0.50 14.30 O
+HETATM 3669 O3 GAL B 404 12.351 196.082 -3.971 1.00 15.47 O
+HETATM 3670 O4 AGAL B 404 10.951 195.945 -1.547 0.50 14.29 O
+HETATM 3671 O4 BGAL B 404 10.932 195.846 -1.506 0.50 14.61 O
+HETATM 3672 O5 AGAL B 404 11.840 193.232 -0.984 0.50 15.24 O
+HETATM 3673 O5 BGAL B 404 11.921 193.232 -0.964 0.50 15.68 O
+HETATM 3674 O6 AGAL B 404 12.320 193.790 1.794 0.50 13.65 O
+HETATM 3675 O6 BGAL B 404 12.433 193.702 1.739 0.50 14.16 O
+""",
'linking_test_CM-SO4.pdb' : '''
HETATM 5816 N26 CM C 4 11.872 46.521 11.694 1.00 15.75 A N
HETATM 6475 S SO4 D 4 12.593 45.477 7.849 1.00 30.00 S
@@ -2217,6 +2280,7 @@
"linking_test_CYS_CYS_alt_loc.pdb" : [17,17],
#
"linking_test_MAN-before-ASN.pdb" : [15,15],
+ "linking_test_partial_alt_loc_glyco.pdb" : [63,67],
'linking_test_CM-SO4.pdb' : [4,4],
}
@@ -2304,6 +2368,7 @@
"linking_test_NAG-FU4.pdb", # get_alpha_beta seems to be broken
] and 0: continue
if pdb.find("CD_GHE")>-1: continue
+ if pdb.find("partial")>-1: continue
#if pdb.find('SO4')==-1: continue
print 'pdb',pdb
j+=1
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <oe...@us...> - 2016-11-22 17:48:03
|
Revision: 25770
http://sourceforge.net/p/cctbx/code/25770
Author: oeffner
Date: 2016-11-22 17:48:01 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
bug fix isPlatformLinux() and isPlatformWindows()
Modified Paths:
--------------
trunk/libtbx/auto_build/bootstrap.py
Modified: trunk/libtbx/auto_build/bootstrap.py
===================================================================
--- trunk/libtbx/auto_build/bootstrap.py 2016-11-22 09:38:00 UTC (rev 25769)
+++ trunk/libtbx/auto_build/bootstrap.py 2016-11-22 17:48:01 UTC (rev 25770)
@@ -970,7 +970,7 @@
if self.platform and 'windows' in self.platform:
return True
else:
- if sys.platform == "win32":
+ if self.platform == "dev" and sys.platform == "win32":
return True
return False
@@ -978,7 +978,7 @@
if self.platform and 'linux' in self.platform:
return True
else:
- if sys.platform.startswith("linux"):
+ if self.platform == "dev" and sys.platform.startswith("linux"):
return True
return False
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <oe...@us...> - 2016-11-22 09:38:03
|
Revision: 25769
http://sourceforge.net/p/cctbx/code/25769
Author: oeffner
Date: 2016-11-22 09:38:00 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
single quotes rather than double quotes to avoid messed up string
Modified Paths:
--------------
trunk/libtbx/auto_build/bootstrap.py
Modified: trunk/libtbx/auto_build/bootstrap.py
===================================================================
--- trunk/libtbx/auto_build/bootstrap.py 2016-11-22 07:30:39 UTC (rev 25768)
+++ trunk/libtbx/auto_build/bootstrap.py 2016-11-22 09:38:00 UTC (rev 25769)
@@ -1401,9 +1401,9 @@
self.opjoin('..', 'modules', 'cctbx_project', 'libtbx', 'configure.py')
] + self.get_libtbx_configure()
fname = self.opjoin("config_modules.cmd")
- ldlibpath = ""
+ ldlibpath = ''
if self.isPlatformLinux():
- ldlibpath = "export LD_LIBRARY_PATH=../base/lib\n"
+ ldlibpath = 'export LD_LIBRARY_PATH=../base/lib\n'
# because that was the environment when python and base components were built during bootstrap
confstr = ldlibpath + subprocess.list2cmdline(configcmd)
if not self.isPlatformWindows():
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mge...@us...> - 2016-11-22 07:30:41
|
Revision: 25768
http://sourceforge.net/p/cctbx/code/25768
Author: mgerstel
Date: 2016-11-22 07:30:39 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
Add ignore necessary for git notification mails
Property Changed:
----------------
trunk/
Index: trunk
===================================================================
--- trunk 2016-11-22 02:46:21 UTC (rev 25767)
+++ trunk 2016-11-22 07:30:39 UTC (rev 25768)
Property changes on: trunk
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+.git-notifier*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ole...@us...> - 2016-11-22 02:46:24
|
Revision: 25767
http://sourceforge.net/p/cctbx/code/25767
Author: olegsobolev
Date: 2016-11-22 02:46:21 +0000 (Tue, 22 Nov 2016)
Log Message:
-----------
SS annotation: don't crash if non-necessary items are not present in mmCIF.
Modified Paths:
--------------
trunk/iotbx/pdb/secondary_structure.py
trunk/iotbx/regression/secondary_structure/tst_annotation.py
Modified: trunk/iotbx/pdb/secondary_structure.py
===================================================================
--- trunk/iotbx/pdb/secondary_structure.py 2016-11-21 22:42:00 UTC (rev 25766)
+++ trunk/iotbx/pdb/secondary_structure.py 2016-11-22 02:46:21 UTC (rev 25767)
@@ -103,12 +103,15 @@
return True
-def choose_correct_cif_record(cif_dict, key1, key2):
+def choose_correct_cif_record(cif_dict, key1, key2, mandatory=True):
if key1 in cif_dict:
val = cif_dict[key1]
if val != '?' and val != '.':
return val
- return cif_dict[key2]
+ if mandatory:
+ return cif_dict[key2]
+ else:
+ return cif_dict.get(key2, '.')
class one_strand_pair_registration_atoms:
def __init__(self,
@@ -561,9 +564,10 @@
and struct_sheet_hbond_loop is not None):
for sheet_row in struct_sheet_loop.iterrows():
sheet_id = sheet_row['_struct_sheet.id']
- number_of_strands = int(sheet_row['_struct_sheet.number_strands'])
+ # we will count number_of_strands in from_cif_rows
+ # number_of_strands = int(sheet_row['_struct_sheet.number_strands'])
try:
- sh = pdb_sheet.from_cif_rows(sheet_id, number_of_strands,
+ sh = pdb_sheet.from_cif_rows(sheet_id,
struct_sheet_order_loop, struct_sheet_range_loop,
struct_sheet_hbond_loop)
except ValueError as e:
@@ -1498,10 +1502,10 @@
cif_row,
'_struct_conf.beg_auth_asym_id',
'_struct_conf.beg_label_asym_id'))
- start_resseq = choose_correct_cif_record(
+ start_resseq = int(choose_correct_cif_record(
cif_row,
'_struct_conf.beg_auth_seq_id',
- '_struct_conf.beg_label_seq_id')
+ '_struct_conf.beg_label_seq_id'))
end_resname = choose_correct_cif_record(
cif_row,
'_struct_conf.end_auth_comp_id',
@@ -1511,28 +1515,37 @@
cif_row,
'_struct_conf.end_auth_asym_id',
'_struct_conf.end_label_asym_id'))
- end_resseq = choose_correct_cif_record(
+ end_resseq = int(choose_correct_cif_record(
cif_row,
'_struct_conf.end_auth_seq_id',
- '_struct_conf.end_label_seq_id')
+ '_struct_conf.end_label_seq_id'))
+ comment = ""
+ if ('_struct_conf.details' in cif_row and
+ cif_row['_struct_conf.details'] != '?' and
+ cif_row['_struct_conf.details'] != '.'):
+ comment = cif_row['_struct_conf.details']
+ # this is not mandatory item in mmCIF, so we'll try to estimate it in case
+ # it is absent. Since it is mmCIF, it should not contain hybrid36 notation,
+ # so int() should be fine
+ length = int(cif_row.get('_struct_conf.pdbx_PDB_helix_length', 0))
+ if length == 0:
+ length = end_resseq - start_resseq
return cls(
serial=serial,
- helix_id=cif_row['_struct_conf.pdbx_PDB_helix_id'],
+ helix_id=cif_row.get('_struct_conf.pdbx_PDB_helix_id', None),
start_resname=start_resname,
start_chain_id=start_chain_id,
- start_resseq=start_resseq,
- start_icode=cls.parse_cif_insertion_code(cif_row['_struct_conf.pdbx_beg_PDB_ins_code']),
+ start_resseq=cls.convert_resseq(start_resseq),
+ start_icode=cls.parse_cif_insertion_code(cif_row.get('_struct_conf.pdbx_beg_PDB_ins_code', '.')),
end_resname=end_resname,
end_chain_id=end_chain_id,
- end_resseq=end_resseq,
- end_icode=cls.parse_cif_insertion_code(cif_row['_struct_conf.pdbx_end_PDB_ins_code']),
- helix_class=cls.helix_class_to_str(int(cif_row['_struct_conf.pdbx_PDB_helix_class'])),
+ end_resseq=cls.convert_resseq(end_resseq),
+ end_icode=cls.parse_cif_insertion_code(cif_row.get('_struct_conf.pdbx_end_PDB_ins_code', '.')),
+ helix_class=cls.helix_class_to_str(int(cif_row.get('_struct_conf.pdbx_PDB_helix_class',0))),
helix_selection=None,
- comment=(cif_row['_struct_conf.details'] if \
- cif_row['_struct_conf.details'] != '?' and cif_row['_struct_conf.details'] != '.' \
- else ''),
- length=int(cif_row['_struct_conf.pdbx_PDB_helix_length']))
+ comment=comment,
+ length=length)
@classmethod
def from_pdb_record(cls, line):
@@ -1830,10 +1843,10 @@
cif_dict,
'_struct_sheet_range.beg_auth_asym_id',
'_struct_sheet_range.beg_label_asym_id')
- start_resseq = choose_correct_cif_record(
+ start_resseq = int(choose_correct_cif_record(
cif_dict,
'_struct_sheet_range.beg_auth_seq_id',
- '_struct_sheet_range.beg_label_seq_id')
+ '_struct_sheet_range.beg_label_seq_id'))
end_resname = choose_correct_cif_record(
cif_dict,
'_struct_sheet_range.end_auth_comp_id',
@@ -1842,23 +1855,23 @@
cif_dict,
'_struct_sheet_range.end_auth_asym_id',
'_struct_sheet_range.end_label_asym_id')
- end_resseq = choose_correct_cif_record(
+ end_resseq = int(choose_correct_cif_record(
cif_dict,
'_struct_sheet_range.end_auth_seq_id',
- '_struct_sheet_range.end_label_seq_id')
+ '_struct_sheet_range.end_label_seq_id'))
return cls(
sheet_id=cif_dict['_struct_sheet_range.sheet_id'],
strand_id=int(cif_dict['_struct_sheet_range.id']),
start_resname=start_resname,
start_chain_id=cls.parse_chain_id(start_chain_id),
- start_resseq=start_resseq,
+ start_resseq=cls.convert_resseq(start_resseq),
start_icode=cls.parse_cif_insertion_code(
- cif_dict['_struct_sheet_range.pdbx_beg_PDB_ins_code']),
+ cif_dict.get('_struct_sheet_range.pdbx_beg_PDB_ins_code','.')),
end_resname=end_resname,
end_chain_id=cls.parse_chain_id(end_chain_id),
- end_resseq=end_resseq,
+ end_resseq=cls.convert_resseq(end_resseq),
end_icode=cls.parse_cif_insertion_code(
- cif_dict['_struct_sheet_range.pdbx_end_PDB_ins_code']),
+ cif_dict.get('_struct_sheet_range.pdbx_end_PDB_ins_code', '.')),
sense=sense,
)
@@ -1974,17 +1987,19 @@
cur_resname = choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_2_auth_comp_id',
- '_pdbx_struct_sheet_hbond.range_2_label_comp_id')
+ '_pdbx_struct_sheet_hbond.range_2_label_comp_id',
+ mandatory=False)
cur_chain_id = choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_2_auth_asym_id',
- '_pdbx_struct_sheet_hbond.range_2_label_asym_id')
- cur_resseq = choose_correct_cif_record(
+ '_pdbx_struct_sheet_hbond.range_2_label_asym_id',
+ mandatory=False)
+ cur_resseq = int(choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_2_auth_seq_id',
- '_pdbx_struct_sheet_hbond.range_2_label_seq_id')
+ '_pdbx_struct_sheet_hbond.range_2_label_seq_id'))
cur_icode = cls.parse_cif_insertion_code(
- cif_dict['_pdbx_struct_sheet_hbond.range_2_PDB_ins_code'])
+ cif_dict.get('_pdbx_struct_sheet_hbond.range_2_PDB_ins_code','.'))
prev_atom = cls.adjust_cif_atom_name(
choose_correct_cif_record(
cif_dict,
@@ -1993,27 +2008,29 @@
prev_resname = choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_1_auth_comp_id',
- '_pdbx_struct_sheet_hbond.range_1_label_comp_id')
+ '_pdbx_struct_sheet_hbond.range_1_label_comp_id',
+ mandatory=False)
prev_chain_id = choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_1_auth_asym_id',
- '_pdbx_struct_sheet_hbond.range_1_label_asym_id')
- prev_resseq = choose_correct_cif_record(
+ '_pdbx_struct_sheet_hbond.range_1_label_asym_id',
+ mandatory=False)
+ prev_resseq = int(choose_correct_cif_record(
cif_dict,
'_pdbx_struct_sheet_hbond.range_1_auth_seq_id',
- '_pdbx_struct_sheet_hbond.range_1_label_seq_id')
+ '_pdbx_struct_sheet_hbond.range_1_label_seq_id'))
prev_icode = cls.parse_cif_insertion_code(
- cif_dict['_pdbx_struct_sheet_hbond.range_1_PDB_ins_code'])
+ cif_dict.get('_pdbx_struct_sheet_hbond.range_1_PDB_ins_code','.'))
return cls(
cur_atom=cur_atom,
cur_resname=cur_resname,
cur_chain_id=cls.parse_chain_id(cur_chain_id),
- cur_resseq=cur_resseq,
+ cur_resseq=cls.convert_resseq(cur_resseq),
cur_icode=cur_icode,
prev_atom=prev_atom,
prev_resname=prev_resname,
prev_chain_id=cls.parse_chain_id(prev_chain_id),
- prev_resseq=prev_resseq,
+ prev_resseq=cls.convert_resseq(prev_resseq),
prev_icode=prev_icode)
def get_cur_resseq_as_int(self):
@@ -2130,11 +2147,16 @@
registrations=registrations)
@classmethod
- def from_cif_rows(cls, sheet_id, number_of_strands,
+ def from_cif_rows(cls, sheet_id,
struct_sheet_order_loop, struct_sheet_range_loop,
struct_sheet_hbond_loop):
strands = []
registrations = []
+ number_of_strands = 0
+ # counting number of strands
+ for row in struct_sheet_range_loop.iterrows():
+ if row['_struct_sheet_range.sheet_id'] == sheet_id:
+ number_of_strands += 1
for i in range(1, number_of_strands+1):
if i == 1:
# the first strand, no sense, no hbond
@@ -2162,8 +2184,12 @@
if (row['_struct_sheet_order.sheet_id'] == sheet_id and
int(row['_struct_sheet_order.range_id_1']) == i-1 and
int(row['_struct_sheet_order.range_id_2']) == i):
- str_sense = row['_struct_sheet_order.sense']
- sense = 1 if str_sense=='parallel' else -1
+ str_sense = row.get('_struct_sheet_order.sense', '.')
+ sense = 0
+ if str_sense == 'parallel':
+ sense = 1
+ elif str_sense == 'anti-parallel':
+ sense = -1
break
for row in struct_sheet_hbond_loop.iterrows():
if (row['_pdbx_struct_sheet_hbond.sheet_id'] == sheet_id and
@@ -2437,7 +2463,7 @@
for i, strand, registration in zip(range(self.n_strands), self.strands, self.registrations):
# _struct_sheet_order
- if strand.sense != 0:
+ if i != 0:
result['_struct_sheet_order.sheet_id'].append(self.sheet_id)
result['_struct_sheet_order.range_id_1'].append(i)
result['_struct_sheet_order.range_id_2'].append(i+1)
Modified: trunk/iotbx/regression/secondary_structure/tst_annotation.py
===================================================================
--- trunk/iotbx/regression/secondary_structure/tst_annotation.py 2016-11-21 22:42:00 UTC (rev 25766)
+++ trunk/iotbx/regression/secondary_structure/tst_annotation.py 2016-11-22 02:46:21 UTC (rev 25767)
@@ -488,6 +488,159 @@
assert [len(x.strands) for x in ann.sheets] == [2]
# print ann.as_pdb_str()
+def tst_from_minimal_cif_helix():
+ """reading annotation that contains only required mmCIF records -
+ http://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v40.dic/Categories/struct_conf.html
+ """
+ cif_answer_minimal_helix = """\
+loop_
+ _struct_conf.conf_type_id
+ _struct_conf.id
+ _struct_conf.pdbx_PDB_helix_id
+ _struct_conf.beg_label_comp_id
+ _struct_conf.beg_label_asym_id
+ _struct_conf.beg_label_seq_id
+ _struct_conf.pdbx_beg_PDB_ins_code
+ _struct_conf.end_label_comp_id
+ _struct_conf.end_label_asym_id
+ _struct_conf.end_label_seq_id
+ _struct_conf.pdbx_end_PDB_ins_code
+ _struct_conf.pdbx_PDB_helix_class
+ _struct_conf.details
+ _struct_conf.pdbx_PDB_helix_length
+ HELX_P 1 1 ARG 87 A ? GLN 92 A ? 0 ? 5
+ HELX_P 2 2 ARG 287 B ? GLN 292 B ? 0 ? 5
+ HELX_P 3 3 PRO 1 A ? LEU 5 A ? 0 ? 4
+"""
+ pdb_answer_minimal_helix = """\
+HELIX 1 1 ARG A 87 GLN A 92 1 5
+HELIX 2 2 ARG B 287 GLN B 292 1 5
+HELIX 3 3 PRO A 1 LEU A 5 1 4"""
+ minimal_helix = """\
+ data_4ZTE
+ loop_
+ _struct_conf.id
+ _struct_conf.conf_type_id
+ _struct_conf.beg_label_comp_id
+ _struct_conf.beg_label_asym_id
+ _struct_conf.beg_label_seq_id
+ _struct_conf.end_label_comp_id
+ _struct_conf.end_label_asym_id
+ _struct_conf.end_label_seq_id
+ HELX1 HELX_RH_AL_P ARG A 87 GLN A 92
+ HELX2 HELX_RH_AL_P ARG B 287 GLN B 292
+ STRN1 STRN_P PRO A 1 LEU A 5
+ """
+ cif_model = iotbx.cif.reader(input_string=minimal_helix).model()
+ cif_block = cif_model.values()[0]
+ ann = annotation.from_cif_block(cif_block)
+ assert not show_diff(ann.as_pdb_str(), pdb_answer_minimal_helix)
+
+ cif_loops = ann.as_cif_loops()
+ assert len(cif_loops) == 1
+ helix_loop = cif_loops[0]
+ out = StringIO()
+ helix_loop.show(out)
+ v = out.getvalue()
+ # print "\"%s\"" % v
+ assert not show_diff(out.getvalue(), cif_answer_minimal_helix)
+
+def tst_from_minimal_cif_sheet():
+ cif_minimal_sheet = """\
+ data_4ZTE
+ #
+ _struct_sheet.id A
+ #
+ _struct_sheet_order.sheet_id A
+ _struct_sheet_order.range_id_1 1
+ _struct_sheet_order.range_id_2 2
+ #
+ loop_
+ _struct_sheet_range.sheet_id
+ _struct_sheet_range.id
+ _struct_sheet_range.beg_label_comp_id
+ _struct_sheet_range.beg_label_asym_id
+ _struct_sheet_range.beg_label_seq_id
+ _struct_sheet_range.end_label_comp_id
+ _struct_sheet_range.end_label_asym_id
+ _struct_sheet_range.end_label_seq_id
+ A 1 SER A 4 ALA A 7
+ A 2 MET A 22 GLU A 25
+ #
+ _pdbx_struct_sheet_hbond.sheet_id A
+ _pdbx_struct_sheet_hbond.range_id_1 1
+ _pdbx_struct_sheet_hbond.range_id_2 2
+ _pdbx_struct_sheet_hbond.range_1_label_atom_id N
+ _pdbx_struct_sheet_hbond.range_1_label_seq_id 4
+ _pdbx_struct_sheet_hbond.range_2_label_atom_id O
+ _pdbx_struct_sheet_hbond.range_2_label_seq_id 25
+ #
+ """
+ pdb_answer_minimal_sheet = """\
+SHEET 1 A 2 SER A 4 ALA A 7 0
+SHEET 2 A 2 MET A 22 GLU A 25 0 O . . 25 N . . 4"""
+ answer_struct_sheet_loops = ["""\
+loop_
+ _struct_sheet.id
+ _struct_sheet.type
+ _struct_sheet.number_strands
+ _struct_sheet.details
+ A ? 2 ?
+""","""\
+loop_
+ _struct_sheet_order.sheet_id
+ _struct_sheet_order.range_id_1
+ _struct_sheet_order.range_id_2
+ _struct_sheet_order.offset
+ _struct_sheet_order.sense
+ A 1 2 ? ?
+""","""\
+loop_
+ _struct_sheet_range.sheet_id
+ _struct_sheet_range.id
+ _struct_sheet_range.beg_label_comp_id
+ _struct_sheet_range.beg_label_asym_id
+ _struct_sheet_range.beg_label_seq_id
+ _struct_sheet_range.pdbx_beg_PDB_ins_code
+ _struct_sheet_range.end_label_comp_id
+ _struct_sheet_range.end_label_asym_id
+ _struct_sheet_range.end_label_seq_id
+ _struct_sheet_range.pdbx_end_PDB_ins_code
+ A 1 SER A 4 ? ALA A 7 ?
+ A 2 MET A 22 ? GLU A 25 ?
+""","""\
+loop_
+ _pdbx_struct_sheet_hbond.sheet_id
+ _pdbx_struct_sheet_hbond.range_id_1
+ _pdbx_struct_sheet_hbond.range_id_2
+ _pdbx_struct_sheet_hbond.range_1_label_atom_id
+ _pdbx_struct_sheet_hbond.range_1_label_comp_id
+ _pdbx_struct_sheet_hbond.range_1_label_asym_id
+ _pdbx_struct_sheet_hbond.range_1_label_seq_id
+ _pdbx_struct_sheet_hbond.range_1_PDB_ins_code
+ _pdbx_struct_sheet_hbond.range_2_label_atom_id
+ _pdbx_struct_sheet_hbond.range_2_label_comp_id
+ _pdbx_struct_sheet_hbond.range_2_label_asym_id
+ _pdbx_struct_sheet_hbond.range_2_label_seq_id
+ _pdbx_struct_sheet_hbond.range_2_PDB_ins_code
+ A 1 2 N . . 4 ? O . . 25 ?
+"""]
+
+ cif_model = iotbx.cif.reader(input_string=cif_minimal_sheet).model()
+ cif_block = cif_model.values()[0]
+ ann = annotation.from_cif_block(cif_block)
+ # print ann.as_pdb_str()
+ assert not show_diff(ann.as_pdb_str(), pdb_answer_minimal_sheet)
+
+ cif_loops = ann.as_cif_loops()
+ assert len(cif_loops) == 4, len(cif_loops)
+ for i, sheet_loop in enumerate(cif_loops):
+ out = StringIO()
+ sheet_loop.show(out)
+ v = out.getvalue()
+ # print "\"%s\"" % v
+ assert not show_diff(out.getvalue(), answer_struct_sheet_loops[i])
+
def tst_to_cif_helix():
pdb_str = """\
HELIX 1 AA1 SER A 26 LYS A 30 5 5
@@ -1272,6 +1425,8 @@
tst_from_cif_block_2()
tst_from_cif_block_3()
tst_from_cif_block_4()
+ tst_from_minimal_cif_helix()
+ tst_from_minimal_cif_sheet()
tst_to_cif_helix()
tst_to_cif_sheet()
# tst_to_cif_annotation()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ph...@us...> - 2016-11-21 22:42:02
|
Revision: 25766
http://sourceforge.net/p/cctbx/code/25766
Author: phyy-nx
Date: 2016-11-21 22:42:00 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
Refactor dxtbx.image_average to support averaging multi-image files such as NeXus from Eiger.
Also removes image-pickle read, switching to using dxtbx only.
Modified Paths:
--------------
trunk/dxtbx/command_line/image_average.py
Modified: trunk/dxtbx/command_line/image_average.py
===================================================================
--- trunk/dxtbx/command_line/image_average.py 2016-11-21 21:10:37 UTC (rev 25765)
+++ trunk/dxtbx/command_line/image_average.py 2016-11-21 22:42:00 UTC (rev 25766)
@@ -17,13 +17,11 @@
@return @c 0 on successful termination, @c 1 on error, and @c 2
for command line syntax errors
"""
-
import libtbx.load_env
from libtbx import easy_pickle, option_parser
from scitbx.array_family import flex
from xfel.cxi.cspad_ana import cspad_tbx
- from iotbx.detectors.cspad_detector_formats import reverse_timestamp
if argv is None:
argv = sys.argv
@@ -66,100 +64,87 @@
# Loop over all images and accumulate statistics.
nfail = 0
nmemb = 0
- for path in paths:
- if command_line.options.verbose:
- sys.stdout.write("Processing %s...\n" % path)
- try:
- # Promote the image to double-precision floating point type.
- # All real-valued flex arrays have the as_double() function.
- d = easy_pickle.load(path)
- distance = d['DISTANCE']
- img = d['DATA'].as_1d().as_double()
- wavelength = d['WAVELENGTH']
- time_tuple = reverse_timestamp(d['TIMESTAMP'])
+ if len(paths) == 1:
+ # test if the iamge is a multi-image
+ from dxtbx.format.Registry import Registry
+ from dxtbx.format.FormatMultiImage import FormatMultiImage
+ format_class = Registry.find(paths[0])
+ if not issubclass(format_class, FormatMultiImage):
+ from libtbx.utils import Usage
+ raise Usage("Supply more than one image")
- # Warn if the header items across the set of images do not match
- # up. Note that discrepancies regarding the image size are
- # fatal.
- if 'active_areas' in locals():
- if (active_areas != d['ACTIVE_AREAS']).count(True) != 0:
- sys.stderr.write("Active areas do not match\n")
- else:
- active_areas = d['ACTIVE_AREAS']
+ print "Loading image..."
+ i = format_class(paths[0])
+ print "Loaded"
- if 'beam_center' in locals():
- if beam_center != (d['BEAM_CENTER_X'], d['BEAM_CENTER_Y']):
- sys.stderr.write("Beam centers do not match\n")
- else:
- beam_center = (d['BEAM_CENTER_X'], d['BEAM_CENTER_Y'])
+ def read_single_image(n):
+ if command_line.options.verbose:
+ sys.stdout.write("Processing %s: %d...\n" % (paths[0], n))
- if 'detector_address' in locals():
- if detector_address != d['DETECTOR_ADDRESS']:
- sys.stderr.write("Detector addresses do not match\n")
- else:
- detector_address = d['DETECTOR_ADDRESS']
+ beam = i.get_beam(n)
+ assert len(i.get_detector(n)) == 1
+ detector = i.get_detector(n)[0]
- if 'saturated_value' in locals():
- if saturated_value != d['SATURATED_VALUE']:
- sys.stderr.write("Saturated values do not match\n")
+ beam_center = detector.get_beam_centre(beam.get_s0())
+ detector_address = format_class.__name__
+ distance = detector.get_distance()
+ img = i.get_raw_data(n).as_1d().as_double()
+ pixel_size = 0.5 * sum(detector.get_pixel_size())
+ saturated_value = int(round(detector.get_trusted_range()[1]))
+ size = detector.get_image_size()
+ scan = i.get_scan(n)
+ if scan is None:
+ time_tuple = (0, 0)
else:
- saturated_value = d['SATURATED_VALUE']
+ time_tuple = (scan.get_epochs()[0], 0)
+ wavelength = beam.get_wavelength()
- if 'size' in locals():
- if size != (d['SIZE1'], d['SIZE2']):
- sys.stderr.write("Image sizes do not match\n")
- return 1
- else:
- size = (d['SIZE1'], d['SIZE2'])
- if size != d['DATA'].focus():
- sys.stderr.write("Image size does not match pixel array\n")
- return 1
+ active_areas = flex.int((0, 0, size[0], size[1]))
- if 'pixel_size' in locals():
- if pixel_size != d['PIXEL_SIZE']:
- sys.stderr.write("Pixel sizes do not match\n")
- return 1
- else:
- if 'PIXEL_SIZE' in d:
- pixel_size = d['PIXEL_SIZE']
- else:
- pixel_size = None
+ return beam_center, detector_address, distance, img, pixel_size, saturated_value, size, time_tuple, wavelength, active_areas
+ iterable = xrange(i.get_num_images())
+ else:
+ def read_single_image(path):
+ if command_line.options.verbose:
+ sys.stdout.write("Processing %s...\n" % path)
- except Exception:
- try:
- # Fall back on reading the image with dxtbx, and shoehorn the
- # extracted information into what would have been found in a
- # pickle file. XXX This code assumes a monolithic detector!
+ from dxtbx.format.Registry import Registry
+ format_class = Registry.find(path)
+ i = format_class(path)
- from dxtbx.format.Registry import Registry
+ beam = i.get_beam()
+ assert len(i.get_detector()) == 1
+ detector = i.get_detector()[0]
- format_class = Registry.find(path)
- i = format_class(path)
+ beam_center = detector.get_beam_centre(beam.get_s0())
+ detector_address = format_class.__name__
+ distance = detector.get_distance()
+ img = i.get_raw_data().as_1d().as_double()
+ pixel_size = 0.5 * sum(detector.get_pixel_size())
+ saturated_value = int(round(detector.get_trusted_range()[1]))
+ size = detector.get_image_size()
+ scan = i.get_scan()
+ if scan is None:
+ time_tuple = (0, 0)
+ else:
+ time_tuple = (scan.get_epochs()[0], 0)
+ wavelength = beam.get_wavelength()
- beam = i.get_beam()
- assert len(i.get_detector()) == 1
- detector = i.get_detector()[0]
+ active_areas = flex.int((0, 0, size[0], size[1]))
+ return beam_center, detector_address, distance, img, pixel_size, saturated_value, size, time_tuple, wavelength, active_areas
+ iterable = paths
- beam_center = detector.get_beam_centre(beam.get_s0())
- detector_address = format_class.__name__
- distance = detector.get_distance()
- img = i.get_raw_data().as_1d().as_double()
- pixel_size = 0.5 * sum(detector.get_pixel_size())
- saturated_value = int(round(detector.get_trusted_range()[1]))
- size = detector.get_image_size()
- time_tuple = (i.get_scan().get_epochs()[0], 0)
- wavelength = beam.get_wavelength()
+ for item in iterable:
+ try:
+ #XXX This code assumes a monolithic detector!
+ beam_center, detector_address, distance, img, pixel_size, saturated_value, size, time_tuple, wavelength, active_areas = \
+ read_single_image(item)
+ except Exception:
+ nfail += 1
+ continue
- active_areas = flex.int((0, 0, size[0], size[1]))
-
-
- except Exception:
- nfail += 1
- continue
-
-
# See also event() in xfel.cxi.cspad_ana.average_tbx. Record the
# base time as the timestamp of the first image.
#
@@ -206,7 +191,7 @@
# Output the average image, maximum projection image, and standard
# deviation image, if requested.
if command_line.options.avg_path is not None:
- avg_img.resize(flex.grid(size[0], size[1]))
+ avg_img.resize(flex.grid(size[1], size[0]))
d = cspad_tbx.dpack(
active_areas=active_areas,
address=detector_address,
@@ -221,7 +206,7 @@
easy_pickle.dump(command_line.options.avg_path, d)
if command_line.options.max_path is not None:
- max_img.resize(flex.grid(size[0], size[1]))
+ max_img.resize(flex.grid(size[1], size[0]))
d = cspad_tbx.dpack(
active_areas=active_areas,
address=detector_address,
@@ -247,7 +232,7 @@
else:
stddev_img = flex.sqrt(stddev_img / (nmemb - 1))
- stddev_img.resize(flex.grid(size[0], size[1]))
+ stddev_img.resize(flex.grid(size[1], size[0]))
d = cspad_tbx.dpack(
active_areas=active_areas,
address=detector_address,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <oe...@us...> - 2016-11-21 21:10:39
|
Revision: 25765
http://sourceforge.net/p/cctbx/code/25765
Author: oeffner
Date: 2016-11-21 21:10:37 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
checking for platform using self.isPlatformLinux()
Modified Paths:
--------------
trunk/libtbx/auto_build/bootstrap.py
Modified: trunk/libtbx/auto_build/bootstrap.py
===================================================================
--- trunk/libtbx/auto_build/bootstrap.py 2016-11-21 20:28:38 UTC (rev 25764)
+++ trunk/libtbx/auto_build/bootstrap.py 2016-11-21 21:10:37 UTC (rev 25765)
@@ -974,6 +974,14 @@
return True
return False
+ def isPlatformLinux(self):
+ if self.platform and 'linux' in self.platform:
+ return True
+ else:
+ if sys.platform.startswith("linux"):
+ return True
+ return False
+
def add_auth(self, account, username):
self.auth[account] = username
@@ -1394,7 +1402,7 @@
] + self.get_libtbx_configure()
fname = self.opjoin("config_modules.cmd")
ldlibpath = ""
- sys.platform.startswith("linux"):
+ if self.isPlatformLinux():
ldlibpath = "export LD_LIBRARY_PATH=../base/lib\n"
# because that was the environment when python and base components were built during bootstrap
confstr = ldlibpath + subprocess.list2cmdline(configcmd)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dcl...@us...> - 2016-11-21 20:28:39
|
Revision: 25764
http://sourceforge.net/p/cctbx/code/25764
Author: dcliebschner
Date: 2016-11-21 20:28:38 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
simple test for minimizing with riding H
Added Paths:
-----------
trunk/mmtbx/hydrogens/tst_riding_minimize.py
Added: trunk/mmtbx/hydrogens/tst_riding_minimize.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_minimize.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_riding_minimize.py 2016-11-21 20:28:38 UTC (rev 25764)
@@ -0,0 +1,199 @@
+from __future__ import division
+import time
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from cctbx import geometry_restraints
+import scitbx.lbfgs
+import mmtbx.utils
+# For lbfgs class
+from cctbx import xray
+from cctbx import crystal
+from cctbx.array_family import flex
+import scitbx.lbfgs
+from libtbx import adopt_init_args
+from stdlib import math
+# for riding H
+from mmtbx.hydrogens import modify_gradients
+from mmtbx.hydrogens import riding
+#from mmtbx.hydrogens import parameterization
+
+class lbfgs(object):
+
+ def __init__(self,
+ xray_structure,
+ geometry_restraints,
+ states,
+ riding_h_manager,
+ use_riding,
+ verbose,
+ max_iterations = 1000,
+ min_iterations = 0,
+ correct_special_position_tolerance = 1.0):
+ adopt_init_args(self, locals())
+ # f = refinement target
+ self.f = None
+ self.correct_special_position_tolerance = correct_special_position_tolerance
+ # self.x = shifts applied to the coordinates
+ # 60 entries ( = 3x20 = number parameters), intitialized with zeros
+ self.x = flex.double(self.xray_structure.n_parameters(), 0)
+ self.h_parameterization = self.riding_h_manager.h_parameterization
+ # starting structure = pdb string
+ self._scatterers_start = self.xray_structure.scatterers()
+ lbfgs_termination_params=scitbx.lbfgs.termination_parameters(
+ max_iterations = max_iterations,
+ min_iterations = min_iterations)
+ self.minimizer = scitbx.lbfgs.run(
+ target_evaluator = self,
+ termination_params = lbfgs_termination_params,
+ exception_handling_params = scitbx.lbfgs.exception_handling_parameters(
+ ignore_line_search_failed_step_at_lower_bound = True))
+ self.apply_shifts()
+ del self._scatterers_start
+ self.compute_target(compute_gradients = False)
+
+ def apply_shifts(self):
+ apply_shifts_result = xray.ext.minimization_apply_shifts(
+ unit_cell = self.xray_structure.unit_cell(),
+ scatterers = self._scatterers_start,
+ shifts = self.x)
+ scatterers_shifted = apply_shifts_result.shifted_scatterers
+ site_symmetry_table = self.xray_structure.site_symmetry_table()
+ for i_seq in site_symmetry_table.special_position_indices():
+ scatterers_shifted[i_seq].site = crystal.correct_special_position(
+ crystal_symmetry = self.xray_structure,
+ special_op = site_symmetry_table.get(i_seq).special_op(),
+ site_frac = scatterers_shifted[i_seq].site,
+ site_label = scatterers_shifted[i_seq].label,
+ tolerance = self.correct_special_position_tolerance)
+ # replace xrs with shifted one
+ self.xray_structure.replace_scatterers(scatterers = scatterers_shifted)
+ # -----------------------------------------------------
+ # generate H atoms after shift, if use_riding = True
+ if self.use_riding:
+ self.riding_h_manager.idealize_hydrogens_inplace(
+ xray_structure = self.xray_structure)
+ # -----------------------------------------------------
+ # add current xrs to the list of states
+ self.states.add(sites_cart = self.xray_structure.sites_cart())
+
+ def compute_target(self, compute_gradients):
+ target_and_grads = self.geometry_restraints.energies_sites(
+ sites_cart = self.xray_structure.sites_cart(),
+ compute_gradients = True)
+ self.f = target_and_grads.target
+ if(compute_gradients):
+ #self.g = target_and_grads.gradients.as_double()
+ self.grads = target_and_grads.gradients
+ # -----------------------------------------------------
+ # if use_riding hydrogen, modify the gradients
+ if self.use_riding:
+ modify_gradients.modify_gradients(
+ sites_cart = self.xray_structure.sites_cart(),
+ h_parameterization = self.h_parameterization,
+ grads = self.grads)
+ # -----------------------------------------------------
+ self.g = self.grads.as_double()
+
+ def callback_after_step(self, minimizer):
+ if(self.verbose > 0):
+ print "refinement.minimization step: f,iter,nfun:",
+ print self.f,minimizer.iter(),minimizer.nfun()
+
+ def compute_functional_and_gradients(self):
+ self.apply_shifts()
+ self.compute_target(compute_gradients = True)
+ if(self.verbose > 1):
+ print "xray.minimization line search: f,rms(g):",
+ print self.f, math.sqrt(flex.mean_sq(self.g))
+ return self.f, self.g
+
+# Tyr distorted
+pdb_str = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 N TYR A 7 9.035 7.089 5.637 1.00 15.00 N
+ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
+ATOM 3 C TYR A 7 11.285 7.169 6.250 1.00 15.00 C
+ATOM 4 O TYR A 7 11.563 6.972 4.911 1.00 15.00 O
+ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
+ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
+ATOM 7 CD1 TYR A 7 7.544 5.558 7.939 1.00 15.00 C
+ATOM 8 CD2 TYR A 7 8.348 7.014 9.545 1.00 15.00 C
+ATOM 9 CE1 TYR A 7 6.338 5.396 8.586 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
+ATOM 11 CZ TYR A 7 6.090 6.501 9.765 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.857 6.463 10.553 1.00 15.00 O
+ATOM 13 HA TYR A 7 9.831 8.340 7.271 1.00 15.00 H
+ATOM 14 HB2 TYR A 7 9.943 5.616 7.588 1.00 15.00 H
+ATOM 15 HB3 TYR A 7 10.644 6.563 8.354 1.00 15.00 H
+ATOM 16 HD1 TYR A 7 7.598 4.974 7.330 1.00 15.00 H
+ATOM 17 HD2 TYR A 7 9.064 7.637 10.081 1.00 15.00 H
+ATOM 18 HE1 TYR A 7 5.756 5.132 8.319 1.00 15.00 H
+ATOM 19 HE2 TYR A 7 7.206 7.495 11.005 1.00 15.00 H
+ATOM 20 HH TYR A 7 5.208 7.016 11.256 1.00 15.00 H
+TER
+"""
+#
+
+def run():
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ file_name = None,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+ xray_structure = processed_pdb_file.xray_structure()
+ pdb_hierarchy.write_pdb_file(
+ file_name = "distorted.pdb",
+ crystal_symmetry = xray_structure.crystal_symmetry())
+ geometry_restraints = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False)
+ #geometry_restraints.write_geo_file(file_name='start.geo')
+ states = mmtbx.utils.states(
+ xray_structure = xray_structure,
+ pdb_hierarchy = pdb_hierarchy)
+ states.add(sites_cart = xray_structure.sites_cart())
+
+ riding_h_manager = riding.manager(
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
+
+ # save shaked model in states
+ states.add(sites_cart = xray_structure.sites_cart())
+ #
+ #xray_structure.scatterers().flags_set_grads(state=False)
+ xray_structure.scatterers().flags_set_grad_site(
+ iselection = xray_structure.all_selection().iselection())
+ #xray_structure.show_scatterer_flags_summary()
+
+ use_riding = True
+ minimized = lbfgs(
+ xray_structure = xray_structure,
+ states = states,
+ geometry_restraints = geometry_restraints,
+ riding_h_manager = riding_h_manager,
+ use_riding = use_riding,
+ verbose = 0)
+ minimized.states.write(
+ file_name = "minimized_all_states.pdb",
+ crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy.adopt_xray_structure(minimized.xray_structure)
+ pdb_hierarchy.write_pdb_file(
+ file_name = "minimized.pdb",
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ target_final = geometry_restraints.energies_sites(
+ sites_cart = xray_structure.sites_cart(),
+ compute_gradients = True).target
+ assert (target_final < 1.5), 'Target of final riding model is too large'
+
+if (__name__ == "__main__"):
+ t0 = time.time()
+ run()
+ print "OK. Time:", round(time.time()-t0, 2), "seconds"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dcl...@us...> - 2016-11-21 20:26:55
|
Revision: 25763
http://sourceforge.net/p/cctbx/code/25763
Author: dcliebschner
Date: 2016-11-21 20:26:52 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
minor modifications
Modified Paths:
--------------
trunk/mmtbx/hydrogens/parameterization.py
trunk/mmtbx/hydrogens/riding.py
trunk/mmtbx/hydrogens/tst_connectivity.py
trunk/mmtbx/hydrogens/tst_parameterization_1.py
trunk/mmtbx/hydrogens/tst_parameterization_2.py
trunk/mmtbx/hydrogens/tst_parameterization_3.py
trunk/mmtbx/hydrogens/tst_parameterization_4.py
trunk/mmtbx/hydrogens/tst_parameterization_5.py
trunk/mmtbx/hydrogens/tst_parameterization_6.py
trunk/mmtbx/hydrogens/tst_riding_fd_1.py
trunk/mmtbx/hydrogens/tst_riding_fd_2.py
trunk/mmtbx/hydrogens/tst_riding_fd_3.py
trunk/mmtbx/hydrogens/tst_riding_fd_4.py
trunk/mmtbx/hydrogens/tst_riding_fd_5.py
Modified: trunk/mmtbx/hydrogens/parameterization.py
===================================================================
--- trunk/mmtbx/hydrogens/parameterization.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/parameterization.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -7,29 +7,6 @@
from stdlib import math
from scitbx.math import dihedral_angle
-legend = """\
-phenix.hydrogen_parameterization:
-Computes the parameters for the compuationf of H atom positions
-based on their parent atoms
-
-Inputs:
- - Model file in PDB format (other files are not supported)
-
-Usage examples:
- phenix.hydrogen_parameterization model.pdb
-
-Output:
- This code produces a dictionary
- H atom index is the key, pointing to an object which contains necessary
- parameters to build the H atom again (knowing the coordinates of
- the parent atoms)
- H (iseq) --> parameterization_info
-
-Important:
- Hydrogen atoms need to be present in the file.
- H atoms can be generated with phenix.reduce
-"""
-
class parameterization_info(object):
def __init__(
self,
@@ -51,7 +28,7 @@
# 1. planar geometry
# 2. two tetragonal CH2 geometry
# 3. H out of plane of its 3 neighbors (should be rare and not in AA)
-def get_coefficients(ih, a0, a1, a2, ih2, idealize, sites_cart, typeh):
+def get_coefficients(ih,a0,a1,a2,ih2, use_ideal_bonds_angles, sites_cart,typeh):
rh = matrix.col(sites_cart[ih])
r0 = matrix.col(sites_cart[a0.iseq])
r1 = matrix.col(sites_cart[a1.iseq])
@@ -59,7 +36,7 @@
uh0 = (rh - r0).normalize()
u10 = (r1 - r0).normalize()
u20 = (r2 - r0).normalize()
- if idealize:
+ if use_ideal_bonds_angles:
alpha0 = math.radians(a0.angle_ideal[0])
alpha1 = math.radians(a1.angle_ideal)
alpha2 = math.radians(a2.angle_ideal)
@@ -92,7 +69,7 @@
if (ih2 is not None):
rh2 = matrix.col(sites_cart[ih2.iseq])
uh02 = (rh2 - r0).normalize()
- if idealize:
+ if use_ideal_bonds_angles:
h = math.radians(ih2.angle_ideal) * 0.5
else:
h = (uh0).angle(uh02) * 0.5
@@ -117,7 +94,7 @@
return sumang, a, b, h, root
# obtain coefficients for tetragonal H (such as HA) using Cramer's rule
-def get_coefficients_alg3(rh, a0, a1, a2, a3, idealize, sites_cart):
+def get_coefficients_alg3(rh, a0,a1,a2,a3, use_ideal_bonds_angles, sites_cart):
r0 = matrix.col(sites_cart[a0.iseq])
r1 = matrix.col(sites_cart[a1.iseq])
r2 = matrix.col(sites_cart[a2.iseq])
@@ -126,7 +103,7 @@
u10 = (r1 - r0).normalize()
u20 = (r2 - r0).normalize()
u30 = (r3 - r0).normalize()
- if idealize:
+ if use_ideal_bonds_angles:
alpha0 = math.radians(a1.angle_ideal)
alpha1 = math.radians(a2.angle_ideal)
alpha2 = math.radians(a3.angle_ideal)
@@ -171,7 +148,7 @@
# for every H atom, determine the type of bond
-def get_h_parameterization(h_connectivity, sites_cart, idealize):
+def get_h_parameterization(h_connectivity, sites_cart, use_ideal_bonds_angles):
h_parameterization = {}
n_atoms = len(sites_cart)
for ih in h_connectivity.keys():
@@ -189,7 +166,7 @@
n_red_neigbs = len(reduced_neighbs)
rh = matrix.col(sites_cart[ih])
r0 = matrix.col(sites_cart[a0.iseq])
- if idealize:
+ if use_ideal_bonds_angles:
dist_h = a0.dist_ideal
else:
dist_h = (r0 - rh).length()
@@ -205,14 +182,14 @@
else:
ih2 = None
sumang, a, b, h, root = get_coefficients(
- ih = ih,
- a0 = a0,
- a1 = a1,
- a2 = a2,
- ih2 = ih2,
- idealize = idealize,
- sites_cart = sites_cart,
- typeh = 'alg2')
+ ih = ih,
+ a0 = a0,
+ a1 = a1,
+ a2 = a2,
+ ih2 = ih2,
+ use_ideal_bonds_angles = use_ideal_bonds_angles,
+ sites_cart = sites_cart,
+ typeh = 'alg2')
h_parameterization[ih] = parameterization_info(
a0 = a0.iseq,
a1 = a1.iseq,
@@ -247,12 +224,12 @@
elif (n_red_neigbs == 3 and count_H == 0):
a1, a2, a3 = reduced_neighbs[0], reduced_neighbs[1], reduced_neighbs[2]
a, b, h = get_coefficients_alg3(
- rh = rh,
- a0 = a0,
- a1 = a1,
- a2 = a2,
- a3 = a3,
- idealize = idealize,
+ rh = rh,
+ a0 = a0,
+ a1 = a1,
+ a2 = a2,
+ a3 = a3,
+ use_ideal_bonds_angles = use_ideal_bonds_angles,
sites_cart = sites_cart)
h_parameterization[ih] = parameterization_info(
a0 = a0.iseq,
@@ -307,7 +284,7 @@
rb1 = matrix.col(sites_cart[b1.iseq])
uh0 = (rh - r0).normalize()
u10 = (r1 - r0).normalize()
- if idealize:
+ if use_ideal_bonds_angles:
alpha = math.radians(a1.angle_ideal)
phi = math.radians(b1.dihedral_ideal)
#phi = dihedral
@@ -354,7 +331,7 @@
dihedral = dihedral_angle(
sites=[sites_cart[ih], sites_cart[a0.iseq],
sites_cart[a1.iseq],sites_cart[b1.iseq]])
- if idealize:
+ if use_ideal_bonds_angles:
alpha = math.radians(a1.angle_ideal)
#phi = math.radians(b1.dihedral_ideal)
#allow for rotation even for idealize = True
Modified: trunk/mmtbx/hydrogens/riding.py
===================================================================
--- trunk/mmtbx/hydrogens/riding.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/riding.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -1,5 +1,4 @@
from __future__ import division
-
from cctbx import geometry_restraints
from scitbx import matrix
from mmtbx.hydrogens import connectivity
@@ -8,46 +7,46 @@
class manager(object):
def __init__(self,
- hierarchy,
+ pdb_hierarchy,
geometry_restraints,
- crystal_symmetry = None,
- xray_structure = None,
- idealize = True):
- cs = crystal_symmetry
+ xray_structure = None,
+ use_ideal_bonds_angles = True):
# maybe not necessary to allow reading in xrs - think about it later
- assert cs is not None or xray_structure is not None
+ # TODO: more safeguarding
+# assert cs is not None or xray_structure is not None
+ self.cs = geometry_restraints.crystal_symmetry
if xray_structure is not None:
- assert hierarchy.atoms_size() == xray_structure.scatterers().size()
+ assert pdb_hierarchy.atoms_size() == xray_structure.scatterers().size()
if xray_structure is None:
- self.xray_structure = hierarchy.extract_xray_structure(
- crystal_symmetry=cs)
- self.cs = cs
+ self.xray_structure = pdb_hierarchy.extract_xray_structure(
+ crystal_symmetry=self.cs)
else:
self.xray_structure = xray_structure
- self.cs = xray_structure.crystal_symmetry()
- self.hierarchy = hierarchy
- sites_cart = hierarchy.atoms().extract_xyz()
+ self.pdb_hierarchy = pdb_hierarchy
+ sites_cart = pdb_hierarchy.atoms().extract_xyz()
self.connectivity_obj = connectivity.determine_H_neighbors(
- geometry_restraints = geometry_restraints,
- pdb_hierarchy = self.hierarchy)
+ geometry_restraints = geometry_restraints,
+ pdb_hierarchy = self.pdb_hierarchy)
self.h_connectivity = self.connectivity_obj.h_connectivity
self.h_parameterization = parameterization.get_h_parameterization(
- h_connectivity = self.h_connectivity,
- sites_cart = sites_cart,
- idealize = idealize)
+ h_connectivity = self.h_connectivity,
+ sites_cart = sites_cart,
+ use_ideal_bonds_angles = use_ideal_bonds_angles)
- def idealize_hydrogens(self, hierarchy, xray_structure=None):
+ def idealize_hydrogens_inplace(self, pdb_hierarchy=None, xray_structure=None):
""" Doing idealization in place, maybe it is better to return a copy, but
not sure. """
# some safeguarding is necessary, like
# I'm sure you'll come up with something more to make sure this hierarchy
# is consistent with what was used to initialize this object.
- assert hierarchy.atoms_size() == self.hierarchy.atoms_size()
+ if pdb_hierarchy is not None:
+ assert pdb_hierarchy.atoms_size() == self.pdb_hierarchy.atoms_size()
if xray_structure is None:
- xray_structure = hierarchy.extract_xray_structure(
+ xray_structure = pdb_hierarchy.extract_xray_structure(
crystal_symmetry=self.cs)
- sites_cart = hierarchy.atoms().extract_xyz()
+ #sites_cart = pdb_hierarchy.atoms().extract_xyz()
+ sites_cart = xray_structure.sites_cart()
for ih in self.h_parameterization.keys():
hp = self.h_parameterization[ih]
@@ -67,21 +66,5 @@
# XXX This is bug guard. For some reason in my model I'm getting None
# somewhere in the middle --> DL: should work now but keep in mind
xray_structure.set_sites_cart(sites_cart)
- hierarchy.adopt_xray_structure(xray_structure)
-
- def idealize_hydrogens_sc_inplace(self, sites_cart):
- for ih in self.h_parameterization.keys():
- hp = self.h_parameterization[ih]
- rh = matrix.col(sites_cart[ih])
- rh_calc = None
- if (hp.htype in ['unk','unk_ideal']):
- rh_calc = rh
- else:
- rh_calc = parameterization.compute_H_position(
- ih = ih,
- sites_cart = sites_cart,
- hp = hp)
- if (rh_calc is None):
- rh_calc = rh
- sites_cart[ih] = rh_calc
-
+ if pdb_hierarchy is not None:
+ pdb_hierarchy.adopt_xray_structure(xray_structure)
Modified: trunk/mmtbx/hydrogens/tst_connectivity.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_connectivity.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_connectivity.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -64,9 +64,8 @@
angle_proxies = restraints_manager.geometry.get_all_angle_proxies()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_connectivity = riding_h_manager.h_connectivity
bond_list = {}
Modified: trunk/mmtbx/hydrogens/tst_parameterization_1.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_1.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_1.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -35,9 +35,8 @@
atoms = pdb_hierarchy.atoms()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_parameterization = riding_h_manager.h_parameterization
h_connectivity = riding_h_manager.h_connectivity
Modified: trunk/mmtbx/hydrogens/tst_parameterization_2.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_2.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_2.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -35,9 +35,8 @@
atoms = pdb_hierarchy.atoms()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_parameterization = riding_h_manager.h_parameterization
Modified: trunk/mmtbx/hydrogens/tst_parameterization_3.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_3.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_3.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -9,14 +9,10 @@
#-----------------------------------------------------------------------------
# This test checks the parameterization of hydrogen atoms for planar X-H2 groups
-# Steps:
-# 1) determine parameterization
-# 2) Compare calculated position of H from parameterization to input position
-# test fails if distance is > 0.03 A
# Aim is to test if ideal dihedral angles are correct for any configuration
#-----------------------------------------------------------------------------
-def exercise(pdb_str, idealize):
+def exercise(pdb_str):
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed_pdb_file = monomer_library.pdb_interpretation.process(
@@ -35,9 +31,8 @@
atoms = pdb_hierarchy.atoms()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_parameterization = riding_h_manager.h_parameterization
@@ -56,11 +51,13 @@
labels = atoms[ih].fetch_labels()
hp = h_parameterization[ih]
#type_list.append(hp.htype)
- assert (h_distances[ih] < 0.01), 'distance too large: %s atom: %s (%s) residue: %s ' \
+ assert (h_distances[ih] < 0.01), \
+ 'distance too large: %s atom: %s (%s) residue: %s ' \
% (hp.htype, atoms[ih].name, ih, labels.resseq.strip())
- assert (number_h == len(h_parameterization.keys())), 'not all H atoms are parameterized'
+ assert (number_h == len(h_parameterization.keys())), \
+ 'not all H atoms are parameterized'
assert(len(unk_list) == 0), 'Some H atoms are not recognized'
@@ -218,8 +215,8 @@
def run():
for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- print 'pdb_string:', str_name, 'idealize =', True
- exercise(pdb_str=pdb_str, idealize=True)
+ #print 'pdb_string:', str_name, 'use_ideal_bonds_angles =', True
+ exercise(pdb_str=pdb_str)
if (__name__ == "__main__"):
t0 = time.time()
Modified: trunk/mmtbx/hydrogens/tst_parameterization_4.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_4.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_4.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -20,7 +20,7 @@
#-----------------------------------------------------------------------------
-def exercise(pdb_str, idealize):
+def exercise(pdb_str, use_ideal_bonds_angles):
# --------------------------------------------------------------
# code to switch off CDL
# --------------------------------------------------------------
@@ -64,10 +64,9 @@
sites_cart = xray_structure.sites_cart()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
+ pdb_hierarchy = pdb_hierarchy,
geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry(),
- idealize = idealize)
+ use_ideal_bonds_angles = use_ideal_bonds_angles)
h_parameterization = riding_h_manager.h_parameterization
@@ -86,7 +85,7 @@
labels = atoms[ih].fetch_labels()
hp = h_parameterization[ih]
#type_list.append(hp.htype)
- if idealize:
+ if use_ideal_bonds_angles:
assert (h_distances[ih] < 0.03), \
'distance too large: %s atom: %s (%s) residue: %s ' \
% (hp.htype, atoms[ih].name, ih, labels.resseq.strip())
@@ -208,10 +207,10 @@
'pdb_str_04', 'pdb_str_05']
def run():
- for idealize in [True, False]:
- print 'idealize =', idealize
+ for use_ideal_bonds_angles in [True, False]:
+ print 'use_ideal_bonds_angles =', use_ideal_bonds_angles
for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- exercise(pdb_str=pdb_str, idealize=idealize)
+ exercise(pdb_str=pdb_str, use_ideal_bonds_angles=use_ideal_bonds_angles)
if (__name__ == "__main__"):
t0 = time.time()
Modified: trunk/mmtbx/hydrogens/tst_parameterization_5.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_5.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_5.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -31,9 +31,8 @@
atoms = pdb_hierarchy.atoms()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_parameterization = riding_h_manager.h_parameterization
diagnostics = parameterization.diagnostics_parameterization(
Modified: trunk/mmtbx/hydrogens/tst_parameterization_6.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_6.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_parameterization_6.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -33,9 +33,8 @@
atoms = pdb_hierarchy.atoms()
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry_restraints,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry_restraints)
h_parameterization = riding_h_manager.h_parameterization
Modified: trunk/mmtbx/hydrogens/tst_riding_fd_1.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_1.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_1.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -23,7 +23,7 @@
# H with rotational degree of freedom (SER, etc)
#-----------------------------------------------------------------------------
-def exercise(pdb_str, eps, idealize):
+def exercise(pdb_str, eps, use_ideal_bonds_angles):
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed_pdb_file = monomer_library.pdb_interpretation.process(
@@ -44,9 +44,9 @@
pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ use_ideal_bonds_angles = use_ideal_bonds_angles)
h_parameterization = riding_h_manager.h_parameterization
@@ -282,14 +282,12 @@
'pdb_str_04', 'pdb_str_05', 'pdb_str_06', 'pdb_str_07', 'pdb_str_08',
'pdb_str_09', 'pdb_str_10', 'pdb_str_11']
-#pdb_list = [pdb_str_02, pdb_str_03]
-#pdb_list_name = ['pdb_str_02', 'pdb_str_03']
-
def run():
- for idealize in [True, False]:
+ for use_ideal_bonds_angles in [True, False]:
for pdb_str, str_name in zip(pdb_list,pdb_list_name):
#print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+ exercise(pdb_str=pdb_str, eps=1.e-4,
+ use_ideal_bonds_angles=use_ideal_bonds_angles)
if (__name__ == "__main__"):
t0 = time.time()
Modified: trunk/mmtbx/hydrogens/tst_riding_fd_2.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_2.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_2.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -15,7 +15,7 @@
#-----------------------------------------------------------------------------
#
-def exercise(pdb_str, eps,idealize):
+def exercise(pdb_str, eps):
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed_pdb_file = monomer_library.pdb_interpretation.process(
@@ -36,14 +36,13 @@
g_analytical = es.gradients
#
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry)
h_parameterization = riding_h_manager.h_parameterization
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
+ riding_h_manager.idealize_hydrogens_inplace(
+ pdb_hierarchy=pdb_hierarchy,
xray_structure=xray_structure)
#sites_cart = pdb_hierarchy.atoms().extract_xyz()
sites_cart = xray_structure.sites_cart()
@@ -70,17 +69,14 @@
ts = []
for sign in [-1,1]:
sites_cart_ = sites_cart.deep_copy()
- pdb_hierarchy_ = pdb_hierarchy.deep_copy()
+ xray_structure_ = xray_structure.deep_copy_scatterers()
sites_cart_[i_site] = [
sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- pdb_hierarchy_.atoms().set_xyz(sites_cart_)
+ xray_structure_.set_sites_cart(sites_cart_)
# after shift, recalculate H position
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy_)
- #sites_cart_ = xray_structure_.sites_cart()
- #riding_h_manager.idealize_hydrogens_sc_inplace(
- # sites_cart=sites_cart_)
- sites_cart_ = pdb_hierarchy_.atoms().extract_xyz()
+ riding_h_manager.idealize_hydrogens_inplace(
+ xray_structure=xray_structure_)
+ sites_cart_ = xray_structure_.sites_cart()
ts.append(geometry.energies_sites(
sites_cart = sites_cart_,
compute_gradients = False).target)
@@ -563,14 +559,13 @@
#pdb_list_name = ['pdb_str_02']
def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #for use_ideal_bonds_angles in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
#print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+ exercise(pdb_str=pdb_str, eps=1.e-4)
if (__name__ == "__main__"):
t0 = time.time()
run()
- #run(sys.argv[1:])
print "OK. Time:", round(time.time()-t0, 2), "seconds"
Modified: trunk/mmtbx/hydrogens/tst_riding_fd_3.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_3.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_3.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -8,36 +8,35 @@
from mmtbx.hydrogens import riding
from mmtbx.hydrogens import modify_gradients
-def exercise(pdb_str, eps, idealize):
+def exercise(pdb_str, eps):
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
xray_structure = processed_pdb_file.xray_structure()
sites_cart = xray_structure.sites_cart()
geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
+ show_energies = False,
+ plain_pairs_radius = 5.0)
es = geometry.energies_sites(
- sites_cart = sites_cart,
+ sites_cart = sites_cart,
compute_gradients = True)
g_analytical = es.gradients
#
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry)
h_parameterization = riding_h_manager.h_parameterization
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
- xray_structure=xray_structure)
+ riding_h_manager.idealize_hydrogens_inplace(
+ pdb_hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
#sites_cart = pdb_hierarchy.atoms().extract_xyz()
sites_cart = xray_structure.sites_cart()
@@ -61,17 +60,20 @@
ts = []
for sign in [-1,1]:
sites_cart_ = sites_cart.deep_copy()
+ xray_structure_ = xray_structure.deep_copy_scatterers()
sites_cart_[i_site] = [
sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ xray_structure_.set_sites_cart(sites_cart_)
# after shift, recalculate H position
- riding_h_manager.idealize_hydrogens_sc_inplace(
- sites_cart=sites_cart_)
+ riding_h_manager.idealize_hydrogens_inplace(
+ xray_structure=xray_structure_)
+ sites_cart_ = xray_structure_.sites_cart()
ts.append(geometry.energies_sites(
sites_cart = sites_cart_,
compute_gradients = False).target)
g_fd_i.append((ts[1]-ts[0])/(2*eps))
g_fd.append(g_fd_i)
- #
+
for g1, g2 in zip(g_analytical, g_fd):
#print g1,g2
assert approx_equal(g1,g2, 1.e-4)
@@ -409,8 +411,8 @@
"""
def run():
- for idealize in [True,False]:
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+ #for idealize in [True,False]:
+ exercise(pdb_str=pdb_str, eps=1.e-4)
if (__name__ == "__main__"):
t0 = time.time()
Modified: trunk/mmtbx/hydrogens/tst_riding_fd_4.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_4.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_4.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -30,15 +30,14 @@
g_analytical = es.gradients
#
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry)
h_parameterization = riding_h_manager.h_parameterization
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
- xray_structure=xray_structure)
+ riding_h_manager.idealize_hydrogens_inplace(
+ pdb_hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
#sites_cart = pdb_hierarchy.atoms().extract_xyz()
sites_cart = xray_structure.sites_cart()
@@ -62,17 +61,20 @@
ts = []
for sign in [-1,1]:
sites_cart_ = sites_cart.deep_copy()
+ xray_structure_ = xray_structure.deep_copy_scatterers()
sites_cart_[i_site] = [
sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ xray_structure_.set_sites_cart(sites_cart_)
# after shift, recalculate H position
- riding_h_manager.idealize_hydrogens_sc_inplace(
- sites_cart=sites_cart_)
+ riding_h_manager.idealize_hydrogens_inplace(
+ xray_structure=xray_structure_)
+ sites_cart_ = xray_structure_.sites_cart()
ts.append(geometry.energies_sites(
sites_cart = sites_cart_,
compute_gradients = False).target)
g_fd_i.append((ts[1]-ts[0])/(2*eps))
g_fd.append(g_fd_i)
- #
+
for g1, g2 in zip(g_analytical, g_fd):
#print g1,g2
assert approx_equal(g1,g2, 1.e-4)
Modified: trunk/mmtbx/hydrogens/tst_riding_fd_5.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_5.py 2016-11-21 19:03:57 UTC (rev 25762)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_5.py 2016-11-21 20:26:52 UTC (rev 25763)
@@ -16,20 +16,20 @@
# C-H exchange might not be sensical, but it's always good to test anyway
#-----------------------------------------------------------------------------
#
-def exercise(pdb_str, eps, idealize):
+def exercise(pdb_str, eps):
mon_lib_srv = monomer_library.server.server()
ener_lib = monomer_library.server.ener_lib()
processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
xray_structure = processed_pdb_file.xray_structure()
sites_cart = xray_structure.sites_cart()
geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
+ show_energies = False,
+ plain_pairs_radius = 5.0)
es = geometry.energies_sites(
sites_cart = sites_cart,
@@ -37,14 +37,13 @@
g_analytical = es.gradients
#
riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
+ pdb_hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry)
h_parameterization = riding_h_manager.h_parameterization
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
+ riding_h_manager.idealize_hydrogens_inplace(
+ pdb_hierarchy=pdb_hierarchy,
xray_structure=xray_structure)
#sites_cart = pdb_hierarchy.atoms().extract_xyz()
sites_cart = xray_structure.sites_cart()
@@ -69,17 +68,20 @@
ts = []
for sign in [-1,1]:
sites_cart_ = sites_cart.deep_copy()
+ xray_structure_ = xray_structure.deep_copy_scatterers()
sites_cart_[i_site] = [
sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ xray_structure_.set_sites_cart(sites_cart_)
# after shift, recalculate H position
- riding_h_manager.idealize_hydrogens_sc_inplace(
- sites_cart=sites_cart_)
+ riding_h_manager.idealize_hydrogens_inplace(
+ xray_structure=xray_structure_)
+ sites_cart_ = xray_structure_.sites_cart()
ts.append(geometry.energies_sites(
sites_cart = sites_cart_,
compute_gradients = False).target)
g_fd_i.append((ts[1]-ts[0])/(2*eps))
g_fd.append(g_fd_i)
- #
+
for g1, g2 in zip(g_analytical, g_fd):
#print g1,g2
assert approx_equal(g1,g2, 1.e-4)
@@ -318,10 +320,10 @@
#pdb_list_name = ['pdb_str_02']
def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #for idealize in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
#print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+ exercise(pdb_str=pdb_str, eps=1.e-4)
if (__name__ == "__main__"):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nwm...@us...> - 2016-11-21 19:03:59
|
Revision: 25762
http://sourceforge.net/p/cctbx/code/25762
Author: nwmoriarty
Date: 2016-11-21 19:03:57 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
small bug fix and now the test...
Modified Paths:
--------------
trunk/mmtbx/monomer_library/tst_linking.py
Modified: trunk/mmtbx/monomer_library/tst_linking.py
===================================================================
--- trunk/mmtbx/monomer_library/tst_linking.py 2016-11-21 18:55:41 UTC (rev 25761)
+++ trunk/mmtbx/monomer_library/tst_linking.py 2016-11-21 19:03:57 UTC (rev 25762)
@@ -2154,6 +2154,26 @@
ATOM 46 C ASN A 210 -63.605 34.499 -16.022 1.00 72.64 C
ATOM 47 CB ASN A 210 -63.830 34.555 -13.567 1.00 77.34 C
""",
+ 'linking_test_CM-SO4.pdb' : '''
+HETATM 5816 N26 CM C 4 11.872 46.521 11.694 1.00 15.75 A N
+HETATM 6475 S SO4 D 4 12.593 45.477 7.849 1.00 30.00 S
+HETATM 6476 O1 SO4 D 4 13.522 46.224 6.981 1.00 30.00 O
+HETATM 6477 O2 SO4 D 4 11.558 44.829 7.018 1.00 30.00 O
+HETATM 6478 O3 SO4 D 4 13.343 44.439 8.588 1.00 30.00 O
+HETATM 6479 O4 SO4 D 4 11.949 46.390 8.816 1.00 30.00 O
+''',
+ "CM.cif" : """
+data_comp_CM
+#
+loop_
+_chem_comp_atom.comp_id
+_chem_comp_atom.atom_id
+_chem_comp_atom.type_symbol
+_chem_comp_atom.type_energy
+_chem_comp_atom.partial_charge
+_chem_comp_atom.charge
+CM N26 N N 0.000 0
+""",
}
links = {
@@ -2197,6 +2217,7 @@
"linking_test_CYS_CYS_alt_loc.pdb" : [17,17],
#
"linking_test_MAN-before-ASN.pdb" : [15,15],
+ 'linking_test_CM-SO4.pdb' : [4,4],
}
def run_and_test(cmd, pdb, i):
@@ -2283,6 +2304,7 @@
"linking_test_NAG-FU4.pdb", # get_alpha_beta seems to be broken
] and 0: continue
if pdb.find("CD_GHE")>-1: continue
+ #if pdb.find('SO4')==-1: continue
print 'pdb',pdb
j+=1
if only_i is not None and only_i!=j: continue
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nwm...@us...> - 2016-11-21 18:55:43
|
Revision: 25761
http://sourceforge.net/p/cctbx/code/25761
Author: nwmoriarty
Date: 2016-11-21 18:55:41 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
small bug fix
Modified Paths:
--------------
trunk/mmtbx/monomer_library/linking_setup.py
Modified: trunk/mmtbx/monomer_library/linking_setup.py
===================================================================
--- trunk/mmtbx/monomer_library/linking_setup.py 2016-11-21 16:44:30 UTC (rev 25760)
+++ trunk/mmtbx/monomer_library/linking_setup.py 2016-11-21 18:55:41 UTC (rev 25761)
@@ -105,7 +105,7 @@
("common_amino_acid", "common_rna_dna") : amino_acid_bond_cutoff**2,
("common_rna_dna", "common_small_molecule") : other_bond_cutoff**2,
("common_amino_acid", "common_small_molecule") : amino_acid_bond_cutoff*other_bond_cutoff,
- ("other", "common_small_molecule") : amino_acid_bond_cutoff*other_bond_cutoff,
+ ("common_small_molecule", 'other') : other_bond_cutoff*other_bond_cutoff,
#
("metal", "metal") : metal_coordination_cutoff**2,
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <oe...@us...> - 2016-11-21 16:44:32
|
Revision: 25760
http://sourceforge.net/p/cctbx/code/25760
Author: oeffner
Date: 2016-11-21 16:44:30 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
Let bootstrap give config_modules.sh executable permissions.
Let config_modules.sh set LD_LIBRARY_PATH variable for linux builds
Modified Paths:
--------------
trunk/libtbx/auto_build/bootstrap.py
Modified: trunk/libtbx/auto_build/bootstrap.py
===================================================================
--- trunk/libtbx/auto_build/bootstrap.py 2016-11-21 12:07:38 UTC (rev 25759)
+++ trunk/libtbx/auto_build/bootstrap.py 2016-11-21 16:44:30 UTC (rev 25760)
@@ -1393,7 +1393,11 @@
self.opjoin('..', 'modules', 'cctbx_project', 'libtbx', 'configure.py')
] + self.get_libtbx_configure()
fname = self.opjoin("config_modules.cmd")
- confstr = subprocess.list2cmdline(configcmd)
+ ldlibpath = ""
+ sys.platform.startswith("linux"):
+ ldlibpath = "export LD_LIBRARY_PATH=../base/lib\n"
+ # because that was the environment when python and base components were built during bootstrap
+ confstr = ldlibpath + subprocess.list2cmdline(configcmd)
if not self.isPlatformWindows():
fname = self.opjoin("config_modules.sh")
confstr = '#!/bin/sh\n\n' + confstr
@@ -1404,6 +1408,11 @@
workdir=['build'],
description="save configure command",
))
+ if not self.isPlatformWindows():
+ self.add_step(self.shell(command=[ 'chmod', '+x', fname ],
+ workdir=['build'],
+ description="permit execution of config_modules.sh",
+ ))
def add_make(self):
self.add_command('libtbx.scons', args=['-j',
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rjg...@us...> - 2016-11-21 12:07:41
|
Revision: 25759
http://sourceforge.net/p/cctbx/code/25759
Author: rjgildea
Date: 2016-11-21 12:07:38 +0000 (Mon, 21 Nov 2016)
Log Message:
-----------
cctbx.miller.array: add calculation of cc_one_half by the sigma-tau method; iotbx.merging_statistics: calculate cc1/2 by half-dataset and sigma-tau methods, optionally choose between them for output
Modified Paths:
--------------
trunk/cctbx/miller/__init__.py
trunk/cctbx/regression/tst_miller_statistics.py
trunk/iotbx/command_line/merging_statistics.py
trunk/iotbx/merging_statistics.py
trunk/iotbx/regression/tst_merging_statistics.py
Modified: trunk/cctbx/miller/__init__.py
===================================================================
--- trunk/cctbx/miller/__init__.py 2016-11-19 23:22:23 UTC (rev 25758)
+++ trunk/cctbx/miller/__init__.py 2016-11-21 12:07:38 UTC (rev 25759)
@@ -4666,7 +4666,8 @@
# this is tested as part of phenix.merging_statistics (note that the exact
# values are not reproducible)
- def cc_one_half (self, use_binning=False, n_trials=1, anomalous_flag=False) :
+ def cc_one_half (self, use_binning=False, n_trials=1, anomalous_flag=False,
+ return_n_refl=False) :
"""
Calculate the correlation between two randomly assigned pools of unmerged
data ("CC 1/2"). If desired the mean over multiple trials can be taken.
@@ -4680,7 +4681,8 @@
tmp_array = self.customized_copy(
anomalous_flag=anomalous_flag).map_to_asu()
tmp_array = tmp_array.sort("packed_indices")
- return compute_cc_one_half(tmp_array, n_trials=n_trials)
+ return compute_cc_one_half(tmp_array, n_trials=n_trials,
+ return_n_refl=return_n_refl)
assert self.binner() is not None
data = []
for i_bin in self.binner().range_all():
@@ -4692,6 +4694,44 @@
data.append(bin_array.cc_one_half(n_trials=n_trials))
return binned_data(binner=self.binner(), data=data, data_fmt="%6.3f")
+ def cc_one_half_sigma_tau(self, use_binning=False, anomalous_flag=False,
+ use_internal_variance=True,
+ return_n_refl=False):
+ """
+ Calculation of CC1/2 by the 'sigma-tau' method, avoiding the random
+ assignment into half-datasets of the above method.
+ See Assmann et al., J. Appl. Cryst. (2016). 49, 1021–1028.
+
+ var_y is the variange of the average intensities across the unique
+ reflections of a resolution shell.
+ var_e is the average variance of the observations contributing to the
+ merged intensities
+ """
+ assert self.is_xray_intensity_array()
+ if (not use_binning):
+ merged = self.merge_equivalents(
+ use_internal_variance=use_internal_variance).array()
+ if merged.size() == 1:
+ cc_one_half = 0
+ else:
+ mav = flex.mean_and_variance(merged.data())
+ var_y = mav.unweighted_sample_variance()
+ var_e = flex.mean(flex.pow2(self.sigmas()))
+ cc_one_half = (var_y - 0.5 * var_e)/(var_y + 0.5 * var_e)
+ if return_n_refl:
+ return cc_one_half, merged.size()
+ return cc_one_half
+ assert self.binner() is not None
+ data = []
+ for i_bin in self.binner().range_all():
+ sel = self.binner().selection(i_bin)
+ bin_array = self.select(sel)
+ if (bin_array.size() == 0) :
+ data.append(None)
+ else :
+ data.append(bin_array.cc_one_half_sigma_tau(n_trials=n_trials))
+ return binned_data(binner=self.binner(), data=data, data_fmt="%6.3f")
+
def half_dataset_anomalous_correlation (self, use_binning=False, return_n_pairs=False) :
"""
Calculate the correlation of the anomalous differences of two randomly
@@ -5523,7 +5563,7 @@
# this is tested as part of phenix.merging_statistics (note that the exact
# values are not reproducible)
-def compute_cc_one_half (unmerged, n_trials=1) :
+def compute_cc_one_half (unmerged, n_trials=1, return_n_refl=False) :
"""
Implementation of array.cc_one_half, assuming that the reflections are
already in the ASU. Because the implementation uses random numbers, the
@@ -5547,7 +5587,10 @@
data_2 = split_datasets.data_2
cc = flex.linear_correlation(data_1, data_2).coefficient()
cc_all.append(cc)
- return sum(cc_all) / n_trials
+ cc_one_half = sum(cc_all) / n_trials
+ if return_n_refl:
+ return cc_one_half, data_1.size()
+ return cc_one_half
class systematic_absences_info (object) :
"""
Modified: trunk/cctbx/regression/tst_miller_statistics.py
===================================================================
--- trunk/cctbx/regression/tst_miller_statistics.py 2016-11-19 23:22:23 UTC (rev 25758)
+++ trunk/cctbx/regression/tst_miller_statistics.py 2016-11-21 12:07:38 UTC (rev 25759)
@@ -98,7 +98,8 @@
# platforms - therefore we can only check for very approximate values.
# Exact numerical results are tested with real data (stored elsewhere).
# CC1/2, etc.
- assert approx_equal(i_obs.cc_one_half(), 0.9998, eps=0.001)
+ assert approx_equal(i_obs.cc_one_half(), 0.9999, eps=0.001)
+ assert approx_equal(i_obs.cc_one_half_sigma_tau(), 0.9999, eps=0.001)
assert i_obs.resolution_filter(d_max=1.2).cc_one_half() > 0
assert i_obs.cc_anom() > 0.1
r_ano = i_obs.r_anom()
Modified: trunk/iotbx/command_line/merging_statistics.py
===================================================================
--- trunk/iotbx/command_line/merging_statistics.py 2016-11-19 23:22:23 UTC (rev 25758)
+++ trunk/iotbx/command_line/merging_statistics.py 2016-11-21 12:07:38 UTC (rev 25759)
@@ -121,6 +121,7 @@
eliminate_sys_absent=params.eliminate_sys_absent,
extend_d_max_min=params.extend_d_max_min,
cc_one_half_significance_level=params.cc_one_half_significance_level,
+ cc_one_half_method=params.cc_one_half_method,
log=out)
result.show(out=out)
if (getattr(params, "loggraph", False)) :
Modified: trunk/iotbx/merging_statistics.py
===================================================================
--- trunk/iotbx/merging_statistics.py 2016-11-19 23:22:23 UTC (rev 25758)
+++ trunk/iotbx/merging_statistics.py 2016-11-21 12:07:38 UTC (rev 25759)
@@ -59,6 +59,8 @@
.short_caption = Eliminate systematically absent reflections before computation of merging statistics.
cc_one_half_significance_level = None
.type = float(value_min=0, value_max=None)
+cc_one_half_method = *half_dataset sigma_tau
+ .type = choice
""" % sigma_filtering_phil_str
class model_based_arrays (object) :
@@ -189,9 +191,12 @@
debug=None,
sigma_filtering="scala",
use_internal_variance=True,
- cc_one_half_significance_level=None) :
+ cc_one_half_significance_level=None,
+ cc_one_half_method='half_dataset') :
import cctbx.miller
from scitbx.array_family import flex
+ assert cc_one_half_method in ('half_dataset', 'sigma_tau')
+ self.cc_one_half_method = cc_one_half_method
assert (array.sigmas() is not None)
non_negative_sel = array.sigmas() >= 0
self.n_neg_sigmas = non_negative_sel.count(False)
@@ -248,8 +253,13 @@
self.i_mean_over_sigi_mean = 0
self.unmerged_i_over_sigma_mean = 0
self.cc_one_half = 0
+ self.cc_one_half_n_refl = 0
self.cc_one_half_significance = None
self.cc_one_half_critical_value = None
+ self.cc_one_half_sigma_tau = 0
+ self.cc_one_half_sigma_tau_n_refl = 0
+ self.cc_one_half_sigma_tau_significance = None
+ self.cc_one_half_sigma_tau_critical_value = None
self.cc_star = 0
self.r_merge = self.r_meas = self.r_pim = None
for x in sorted(set(redundancies)) :
@@ -268,8 +278,11 @@
self.r_merge = merge.r_merge()
self.r_meas = merge.r_meas()
self.r_pim = merge.r_pim()
- self.cc_one_half = cctbx.miller.compute_cc_one_half(
- unmerged=array)
+ self.cc_one_half, self.cc_one_half_n_refl = cctbx.miller.compute_cc_one_half(
+ unmerged=array, return_n_refl=True)
+ self.cc_one_half_sigma_tau, self.cc_one_half_sigma_tau_n_refl = \
+ array.cc_one_half_sigma_tau(
+ use_internal_variance=use_internal_variance, return_n_refl=True)
if cc_one_half_significance_level is not None:
def compute_cc_significance(r, n, p):
# https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient#Testing_using_Student.27s_t-distribution
@@ -284,12 +297,17 @@
t1 = dist.quantile(1-p)
critical_value = t1/sqrt(t1**2 + n - 2)
return significance, critical_value
- self.cc_one_half_significance, self.cc_one_half_critical_value \
- = compute_cc_significance(
- self.cc_one_half, (redundancies > 1).count(True), cc_one_half_significance_level)
- self.cc_anom_significance, self.cc_anom_critical_value \
- = compute_cc_significance(
+ self.cc_one_half_significance, self.cc_one_half_critical_value = \
+ compute_cc_significance(
+ self.cc_one_half, self.cc_one_half_n_refl,
+ cc_one_half_significance_level)
+ self.cc_anom_significance, self.cc_anom_critical_value = \
+ compute_cc_significance(
self.cc_anom, n_anom_pairs, cc_one_half_significance_level)
+ self.cc_one_half_sigma_tau_significance, self.cc_one_half_sigma_tau_critical_value = \
+ compute_cc_significance(
+ self.cc_one_half_sigma_tau, array_merged.size(),
+ cc_one_half_significance_level)
if (self.cc_one_half == 0) :
self.cc_star = 0
elif (self.cc_one_half < -0.999) :
@@ -310,6 +328,12 @@
return getattr(self, "cc_anom", None)
def format (self) :
+ if self.cc_one_half_method == 'sigma_tau':
+ cc_one_half = self.cc_one_half_sigma_tau
+ cc_one_half_significance = self.cc_one_half_sigma_tau_significance
+ else:
+ cc_one_half = self.cc_one_half
+ cc_one_half_significance = self.cc_one_half_significance
return "%6.2f %6.2f %6d %6d %5.2f %6.2f %8.1f %6.1f %s %s %s % 5.3f%s % 5.3f%s" % (
self.d_max,
self.d_min,
@@ -322,8 +346,8 @@
format_value("% 7.3f", self.r_merge),
format_value("% 7.3f", self.r_meas),
format_value("% 7.3f", self.r_pim),
- self.cc_one_half,
- "*" if self.cc_one_half_significance else "",
+ cc_one_half,
+ "*" if cc_one_half_significance else "",
self.cc_anom,
"*" if self.cc_anom_significance else "")
@@ -416,6 +440,7 @@
d_min_tolerance=1.e-6,
extend_d_max_min=False,
cc_one_half_significance_level=None,
+ cc_one_half_method='half_dataset',
log=None) :
self.file_name = file_name
if (log is None) : log = null_out()
@@ -473,7 +498,8 @@
debug=debug,
sigma_filtering=sigma_filtering,
use_internal_variance=use_internal_variance,
- cc_one_half_significance_level=cc_one_half_significance_level)
+ cc_one_half_significance_level=cc_one_half_significance_level,
+ cc_one_half_method=cc_one_half_method)
self.bins = []
title = "Intensity merging statistics"
column_labels = ["1/d**2","N(obs)","N(unique)","Redundancy","Completeness",
@@ -510,10 +536,19 @@
debug=debug,
sigma_filtering=sigma_filtering,
use_internal_variance=use_internal_variance,
- cc_one_half_significance_level=cc_one_half_significance_level)
+ cc_one_half_significance_level=cc_one_half_significance_level,
+ cc_one_half_method=cc_one_half_method)
self.bins.append(bin_stats)
self.table.add_row(bin_stats.table_data())
+ from scitbx.array_family import flex
+ self.cc_one_half_overall = flex.mean_weighted(
+ flex.double(b.cc_one_half for b in self.bins),
+ flex.double(b.cc_one_half_n_refl for b in self.bins))
+ self.cc_one_half_sigma_tau_overall = flex.mean_weighted(
+ flex.double(b.cc_one_half_sigma_tau for b in self.bins),
+ flex.double(b.cc_one_half_sigma_tau_n_refl for b in self.bins))
+
@property
def signal_table (self) :
column_labels = ["1/d**2","N(obs)","N(unique)","Redundancy","Completeness",
Modified: trunk/iotbx/regression/tst_merging_statistics.py
===================================================================
--- trunk/iotbx/regression/tst_merging_statistics.py 2016-11-19 23:22:23 UTC (rev 25758)
+++ trunk/iotbx/regression/tst_merging_statistics.py 2016-11-21 12:07:38 UTC (rev 25759)
@@ -162,6 +162,16 @@
assert approx_equal(result.bins[0].cc_anom, 0.8445946103668791)
assert result.bins[0].cc_anom_significance is True
assert approx_equal(result.bins[0].cc_anom_critical_value, 0.08001889224417998)
+ assert approx_equal(result.cc_one_half_overall, 0.9277155216469152)
+ assert approx_equal(result.cc_one_half_sigma_tau_overall, 0.8967768105964079)
+ assert approx_equal(result.bins[0].cc_one_half, 0.9965897219959194)
+ assert approx_equal(result.bins[0].cc_one_half_sigma_tau, 0.9963399342024629)
+ assert result.bins[0].cc_one_half_significance is True
+ assert result.bins[0].cc_one_half_sigma_tau_significance is True
+ assert approx_equal(result.bins[-1].cc_one_half, 0.716558466728842)
+ assert approx_equal(result.bins[-1].cc_one_half_sigma_tau, 0.5948078432669492)
+ assert result.bins[-1].cc_one_half_significance is True
+ assert result.bins[-1].cc_one_half_sigma_tau_significance is True
if (__name__ == "__main__") :
exercise(debug=("--debug" in sys.argv))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mo...@us...> - 2016-11-19 23:22:25
|
Revision: 25758
http://sourceforge.net/p/cctbx/code/25758
Author: monarin
Date: 2016-11-19 23:22:23 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
UnitTest for mod_input
- Add 5 custom test classes
- Add main test file
Modified Paths:
--------------
trunk/prime/postrefine/mod_input.py
Added Paths:
-----------
trunk/prime/postrefine/unittest/
trunk/prime/postrefine/unittest/dummy_run_no/
trunk/prime/postrefine/unittest/empty_data/
trunk/prime/postrefine/unittest/test_data/
trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle
trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle
trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle
trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle
trunk/prime/postrefine/unittest/tst_mod_input.py
Modified: trunk/prime/postrefine/mod_input.py
===================================================================
--- trunk/prime/postrefine/mod_input.py 2016-11-19 01:26:17 UTC (rev 25757)
+++ trunk/prime/postrefine/mod_input.py 2016-11-19 23:22:23 UTC (rev 25758)
@@ -1,4 +1,14 @@
from __future__ import division
+
+"""read PRIME input"""
+#Define exceptions
+class ReadInputError(Exception): pass
+class InvalidData(ReadInputError): pass
+class InvalidCrystalSystem(ReadInputError): pass
+class InvalidPixelSize(ReadInputError): pass
+class InvalidRunNo(ReadInputError): pass
+class InvalidNumberOfResidues(ReadInputError): pass
+
import iotbx.phil
from libtbx.utils import Usage, Sorry
import sys, os, shutil, glob
@@ -346,44 +356,39 @@
def process_input(argv=None, flag_check_exist=True):
if argv == None:
argv = sys.argv[1:]
-
user_phil = []
- for arg in sys.argv[1:]:
+ for arg in argv:
if os.path.isfile(arg):
-
user_phil.append(iotbx.phil.parse(open(arg).read()))
elif (os.path.isdir(arg)) :
user_phil.append(iotbx.phil.parse("""data=\"%s\"""" % arg))
else :
- print arg
if arg == '--help' or arg == '-h':
print txt_help
master_phil.show(attributes_level=1)
exit()
- try :
+ try:
user_phil.append(iotbx.phil.parse(arg))
except RuntimeError, e :
raise Sorry("Unrecognized argument '%s' (error: %s)" % (arg, str(e)))
working_phil = master_phil.fetch(sources=user_phil)
params = working_phil.extract()
+ if not params.data:
+ raise InvalidData, "Error: Data is required. Please specify path to your data folder (data=/path/to/integration/results)."
- if (len(params.data) == 0):
- master_phil.show()
- raise Usage("Use the above list of parameters to generate your input file (.phil). For more information, run prime.postrefine -h.")
-
#check target_crystal_system
crystal_system_dict = {'Triclinic': 0, 'Monoclinic': 0, 'Orthorhombic': 0, 'Tetragonal': 0, 'Trigonal': 0, 'Hexagonal': 0, 'Cubic':0}
if params.target_crystal_system is not None:
if params.target_crystal_system not in crystal_system_dict:
- raise Sorry("Invalid input target_crystal_system. Please choose following options: Triclinic, Monoclinic, Orthorhombic, Tetragonal, Trigonal, Hexagonal, or Cubic.")
+ raise InvalidCrystalSystem, "Error: Invalid input target_crystal_system. Please choose following options: Triclinic, Monoclinic, Orthorhombic, Tetragonal, Trigonal, Hexagonal, or Cubic."
#check n_residues
- if params.n_residues is None:
- raise Sorry("Number of residues is required. Please specify number of residues of your structure in asymmetric unit (n_residues = xxx).")
+ if not params.n_residues:
+ raise InvalidNumberOfResidues, "Error: Number of residues is required. Please specify number of residues of your structure in asymmetric unit (n_residues = xxx)."
#check pixel_size
- if params.pixel_size_mm is None:
+ if not params.pixel_size_mm:
#look in the new integration pickle format (2016-08-05)
try:
frame_files = read_pickles(params.data)
@@ -393,7 +398,7 @@
params.pixel_size_mm = int_pickle['pixel_size']
print 'Info: Found pixel size in the integration pickles (override pixel_size_mm=%10.8f)'%(params.pixel_size_mm)
except Exception:
- raise Sorry("Pixel size in millimeter is required. Use cctbx.image_viewer to view one of your images and note down the value (e.g. for marccd set pixel_size_mm=0.079346).")
+ raise InvalidPixelSize, "Error: Pixel size in millimeter is required. Use cctbx.image_viewer to view one of your images and note down the value (e.g. for marccd, set pixel_size_mm=0.079346)."
#generate run_no folder
if flag_check_exist:
@@ -403,7 +408,7 @@
if run_overwrite == 'Y':
shutil.rmtree(params.run_no)
else:
- raise Sorry("Run number exists. Please specifiy different run no.")
+ raise InvalidRunNo, "Error: Run number exists. Please specifiy different run no."
#make folders
os.makedirs(params.run_no+'/pickles')
@@ -429,7 +434,6 @@
txt_out = 'prime.postrefine input:\n'
for one_output in output:
txt_out += one_output + '\n'
-
return params, txt_out
def read_pickles(data):
@@ -451,7 +455,6 @@
if pickle_filename.endswith('.pickle'):
frame_files.append(p+'/'+pickle_filename)
#check if pickle_dir is given in input file instead of from cmd arguments.
- if len(frame_files)==0:
- print 'No pickle files found.'
- exit()
+ if not frame_files:
+ raise InvalidData, "Error: no integration results found in the specified data parameter."
return frame_files
Added: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle
===================================================================
(Binary files differ)
Index: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle
===================================================================
--- trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle 2016-11-19 01:26:17 UTC (rev 25757)
+++ trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle 2016-11-19 23:22:23 UTC (rev 25758)
Property changes on: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E1_0_00002_20140518051704255_masked.pickle
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle
===================================================================
(Binary files differ)
Index: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle
===================================================================
--- trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle 2016-11-19 01:26:17 UTC (rev 25757)
+++ trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle 2016-11-19 23:22:23 UTC (rev 25758)
Property changes on: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E4_0_00004_20140519085451743_masked.pickle
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle
===================================================================
(Binary files differ)
Index: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle
===================================================================
--- trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle 2016-11-19 01:26:17 UTC (rev 25757)
+++ trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle 2016-11-19 23:22:23 UTC (rev 25758)
Property changes on: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E7_0_00002_20140518055446723_masked.pickle
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle
===================================================================
(Binary files differ)
Index: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle
===================================================================
--- trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle 2016-11-19 01:26:17 UTC (rev 25757)
+++ trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle 2016-11-19 23:22:23 UTC (rev 25758)
Property changes on: trunk/prime/postrefine/unittest/test_data/int_shot-s00-E8_0_00006_20140520114153420_masked.pickle
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/prime/postrefine/unittest/tst_mod_input.py
===================================================================
--- trunk/prime/postrefine/unittest/tst_mod_input.py (rev 0)
+++ trunk/prime/postrefine/unittest/tst_mod_input.py 2016-11-19 23:22:23 UTC (rev 25758)
@@ -0,0 +1,33 @@
+"""Unit test for mod_input.py"""
+from __future__ import division
+from prime.postrefine import mod_input
+import unittest
+
+class readBadInput(unittest.TestCase):
+ def testMissingData(self):
+ """mod_input should fail with invalid or missing data"""
+ self.assertRaises(mod_input.InvalidData, mod_input.process_input, \
+ ['dummy=dummier'], False)
+ def testInvalidCrystalSystem(self):
+ """mod_input should fail with invalid crystal system"""
+ self.assertRaises(mod_input.InvalidCrystalSystem, mod_input.process_input, \
+ ['data=test_data','target_crystal_system=dummy'], False)
+ def testMissingNumberOfResidues(self):
+ """mod_input should fail with invalid or missing n_residues"""
+ self.assertRaises(mod_input.InvalidNumberOfResidues, mod_input.process_input, \
+ ['data=test_data'], False)
+ def testInvalidPixelSize(self):
+ """mod_input should fail with invalid or missing pixel size"""
+ self.assertRaises(mod_input.InvalidPixelSize, mod_input.process_input, \
+ ['data=test_data','n_residues=100'], False)
+ def testBadRunNo(self):
+ """mod_input should fail with invalid run no."""
+ self.assertRaises(mod_input.InvalidRunNo, mod_input.process_input, \
+ ['data=test_data','n_residues=100','pixel_size_mm=0.07934','run_no=dummy_run_no'], True)
+ def testNoData(self):
+ """mod_input should fail when data is empty."""
+ self.assertRaises(mod_input.InvalidData, mod_input.read_pickles, ['empty_data'])
+
+
+if __name__ == "__main__":
+ unittest.main()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dcl...@us...> - 2016-11-19 01:26:19
|
Revision: 25757
http://sourceforge.net/p/cctbx/code/25757
Author: dcliebschner
Date: 2016-11-19 01:26:17 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
if H is bound to two atoms, use first parent atom
Modified Paths:
--------------
trunk/mmtbx/hydrogens/connectivity.py
Modified: trunk/mmtbx/hydrogens/connectivity.py
===================================================================
--- trunk/mmtbx/hydrogens/connectivity.py 2016-11-19 00:18:40 UTC (rev 25756)
+++ trunk/mmtbx/hydrogens/connectivity.py 2016-11-19 01:26:17 UTC (rev 25757)
@@ -1,7 +1,5 @@
from __future__ import division
#import sys
-#import time
-import random
import math
from cctbx import geometry_restraints
from libtbx import group_args
@@ -99,17 +97,11 @@
i_parent_altloc = atoms[i_parent].parent().altloc
# number_h = number_h + 1
# ---------------------------------------------------------
-# if entry exists already == H has two bonds -> nonsensical
+# if entry exists already == H has two bonds
+# use the first atom encountered, ignore all others
if (ih in h_connectivity):
double_H[ih] = [(h_connectivity[ih][0]).iseq, i_parent]
- if random.randint(0,100) < 50:
- try:
- del h_connectivity[ih]
- number_h = number_h - 1
- except KeyError:
- pass
- else:
- continue
+ continue
# ---------------------------------------------------------
number_h = number_h + 1
# h_connectivity[ih][0] --> parent atom
@@ -123,8 +115,8 @@
count_H = 0
altloc_dict = {}
- # loop to find second neighbors (ignore those where angle proxies don't exist,
- # and choose same altloc for all second neighbors)
+ # loop to find second neighbors (ignore those where angle proxies don't
+ # exist, and choose same altloc for all second neighbors)
for i_second in second_neighbors:
iselection = flex.size_t([ih,i_parent,i_second])
ap = angle_proxies.proxy_select(
@@ -137,13 +129,16 @@
altloc_dict_temp = {}
i_second_altloc = atoms[i_second].parent().altloc
# make sure that all second neighbors belong to same altloc
- if (h_connectivity[ih][1] and atoms[(h_connectivity[ih][1])[0].iseq].parent().altloc != ''):
+ if (h_connectivity[ih][1] and
+ atoms[(h_connectivity[ih][1])[0].iseq].parent().altloc != ''):
iseq_previous = (h_connectivity[ih][1])[0].iseq
overall_altloc = atoms[iseq_previous].parent().altloc
- if (i_second_altloc != '' and altloc_h == '' and i_second_altloc != overall_altloc):
+ if (i_second_altloc != '' and altloc_h == ''
+ and i_second_altloc != overall_altloc):
continue
# if no previous altloc, chose that which has highest occ
- elif (i_second_altloc != '' and altloc_h == '' and i_parent_altloc != i_second_altloc):
+ elif (i_second_altloc != '' and altloc_h == ''
+ and i_parent_altloc != i_second_altloc):
altloc_dict_temp = make_altloc_dict(
atoms = atoms,
index = i_second,
@@ -195,10 +190,12 @@
altloc_dict_third_temp = {}
i_third_altloc = atoms[i_third].parent().altloc
# make sure that all third neighbors belong to the same altloc
- if (h_connectivity[ih][3] and atoms[(h_connectivity[ih][3])[0].iseq].parent().altloc != ''):
+ if (h_connectivity[ih][3] and
+ atoms[(h_connectivity[ih][3])[0].iseq].parent().altloc != ''):
iseq_previous_third = (h_connectivity[ih][3])[0].iseq
overall_altloc_third = atoms[iseq_previous_third].parent().altloc
- if (i_third_altloc != '' and altloc_h == '' and i_third_altloc != overall_altloc_third):
+ if (i_third_altloc != '' and altloc_h == ''
+ and i_third_altloc != overall_altloc_third):
continue
elif (i_third_altloc != '' and altloc_h == ''):
altloc_dict_third_temp = make_altloc_dict(
@@ -208,7 +205,8 @@
neighbors = third_neighbors,
altloc = i_third_altloc)
if (i_third in altloc_dict_third_temp.keys()):
- i_third = max(altloc_dict_third_temp, key=lambda k: altloc_dict_third_temp[k])
+ i_third = max(altloc_dict_third_temp,
+ key=lambda k: altloc_dict_third_temp[k])
altloc_dict_third.update(altloc_dict_third_temp)
# get dihedral angle between H, A0, A1 and third neighbor(B1, B2)
iselection_dihe = flex.size_t([ih,i_parent,i_second,i_third])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dcl...@us...> - 2016-11-19 00:18:43
|
Revision: 25756
http://sourceforge.net/p/cctbx/code/25756
Author: dcliebschner
Date: 2016-11-19 00:18:40 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
hopefully clearer to guess purpose of the test
Added Paths:
-----------
trunk/mmtbx/hydrogens/tst_riding_fd_1.py
trunk/mmtbx/hydrogens/tst_riding_fd_2.py
trunk/mmtbx/hydrogens/tst_riding_fd_3.py
trunk/mmtbx/hydrogens/tst_riding_fd_4.py
trunk/mmtbx/hydrogens/tst_riding_fd_5.py
Copied: trunk/mmtbx/hydrogens/tst_riding_fd_1.py (from rev 25754, trunk/mmtbx/hydrogens/tst_fd_1.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_1.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_1.py 2016-11-19 00:18:40 UTC (rev 25756)
@@ -0,0 +1,298 @@
+from __future__ import division
+import time
+import sys
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import parameterization
+from mmtbx.hydrogens import modify_gradients
+from scitbx import matrix
+
+
+#-----------------------------------------------------------------------------
+# Finite difference test for modified gradients of riding H
+# Every type of H geometry is tested:
+# planar H
+# tetragonal H
+# two tetragonal H
+# X-H2 group (ARG etc)
+# propeller group
+# H with rotational degree of freedom (SER, etc)
+#-----------------------------------------------------------------------------
+
+def exercise(pdb_str, eps, idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ xray_structure = processed_pdb_file.xray_structure()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+ sites_cart = xray_structure.sites_cart()
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ ih = h_parameterization.keys()[0]
+ rh_calc = parameterization.compute_H_position(
+ ih = ih,
+ sites_cart = sites_cart,
+ hp = h_parameterization[ih])
+ #print 'distance before changing H', \
+ # (rh_calc - matrix.col(sites_cart[ih])).length()
+
+ sites_cart[ih] = tuple(rh_calc)
+ xray_structure.set_sites_cart(sites_cart)
+ #rh_calc = parameterization.compute_H_position(
+ # ih = ih,
+ # sites_cart = sites_cart,
+ # hp = h_parameterization[ih])
+ #print 'distance H_calc - H_mod', \
+ # (rh_calc - matrix.col(sites_cart[ih])).length()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ # after shift, recalculate H position
+ for ih in h_parameterization.keys():
+ rh_calc = parameterization.compute_H_position(
+ ih = ih,
+ sites_cart = sites_cart_,
+ hp = h_parameterization[ih])
+ sites_cart_[ih] = tuple(rh_calc)
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+ #
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+# alg2a shaked
+pdb_str_00 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
+ATOM 8 CD2 TYR A 7 8.348 7.014 9.545 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
+ATOM 17 HD2 TYR A 7 9.064 7.637 10.081 1.00 15.00 H
+TER
+"""
+# alg2a ideal geometry
+pdb_str_01 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 CG TYR A 7 8.544 6.391 8.506 1.00 15.00 C
+ATOM 2 CD2 TYR A 7 8.334 7.144 9.654 1.00 15.00 C
+ATOM 3 CE2 TYR A 7 7.078 7.251 10.220 1.00 15.00 C
+ATOM 4 HD2 TYR A 7 9.052 7.584 10.049 1.00 15.00 H
+TER
+"""
+# alg2b shaked
+pdb_str_02 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
+ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
+ATOM 14 HB2 TYR A 7 9.943 5.616 7.588 1.00 15.00 H
+END
+"""
+# alg2b ideal geometry
+pdb_str_03 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 2 CA TYR A 7 9.962 6.614 6.452 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.920 6.991 7.935 1.00 15.00 C
+ATOM 6 CG TYR A 7 8.575 6.781 8.602 1.00 15.00 C
+ATOM 14 HB2 TYR A 7 10.571 6.452 8.411 1.00 15.00 H
+"""
+
+# alg3 shaked
+pdb_str_04 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 N TYR A 7 9.035 7.089 5.637 1.00 15.00 N
+ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
+ATOM 3 C TYR A 7 11.285 7.169 6.250 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
+ATOM 13 HA TYR A 7 9.831 8.340 7.271 1.00 15.00 H
+"""
+
+# alg3 ideal geometry
+pdb_str_05 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 N TYR A 7 8.981 7.170 5.658 1.00 15.00 N
+ATOM 2 CA TYR A 7 9.949 7.360 6.732 1.00 15.00 C
+ATOM 3 C TYR A 7 11.374 7.278 6.195 1.00 15.00 C
+ATOM 4 CB TYR A 7 9.740 6.317 7.832 1.00 15.00 C
+ATOM 5 HA TYR A 7 9.823 8.239 7.122 1.00 15.00 H
+"""
+
+# alg1a shaked
+pdb_str_06 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
+ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
+"""
+
+# alg1a idealized
+pdb_str_07 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 1 NE ARG A 50 5.543 6.877 5.312 1.00 10.00 N
+ATOM 2 CZ ARG A 50 6.559 6.257 5.905 1.00 10.00 C
+ATOM 3 NH1 ARG A 50 7.213 6.851 6.894 1.00 10.00 N
+ATOM 4 NH2 ARG A 50 6.920 5.044 5.510 1.00 10.00 N
+ATOM 6 HH12 ARG A 50 7.870 6.449 7.277 1.00 10.00 H
+"""
+
+#alg1b_flat shaked
+pdb_str_08 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.338 5.396 8.586 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
+ATOM 11 CZ TYR A 7 6.090 6.501 9.765 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.857 6.463 10.553 1.00 15.00 O
+ATOM 20 HH TYR A 7 5.208 7.016 11.256 1.00 15.00 H
+"""
+
+#alg1b_flat idealized
+pdb_str_09 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 CE1 TYR A 7 6.239 5.565 8.724 1.00 15.00 C
+ATOM 2 CE2 TYR A 7 7.170 7.259 10.131 1.00 15.00 C
+ATOM 3 CZ TYR A 7 6.130 6.416 9.803 1.00 15.00 C
+ATOM 4 OH TYR A 7 4.978 6.424 10.555 1.00 15.00 O
+ATOM 5 HH TYR A 7 5.045 6.985 11.177 1.00 15.00 H
+"""
+
+#alg1b shaked (HH out of plane)
+pdb_str_10 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.231 6.395 8.363 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.119 6.748 10.501 1.00 15.00 C
+ATOM 11 CZ TYR A 7 5.926 6.249 9.983 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.831 6.083 10.481 1.00 15.00 O
+ATOM 20 HH TYR A 7 4.708 6.641 11.301 1.00 15.00 H
+"""
+
+# alg1b idealized (HH out of plane)
+pdb_str_11 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.193 6.410 8.461 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.242 6.572 10.604 1.00 15.00 C
+ATOM 11 CZ TYR A 7 6.111 6.396 9.837 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.893 6.206 10.448 1.00 15.00 O
+ATOM 20 HH TYR A 7 4.878 6.603 11.188 1.00 15.00 H
+"""
+
+#alg1a shaked with both H atoms
+pdb_str_06_bla = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
+ATOM 20 HH11 ARG A 50 6.939 7.628 7.092 1.00 10.00 H
+ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
+"""
+
+pdb_list = [pdb_str_00, pdb_str_01, pdb_str_02, pdb_str_03,
+ pdb_str_04, pdb_str_05, pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09,
+ pdb_str_10, pdb_str_11]
+
+pdb_list_name = ['pdb_str_00', 'pdb_str_01', 'pdb_str_02', 'pdb_str_03',
+ 'pdb_str_04', 'pdb_str_05', 'pdb_str_06', 'pdb_str_07', 'pdb_str_08',
+ 'pdb_str_09', 'pdb_str_10', 'pdb_str_11']
+
+#pdb_list = [pdb_str_02, pdb_str_03]
+#pdb_list_name = ['pdb_str_02', 'pdb_str_03']
+
+def run():
+ for idealize in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #print 'pdb_string:', str_name, 'idealize =', idealize
+ exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+
+if (__name__ == "__main__"):
+ t0 = time.time()
+ run()
+ #run(sys.argv[1:])
+ print "OK. Time:", round(time.time()-t0, 2), "seconds"
Copied: trunk/mmtbx/hydrogens/tst_riding_fd_2.py (from rev 25754, trunk/mmtbx/hydrogens/tst_fd_2.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_2.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_2.py 2016-11-19 00:18:40 UTC (rev 25756)
@@ -0,0 +1,576 @@
+from __future__ import division
+import time
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import modify_gradients
+
+
+#-----------------------------------------------------------------------------
+# This finite difference test checks transformation of riding H gradients
+# for all amino acids
+#-----------------------------------------------------------------------------
+
+#
+def exercise(pdb_str, eps,idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+ xray_structure = processed_pdb_file.xray_structure()
+ sites_cart = xray_structure.sites_cart()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
+ #sites_cart = pdb_hierarchy.atoms().extract_xyz()
+ sites_cart = xray_structure.sites_cart()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ pdb_hierarchy_ = pdb_hierarchy.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ pdb_hierarchy_.atoms().set_xyz(sites_cart_)
+ # after shift, recalculate H position
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy_)
+ #sites_cart_ = xray_structure_.sites_cart()
+ #riding_h_manager.idealize_hydrogens_sc_inplace(
+ # sites_cart=sites_cart_)
+ sites_cart_ = pdb_hierarchy_.atoms().extract_xyz()
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+
+#Alanine
+pdb_str_01 = """
+CRYST1 11.863 12.347 12.550 90.00 90.00 90.00 P 1
+SCALE1 0.084296 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.080991 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.079681 0.00000
+ATOM 1 N ALA B 84 7.017 5.016 7.287 1.00 10.00 N
+ATOM 2 CA ALA B 84 5.784 5.706 7.445 1.00 10.00 C
+ATOM 3 C ALA B 84 5.129 5.694 6.011 1.00 10.00 C
+ATOM 4 O ALA B 84 5.714 5.812 4.900 1.00 10.00 O
+ATOM 5 CB ALA B 84 6.261 7.426 7.444 1.00 10.00 C
+ATOM 6 HA ALA B 84 5.269 5.787 7.982 1.00 10.00 H
+ATOM 7 HB1 ALA B 84 5.337 8.016 7.304 1.00 10.00 H
+ATOM 8 HB2 ALA B 84 6.549 7.313 8.459 1.00 10.00 H
+ATOM 9 HB3 ALA B 84 6.616 7.667 6.795 1.00 10.00 H
+"""
+# Arginine:
+pdb_str_02 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 1 N ARG A 50 6.642 11.452 6.691 1.00 10.00 N
+ATOM 2 CA ARG A 50 7.570 10.240 6.682 1.00 10.00 C
+ATOM 3 C ARG A 50 9.005 10.280 6.707 1.00 10.00 C
+ATOM 4 O ARG A 50 9.602 11.108 6.810 1.00 10.00 O
+ATOM 5 CB ARG A 50 6.962 9.371 5.075 1.00 10.00 C
+ATOM 6 CG ARG A 50 5.382 9.275 4.806 1.00 10.00 C
+ATOM 7 CD ARG A 50 4.830 7.928 6.084 1.00 10.00 C
+ATOM 8 NE ARG A 50 5.434 6.841 5.374 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.450 6.116 6.035 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.392 6.694 6.803 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.898 5.026 5.305 1.00 10.00 N
+ATOM 12 HA ARG A 50 6.817 9.405 7.203 1.00 10.00 H
+ATOM 13 HB2 ARG A 50 7.451 9.961 4.409 1.00 10.00 H
+ATOM 14 HB3 ARG A 50 7.391 8.588 5.297 1.00 10.00 H
+ATOM 15 HG2 ARG A 50 5.016 10.089 5.174 1.00 10.00 H
+ATOM 16 HG3 ARG A 50 5.385 9.031 4.141 1.00 10.00 H
+ATOM 17 HD2 ARG A 50 5.268 8.147 6.643 1.00 10.00 H
+ATOM 18 HD3 ARG A 50 3.909 8.226 5.899 1.00 10.00 H
+ATOM 19 HE ARG A 50 5.208 6.478 4.962 1.00 10.00 H
+ATOM 20 HH11 ARG A 50 6.970 7.301 7.302 1.00 10.00 H
+ATOM 21 HH12 ARG A 50 7.866 6.356 7.069 1.00 10.00 H
+ATOM 22 HH21 ARG A 50 6.604 4.626 5.005 1.00 10.00 H
+ATOM 23 HH22 ARG A 50 7.522 4.396 5.734 1.00 10.00 H
+"""
+#Asparagine
+pdb_str_03 = """
+CRYST1 13.889 13.738 13.126 90.00 90.00 90.00 P 1
+SCALE1 0.071999 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.072791 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076185 0.00000
+ATOM 1 N ASN A 35 5.108 6.598 6.668 1.00 10.00 N
+ATOM 2 CA ASN A 35 6.071 7.634 7.159 1.00 10.00 C
+ATOM 3 C ASN A 35 6.113 8.702 6.163 1.00 10.00 C
+ATOM 4 O ASN A 35 5.556 8.558 4.817 1.00 10.00 O
+ATOM 5 CB ASN A 35 7.439 6.520 6.538 1.00 10.00 C
+ATOM 6 CG ASN A 35 7.597 5.465 7.487 1.00 10.00 C
+ATOM 7 OD1 ASN A 35 6.743 4.980 8.032 1.00 10.00 O
+ATOM 8 ND2 ASN A 35 8.841 4.827 7.318 1.00 10.00 N
+ATOM 9 HA ASN A 35 6.387 7.612 7.973 1.00 10.00 H
+ATOM 10 HB2 ASN A 35 7.452 6.464 5.548 1.00 10.00 H
+ATOM 11 HB3 ASN A 35 8.153 7.444 6.485 1.00 10.00 H
+ATOM 12 HD21 ASN A 35 9.022 4.464 7.804 1.00 10.00 H
+ATOM 13 HD22 ASN A 35 9.521 5.284 7.192 1.00 10.00 H
+"""
+# Aspartic Acid
+pdb_str_04 = """
+CRYST1 14.178 13.514 11.978 90.00 90.00 90.00 P 1
+SCALE1 0.070532 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.073997 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083486 0.00000
+ATOM 1 N ASP A 121 4.844 6.380 4.967 1.00 10.00 N
+ATOM 2 CA ASP A 121 6.237 6.469 5.750 1.00 10.00 C
+ATOM 3 C ASP A 121 5.959 7.525 7.138 1.00 10.00 C
+ATOM 4 O ASP A 121 5.683 8.452 6.797 1.00 10.00 O
+ATOM 5 CB ASP A 121 7.582 6.234 5.277 1.00 10.00 C
+ATOM 6 CG ASP A 121 8.550 6.163 6.136 1.00 10.00 C
+ATOM 7 OD1 ASP A 121 9.035 5.174 6.337 1.00 10.00 O
+ATOM 8 OD2 ASP A 121 9.115 7.253 6.644 1.00 10.00 O
+ATOM 9 HA ASP A 121 6.173 5.442 6.266 1.00 10.00 H
+ATOM 10 HB2 ASP A 121 7.509 5.748 4.630 1.00 10.00 H
+ATOM 11 HB3 ASP A 121 7.714 7.340 4.588 1.00 10.00 H
+"""
+# Cysteine
+pdb_str_05 = """
+CRYST1 12.081 11.399 14.639 90.00 90.00 90.00 P 1
+SCALE1 0.082775 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.087727 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.068311 0.00000
+ATOM 1 N CYS A 96 4.823 5.221 7.409 1.00 10.00 N
+ATOM 2 CA CYS A 96 6.273 5.028 7.456 1.00 10.00 C
+ATOM 3 C CYS A 96 6.932 5.026 9.008 1.00 10.00 C
+ATOM 4 O CYS A 96 7.163 5.942 9.454 1.00 10.00 O
+ATOM 5 CB CYS A 96 6.905 6.223 6.813 1.00 10.00 C
+ATOM 6 SG CYS A 96 6.265 6.407 5.142 1.00 10.00 S
+ATOM 7 HA CYS A 96 6.714 4.104 6.960 1.00 10.00 H
+ATOM 8 HB2 CYS A 96 6.849 7.034 6.999 1.00 10.00 H
+ATOM 9 HB3 CYS A 96 8.130 6.106 6.575 1.00 10.00 H
+ATOM 10 HG CYS A 96 6.882 7.238 4.630 1.00 10.00 H
+"""
+# Glutamine
+pdb_str_06 = """
+CRYST1 14.547 13.375 15.374 90.00 90.00 90.00 P 1
+SCALE1 0.068743 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.074766 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.065045 0.00000
+ATOM 1 N GLN A 70 6.344 7.129 5.035 1.00 10.00 N
+ATOM 2 CA GLN A 70 6.644 6.208 6.336 1.00 10.00 C
+ATOM 3 C GLN A 70 5.352 6.178 6.970 1.00 10.00 C
+ATOM 4 O GLN A 70 5.126 4.898 7.373 1.00 10.00 O
+ATOM 5 CB GLN A 70 7.877 6.998 7.230 1.00 10.00 C
+ATOM 6 CG GLN A 70 7.974 6.681 8.575 1.00 10.00 C
+ATOM 7 CD GLN A 70 9.249 7.237 9.063 1.00 10.00 C
+ATOM 8 OE1 GLN A 70 9.559 8.209 8.935 1.00 10.00 O
+ATOM 9 NE2 GLN A 70 9.506 6.762 10.402 1.00 10.00 N
+ATOM 10 HA GLN A 70 7.249 5.584 6.195 1.00 10.00 H
+ATOM 11 HB2 GLN A 70 8.663 7.126 6.476 1.00 10.00 H
+ATOM 12 HB3 GLN A 70 7.331 8.179 7.116 1.00 10.00 H
+ATOM 13 HG2 GLN A 70 7.234 6.385 8.986 1.00 10.00 H
+ATOM 14 HG3 GLN A 70 8.549 5.809 8.279 1.00 10.00 H
+ATOM 15 HE21 GLN A 70 9.114 6.119 10.657 1.00 10.00 H
+ATOM 16 HE22 GLN A 70 10.235 7.102 10.671 1.00 10.00 H
+"""
+# Glutamic Acid
+pdb_str_07 = """
+CRYST1 15.127 14.767 13.161 90.00 90.00 90.00 P 1
+SCALE1 0.066107 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.067719 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.075982 0.00000
+ATOM 1 N GLU A 24 9.022 8.042 4.852 1.00 10.00 N
+ATOM 2 CA GLU A 24 8.611 8.384 6.596 1.00 10.00 C
+ATOM 3 C GLU A 24 9.851 8.805 7.028 1.00 10.00 C
+ATOM 4 O GLU A 24 10.208 9.672 7.827 1.00 10.00 O
+ATOM 5 CB GLU A 24 8.163 7.285 7.084 1.00 10.00 C
+ATOM 6 CG GLU A 24 6.610 6.769 6.720 1.00 10.00 C
+ATOM 7 CD GLU A 24 6.069 5.633 7.216 1.00 10.00 C
+ATOM 8 OE1 GLU A 24 5.180 5.275 7.007 1.00 10.00 O
+ATOM 9 OE2 GLU A 24 6.826 5.071 8.182 1.00 10.00 O
+ATOM 10 HA GLU A 24 8.239 8.942 6.618 1.00 10.00 H
+ATOM 11 HB2 GLU A 24 8.834 6.577 7.107 1.00 10.00 H
+ATOM 12 HB3 GLU A 24 8.074 7.246 7.880 1.00 10.00 H
+ATOM 13 HG2 GLU A 24 5.925 7.518 6.600 1.00 10.00 H
+ATOM 14 HG3 GLU A 24 6.944 6.683 5.520 1.00 10.00 H
+"""
+# Glycine
+pdb_str_08 = """
+CRYST1 13.147 11.167 10.709 90.00 90.00 90.00 P 1
+SCALE1 0.076063 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.089550 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.093379 0.00000
+ATOM 1 N GLY B 93 8.304 6.036 5.544 1.00 10.00 N
+ATOM 2 CA GLY B 93 7.319 4.905 5.595 1.00 10.00 C
+ATOM 3 C GLY B 93 5.882 5.364 4.847 1.00 10.00 C
+ATOM 4 O GLY B 93 5.143 5.776 5.738 1.00 10.00 O
+ATOM 5 HA2 GLY B 93 7.870 4.339 5.372 1.00 10.00 H
+ATOM 6 HA3 GLY B 93 7.123 4.618 6.529 1.00 10.00 H
+"""
+
+# Histidine
+pdb_str_09 = """
+CRYST1 12.286 14.857 15.512 90.00 90.00 90.00 P 1
+SCALE1 0.081393 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.067308 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.064466 0.00000
+ATOM 1 N HIS A 34 7.292 7.714 9.065 1.00 10.00 N
+ATOM 2 CA HIS A 34 6.363 8.592 8.255 1.00 10.00 C
+ATOM 3 C HIS A 34 6.024 9.792 9.401 1.00 10.00 C
+ATOM 4 O HIS A 34 6.246 9.507 10.701 1.00 10.00 O
+ATOM 5 CB HIS A 34 4.951 8.082 8.105 1.00 10.00 C
+ATOM 6 CG HIS A 34 5.323 6.839 7.073 1.00 10.00 C
+ATOM 7 ND1 HIS A 34 5.021 7.108 5.763 1.00 10.00 N
+ATOM 8 CD2 HIS A 34 5.317 5.623 7.295 1.00 10.00 C
+ATOM 9 CE1 HIS A 34 5.333 5.771 5.081 1.00 10.00 C
+ATOM 10 NE2 HIS A 34 5.601 4.927 6.077 1.00 10.00 N
+ATOM 11 HA HIS A 34 6.539 9.000 7.667 1.00 10.00 H
+ATOM 12 HB2 HIS A 34 4.722 7.760 8.940 1.00 10.00 H
+ATOM 13 HB3 HIS A 34 4.532 8.544 7.770 1.00 10.00 H
+ATOM 14 HD2 HIS A 34 5.433 5.063 7.987 1.00 10.00 H
+ATOM 15 HE1 HIS A 34 5.162 5.891 3.986 1.00 10.00 H
+"""
+# Isoleucine
+pdb_str_10 = """
+CRYST1 14.040 13.236 13.685 90.00 90.00 90.00 P 1
+SCALE1 0.071225 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075552 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.073073 0.00000
+ATOM 1 N ILE B 81 6.774 6.654 8.528 1.00 10.00 N
+ATOM 2 CA ILE B 81 6.248 6.915 7.265 1.00 10.00 C
+ATOM 3 C ILE B 81 5.064 5.915 6.912 1.00 10.00 C
+ATOM 4 O ILE B 81 4.891 4.882 7.591 1.00 10.00 O
+ATOM 5 CB ILE B 81 7.374 7.060 6.201 1.00 10.00 C
+ATOM 6 CG1 ILE B 81 7.928 5.644 6.013 1.00 10.00 C
+ATOM 7 CG2 ILE B 81 8.450 8.146 6.766 1.00 10.00 C
+ATOM 8 CD1 ILE B 81 9.014 5.797 4.814 1.00 10.00 C
+ATOM 9 HA ILE B 81 5.805 7.933 7.605 1.00 10.00 H
+ATOM 10 HB ILE B 81 6.968 7.172 5.320 1.00 10.00 H
+ATOM 11 HG12 ILE B 81 8.488 5.662 7.117 1.00 10.00 H
+ATOM 12 HG13 ILE B 81 7.287 4.921 5.901 1.00 10.00 H
+ATOM 13 HG21 ILE B 81 8.841 8.468 5.740 1.00 10.00 H
+ATOM 14 HG22 ILE B 81 7.916 9.169 6.877 1.00 10.00 H
+ATOM 15 HG23 ILE B 81 8.650 8.115 7.619 1.00 10.00 H
+ATOM 16 HD11 ILE B 81 9.263 4.839 4.994 1.00 10.00 H
+ATOM 17 HD12 ILE B 81 8.679 5.953 4.216 1.00 10.00 H
+ATOM 18 HD13 ILE B 81 9.551 6.406 5.137 1.00 10.00 H
+"""
+
+# Leucine
+pdb_str_11 = """
+CRYST1 13.550 15.138 12.702 90.00 90.00 90.00 P 1
+SCALE1 0.073801 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.066059 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.078728 0.00000
+ATOM 1 N LEU B 94 6.273 6.593 4.935 1.00 10.00 N
+ATOM 2 CA LEU B 94 7.641 7.224 5.628 1.00 10.00 C
+ATOM 3 C LEU B 94 8.422 6.084 6.113 1.00 10.00 C
+ATOM 4 O LEU B 94 8.638 5.157 5.672 1.00 10.00 O
+ATOM 5 CB LEU B 94 7.066 8.117 6.861 1.00 10.00 C
+ATOM 6 CG LEU B 94 6.206 9.526 6.450 1.00 10.00 C
+ATOM 7 CD1 LEU B 94 5.918 10.237 7.727 1.00 10.00 C
+ATOM 8 CD2 LEU B 94 4.891 9.251 5.577 1.00 10.00 C
+ATOM 9 HA LEU B 94 7.928 7.858 4.837 1.00 10.00 H
+ATOM 10 HB2 LEU B 94 6.600 7.347 7.185 1.00 10.00 H
+ATOM 11 HB3 LEU B 94 7.833 8.235 7.219 1.00 10.00 H
+ATOM 12 HG LEU B 94 7.048 9.715 5.954 1.00 10.00 H
+ATOM 13 HD11 LEU B 94 5.564 11.132 7.460 1.00 10.00 H
+ATOM 14 HD12 LEU B 94 5.689 9.764 8.196 1.00 10.00 H
+ATOM 15 HD13 LEU B 94 6.901 10.482 8.316 1.00 10.00 H
+ATOM 16 HD21 LEU B 94 4.622 9.894 5.701 1.00 10.00 H
+ATOM 17 HD22 LEU B 94 5.223 8.782 4.700 1.00 10.00 H
+ATOM 18 HD23 LEU B 94 4.327 8.453 6.346 1.00 10.00 H
+"""
+
+# Lysine
+pdb_str_12 = """
+CRYST1 14.470 17.497 11.416 90.00 90.00 90.00 P 1
+SCALE1 0.069109 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.057153 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.087596 0.00000
+ATOM 1 N LYS A 76 4.981 10.159 4.860 1.00 10.00 N
+ATOM 2 CA LYS A 76 5.876 10.071 6.050 1.00 10.00 C
+ATOM 3 C LYS A 76 6.304 11.829 6.325 1.00 10.00 C
+ATOM 4 O LYS A 76 5.161 12.466 6.576 1.00 10.00 O
+ATOM 5 CB LYS A 76 7.337 9.388 5.906 1.00 10.00 C
+ATOM 6 CG LYS A 76 7.118 7.831 5.788 1.00 10.00 C
+ATOM 7 CD LYS A 76 8.453 7.428 5.736 1.00 10.00 C
+ATOM 8 CE LYS A 76 8.134 5.835 5.433 1.00 10.00 C
+ATOM 9 NZ LYS A 76 9.426 4.919 5.392 1.00 10.00 N
+ATOM 10 HA LYS A 76 5.397 10.002 6.803 1.00 10.00 H
+ATOM 11 HB2 LYS A 76 7.655 9.920 5.112 1.00 10.00 H
+ATOM 12 HB3 LYS A 76 7.624 9.427 6.543 1.00 10.00 H
+ATOM 13 HG2 LYS A 76 6.592 7.548 6.676 1.00 10.00 H
+ATOM 14 HG3 LYS A 76 6.469 7.536 5.090 1.00 10.00 H
+ATOM 15 HD2 LYS A 76 8.768 7.405 4.630 1.00 10.00 H
+ATOM 16 HD3 LYS A 76 9.025 7.220 6.546 1.00 10.00 H
+ATOM 17 HE2 LYS A 76 7.580 5.564 6.304 1.00 10.00 H
+ATOM 18 HE3 LYS A 76 7.440 5.632 4.831 1.00 10.00 H
+ATOM 19 HZ1 LYS A 76 9.379 4.186 5.442 1.00 10.00 H
+ATOM 20 HZ2 LYS A 76 9.725 5.254 4.549 1.00 10.00 H
+ATOM 21 HZ3 LYS A 76 9.965 5.006 6.093 1.00 10.00 H
+"""
+
+# Methionine
+pdb_str_13 = """
+CRYST1 13.775 12.351 15.645 90.00 90.00 90.00 P 1
+SCALE1 0.072595 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.080965 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.063918 0.00000
+ATOM 1 N MET B 37 7.603 5.375 6.446 1.00 10.00 N
+ATOM 2 CA MET B 37 6.723 6.349 6.607 1.00 10.00 C
+ATOM 3 C MET B 37 6.323 7.146 5.241 1.00 10.00 C
+ATOM 4 O MET B 37 5.062 7.131 4.970 1.00 10.00 O
+ATOM 5 CB MET B 37 6.932 7.378 7.483 1.00 10.00 C
+ATOM 6 CG MET B 37 7.258 6.900 9.095 1.00 10.00 C
+ATOM 7 SD MET B 37 8.785 5.488 9.096 1.00 10.00 S
+ATOM 8 CE MET B 37 8.590 5.149 10.517 1.00 10.00 C
+ATOM 9 HA MET B 37 5.885 6.031 6.839 1.00 10.00 H
+ATOM 10 HB2 MET B 37 7.862 7.670 7.351 1.00 10.00 H
+ATOM 11 HB3 MET B 37 6.364 7.936 7.854 1.00 10.00 H
+ATOM 12 HG2 MET B 37 7.509 7.571 9.764 1.00 10.00 H
+ATOM 13 HG3 MET B 37 6.614 6.240 9.246 1.00 10.00 H
+ATOM 14 HE1 MET B 37 9.624 4.355 10.601 1.00 10.00 H
+ATOM 15 HE2 MET B 37 9.070 5.811 11.280 1.00 10.00 H
+ATOM 16 HE3 MET B 37 8.003 4.499 11.109 1.00 10.00 H
+"""
+
+# Phenylanaline
+pdb_str_14 = """
+CRYST1 11.802 16.578 13.976 90.00 90.00 90.00 P 1
+SCALE1 0.084731 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060321 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.071551 0.00000
+ATOM 1 N PHE A 63 6.412 9.770 7.572 1.00 10.00 N
+ATOM 2 CA PHE A 63 6.289 9.157 6.198 1.00 10.00 C
+ATOM 3 C PHE A 63 6.292 10.223 5.110 1.00 10.00 C
+ATOM 4 O PHE A 63 6.451 11.437 5.241 1.00 10.00 O
+ATOM 5 CB PHE A 63 5.580 8.319 6.063 1.00 10.00 C
+ATOM 6 CG PHE A 63 5.743 6.958 6.849 1.00 10.00 C
+ATOM 7 CD1 PHE A 63 6.569 6.117 6.768 1.00 10.00 C
+ATOM 8 CD2 PHE A 63 5.050 7.055 8.045 1.00 10.00 C
+ATOM 9 CE1 PHE A 63 6.802 5.054 7.620 1.00 10.00 C
+ATOM 10 CE2 PHE A 63 5.331 6.153 8.840 1.00 10.00 C
+ATOM 11 CZ PHE A 63 6.270 5.103 8.840 1.00 10.00 C
+ATOM 12 HA PHE A 63 7.224 9.004 5.959 1.00 10.00 H
+ATOM 13 HB2 PHE A 63 4.619 8.277 5.936 1.00 10.00 H
+ATOM 14 HB3 PHE A 63 5.713 7.612 5.105 1.00 10.00 H
+ATOM 15 HD1 PHE A 63 7.301 6.004 5.919 1.00 10.00 H
+ATOM 16 HD2 PHE A 63 4.436 7.641 8.314 1.00 10.00 H
+ATOM 17 HE1 PHE A 63 7.224 4.307 7.397 1.00 10.00 H
+ATOM 18 HE2 PHE A 63 4.727 6.172 9.862 1.00 10.00 H
+ATOM 19 HZ PHE A 63 6.045 4.444 9.418 1.00 10.00 H
+"""
+
+# Proline
+pdb_str_15 = """
+CRYST1 12.293 14.006 12.486 90.00 90.00 90.00 P 1
+SCALE1 0.081347 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.071398 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.080090 0.00000
+ATOM 1 N PRO A 4 4.920 7.325 6.411 1.00 10.00 N
+ATOM 2 CA PRO A 4 6.162 6.834 5.666 1.00 10.00 C
+ATOM 3 C PRO A 4 6.405 5.341 5.894 1.00 10.00 C
+ATOM 4 O PRO A 4 7.098 4.853 4.957 1.00 10.00 O
+ATOM 5 CB PRO A 4 7.380 7.894 6.618 1.00 10.00 C
+ATOM 6 CG PRO A 4 6.640 8.868 7.204 1.00 10.00 C
+ATOM 7 CD PRO A 4 5.415 8.476 7.560 1.00 10.00 C
+ATOM 8 HA PRO A 4 6.250 7.067 4.776 1.00 10.00 H
+ATOM 9 HB2 PRO A 4 7.921 7.337 7.346 1.00 10.00 H
+ATOM 10 HB3 PRO A 4 8.016 8.080 5.830 1.00 10.00 H
+ATOM 11 HG2 PRO A 4 7.167 9.579 7.723 1.00 10.00 H
+ATOM 12 HG3 PRO A 4 6.492 9.649 6.528 1.00 10.00 H
+ATOM 13 HD2 PRO A 4 5.306 8.082 8.255 1.00 10.00 H
+ATOM 14 HD3 PRO A 4 4.496 9.094 7.222 1.00 10.00 H
+"""
+
+# Serine
+pdb_str_16 = """
+CRYST1 12.893 12.708 12.721 90.00 90.00 90.00 P 1
+SCALE1 0.077561 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.078691 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.078610 0.00000
+ATOM 1 N SER A 73 5.347 5.750 5.075 1.00 10.00 N
+ATOM 2 CA SER A 73 5.894 5.594 6.421 1.00 10.00 C
+ATOM 3 C SER A 73 5.946 7.282 6.996 1.00 10.00 C
+ATOM 4 O SER A 73 5.026 7.627 7.452 1.00 10.00 O
+ATOM 5 CB SER A 73 7.501 5.019 6.235 1.00 10.00 C
+ATOM 6 OG SER A 73 8.063 4.929 7.844 1.00 10.00 O
+ATOM 7 HA SER A 73 5.300 5.295 7.021 1.00 10.00 H
+ATOM 8 HB2 SER A 73 7.399 4.067 6.115 1.00 10.00 H
+ATOM 9 HB3 SER A 73 8.072 5.776 5.734 1.00 10.00 H
+ATOM 10 HG SER A 73 8.499 4.647 7.768 1.00 10.00 H
+"""
+
+# Threonine
+pdb_str_17 = """
+CRYST1 11.909 12.199 14.459 90.00 90.00 90.00 P 1
+SCALE1 0.083970 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.081974 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.069161 0.00000
+ATOM 1 N THR A 68 6.967 7.035 7.598 1.00 10.00 N
+ATOM 2 CA THR A 68 5.580 6.835 7.409 1.00 10.00 C
+ATOM 3 C THR A 68 4.981 6.180 8.674 1.00 10.00 C
+ATOM 4 O THR A 68 6.079 5.829 9.469 1.00 10.00 O
+ATOM 5 CB THR A 68 5.071 6.452 6.355 1.00 10.00 C
+ATOM 6 OG1 THR A 68 5.819 5.087 6.249 1.00 10.00 O
+ATOM 7 CG2 THR A 68 5.178 7.219 5.045 1.00 10.00 C
+ATOM 8 HA THR A 68 4.978 7.946 7.649 1.00 10.00 H
+ATOM 9 HB THR A 68 3.853 6.156 6.182 1.00 10.00 H
+ATOM 10 HG1 THR A 68 6.272 5.006 6.437 1.00 10.00 H
+ATOM 11 HG21 THR A 68 5.183 6.722 4.241 1.00 10.00 H
+ATOM 12 HG22 THR A 68 4.943 8.119 5.225 1.00 10.00 H
+ATOM 13 HG23 THR A 68 6.305 7.117 4.778 1.00 10.00 H
+"""
+
+# Triptophane
+pdb_str_18 = """
+CRYST1 12.502 12.982 18.312 90.00 90.00 90.00 P 1
+SCALE1 0.079987 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.077030 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.054609 0.00000
+ATOM 1 N TRP A 49 7.019 6.036 6.855 1.00 10.00 N
+ATOM 2 CA TRP A 49 6.009 5.654 7.261 1.00 10.00 C
+ATOM 3 C TRP A 49 5.132 5.145 5.877 1.00 10.00 C
+ATOM 4 O TRP A 49 5.267 5.983 5.027 1.00 10.00 O
+ATOM 5 CB TRP A 49 5.058 6.563 8.316 1.00 10.00 C
+ATOM 6 CG TRP A 49 6.065 6.967 9.207 1.00 10.00 C
+ATOM 7 CD1 TRP A 49 6.863 7.994 9.455 1.00 10.00 C
+ATOM 8 CD2 TRP A 49 5.959 6.505 10.743 1.00 10.00 C
+ATOM 9 NE1 TRP A 49 7.435 8.004 10.831 1.00 10.00 N
+ATOM 10 CE2 TRP A 49 6.803 7.200 11.335 1.00 10.00 C
+ATOM 11 CE3 TRP A 49 5.119 5.187 11.318 1.00 10.00 C
+ATOM 12 CZ2 TRP A 49 7.129 6.620 12.976 1.00 10.00 C
+ATOM 13 CZ3 TRP A 49 5.299 5.155 12.457 1.00 10.00 C
+ATOM 14 CH2 TRP A 49 6.374 5.658 13.211 1.00 10.00 C
+ATOM 15 HA TRP A 49 6.139 4.842 7.608 1.00 10.00 H
+ATOM 16 HB2 TRP A 49 5.070 7.319 7.481 1.00 10.00 H
+ATOM 17 HB3 TRP A 49 4.305 6.336 8.251 1.00 10.00 H
+ATOM 18 HD1 TRP A 49 7.226 8.582 8.796 1.00 10.00 H
+ATOM 19 HE1 TRP A 49 8.120 8.555 10.929 1.00 10.00 H
+ATOM 20 HE3 TRP A 49 4.311 5.074 10.564 1.00 10.00 H
+ATOM 21 HZ2 TRP A 49 7.806 7.092 13.214 1.00 10.00 H
+ATOM 22 HZ3 TRP A 49 4.914 4.129 12.933 1.00 10.00 H
+ATOM 23 HH2 TRP A 49 6.353 5.513 14.064 1.00 10.00 H
+"""
+
+# Tyrosine
+pdb_str_19 = """
+CRYST1 17.955 13.272 13.095 90.00 90.00 90.00 P 1
+SCALE1 0.055695 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075347 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076365 0.00000
+ATOM 1 N TYR A 139 10.057 7.968 5.049 1.00 10.00 N
+ATOM 2 CA TYR A 139 10.657 7.531 6.379 1.00 10.00 C
+ATOM 3 C TYR A 139 12.203 7.725 6.416 1.00 10.00 C
+ATOM 4 O TYR A 139 12.999 8.272 7.373 1.00 10.00 O
+ATOM 5 CB TYR A 139 10.644 6.145 6.711 1.00 10.00 C
+ATOM 6 CG TYR A 139 9.159 5.899 6.690 1.00 10.00 C
+ATOM 7 CD1 TYR A 139 8.503 5.230 5.513 1.00 10.00 C
+ATOM 8 CD2 TYR A 139 8.317 6.046 8.121 1.00 10.00 C
+ATOM 9 CE1 TYR A 139 6.876 4.938 5.643 1.00 10.00 C
+ATOM 10 CE2 TYR A 139 7.209 5.706 8.077 1.00 10.00 C
+ATOM 11 CZ TYR A 139 6.420 5.365 6.855 1.00 10.00 C
+ATOM 12 OH TYR A 139 5.027 4.949 7.088 1.00 10.00 O
+ATOM 13 HA TYR A 139 10.303 8.174 6.785 1.00 10.00 H
+ATOM 14 HB2 TYR A 139 10.989 5.647 5.882 1.00 10.00 H
+ATOM 15 HB3 TYR A 139 10.828 5.883 7.586 1.00 10.00 H
+ATOM 16 HD1 TYR A 139 8.618 5.356 4.741 1.00 10.00 H
+ATOM 17 HD2 TYR A 139 8.841 6.121 8.546 1.00 10.00 H
+ATOM 18 HE1 TYR A 139 6.432 5.030 4.892 1.00 10.00 H
+ATOM 19 HE2 TYR A 139 6.780 5.619 9.066 1.00 10.00 H
+ATOM 20 HH TYR A 139 4.693 5.141 7.840 1.00 10.00 H
+"""
+
+# Valine
+pdb_str_20 = """
+CRYST1 12.396 13.122 13.130 90.00 90.00 90.00 P 1
+SCALE1 0.080671 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.076208 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076161 0.00000
+ATOM 1 N VAL B 78 4.820 5.520 7.634 1.00 10.00 N
+ATOM 2 CA VAL B 78 6.105 5.869 7.138 1.00 10.00 C
+ATOM 3 C VAL B 78 6.717 7.176 8.084 1.00 10.00 C
+ATOM 4 O VAL B 78 5.750 8.012 8.022 1.00 10.00 O
+ATOM 5 CB VAL B 78 6.029 6.374 5.701 1.00 10.00 C
+ATOM 6 CG1 VAL B 78 5.673 4.961 4.874 1.00 10.00 C
+ATOM 7 CG2 VAL B 78 7.349 6.810 5.233 1.00 10.00 C
+ATOM 8 HA VAL B 78 7.125 5.144 7.411 1.00 10.00 H
+ATOM 9 HB VAL B 78 5.404 6.962 5.498 1.00 10.00 H
+ATOM 10 HG11 VAL B 78 5.583 5.210 4.024 1.00 10.00 H
+ATOM 11 HG12 VAL B 78 6.062 4.120 5.126 1.00 10.00 H
+ATOM 12 HG13 VAL B 78 4.907 4.924 5.317 1.00 10.00 H
+ATOM 13 HG21 VAL B 78 7.299 7.038 4.409 1.00 10.00 H
+ATOM 14 HG22 VAL B 78 7.542 7.634 5.823 1.00 10.00 H
+ATOM 15 HG23 VAL B 78 7.889 5.963 5.346 1.00 10.00 H
+"""
+
+pdb_list = [pdb_str_01, pdb_str_02, pdb_str_03, pdb_str_04, pdb_str_05,
+ pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09, pdb_str_10, pdb_str_11,
+ pdb_str_12, pdb_str_13, pdb_str_14, pdb_str_15, pdb_str_16, pdb_str_17,
+ pdb_str_18, pdb_str_19, pdb_str_20]
+#
+pdb_list_name = ['pdb_str_01', 'pdb_str_02', 'pdb_str_03', 'pdb_str_04', 'pdb_str_05',
+ 'pdb_str_06', 'pdb_str_07', 'pdb_str_08', 'pdb_str_09', 'pdb_str_10', 'pdb_str_11',
+ 'pdb_str_12', 'pdb_str_13', 'pdb_str_14', 'pdb_str_15', 'pdb_str_16', 'pdb_str_17',
+ 'pdb_str_18', 'pdb_str_19', 'pdb_str_20']
+
+#pdb_list = [pdb_str_02]
+#pdb_list_name = ['pdb_str_02']
+
+def run():
+ for idealize in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #print 'pdb_string:', str_name, 'idealize =', idealize
+ exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+
+
+if (__name__ == "__main__"):
+ t0 = time.time()
+ run()
+ #run(sys.argv[1:])
+ print "OK. Time:", round(time.time()-t0, 2), "seconds"
Copied: trunk/mmtbx/hydrogens/tst_riding_fd_3.py (from rev 25754, trunk/mmtbx/hydrogens/tst_fd_3.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_riding_fd_3.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_riding_fd_3.py 2016-11-19 00:18:40 UTC (rev 25756)
@@ -0,0 +1,418 @@
+from __future__ import division
+import time
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import modify_gradients
+
+def exercise(pdb_str, eps, idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+ xray_structure = processed_pdb_file.xray_structure()
+ sites_cart = xray_structure.sites_cart()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
+ #sites_cart = pdb_hierarchy.atoms().extract_xyz()
+ sites_cart = xray_structure.sites_cart()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart, compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ # after shift, recalculate H position
+ riding_h_manager.idealize_hydrogens_sc_inplace(
+ sites_cart=sites_cart_)
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+ #
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+pdb_str = """
+CRYST1 30.000 30.000 30.000 90.00 90.00 90.00 P 1
+SCALE1 0.033333 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.033333 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.033333 0.00000
+ATOM 1 N ARG A 2 3.050 19.481 25.856 1.00 0.00 N
+ATOM 2 CA ARG A 2 3.759 20.265 24.852 1.00 0.00 C
+ATOM 3 C ARG A 2 5.253 20.304 25.155 1.00 0.00 C
+ATOM 4 O ARG A 2 5.659 20.516 26.298 1.00 0.00 O
+ATOM 5 CB ARG A 2 3.197 21.687 24.787 1.00 0.00 C
+ATOM 6 CG ARG A 2 3.800 22.542 23.684 1.00 0.00 C
+ATOM 7 CD ARG A 2 3.128 23.904 23.607 1.00 0.00 C
+ATOM 8 NE ARG A 2 3.721 24.751 22.576 1.00 0.00 N
+ATOM 9 CZ ARG A 2 3.311 25.983 22.290 1.00 0.00 C
+ATOM 10 NH1 ARG A 2 2.301 26.525 22.957 1.00 0.00 N1+
+ATOM 11 NH2 ARG A 2 3.914 26.676 21.334 1.00 0.00 N
+ATOM 12 HA ARG A 2 3.638 19.852 23.983 1.00 0.00 H
+ATOM 13 HB2 ARG A 2 2.240 21.637 24.633 1.00 0.00 H
+ATOM 14 HB3 ARG A 2 3.370 22.129 25.633 1.00 0.00 H
+ATOM 15 HG2 ARG A 2 4.743 22.680 23.864 1.00 0.00 H
+ATOM 16 HG3 ARG A 2 3.682 22.096 22.831 1.00 0.00 H
+ATOM 17 HD2 ARG A 2 2.189 23.783 23.396 1.00 0.00 H
+ATOM 18 HD3 ARG A 2 3.224 24.355 24.460 1.00 0.00 H
+ATOM 19 HE ARG A 2 4.380 24.432 22.124 1.00 0.00 H
+ATOM 20 HH11 ARG A 2 1.905 26.082 23.579 1.00 0.00 H
+ATOM 21 HH12 ARG A 2 2.041 27.322 22.767 1.00 0.00 H
+ATOM 22 HH21 ARG A 2 4.569 26.329 20.898 1.00 0.00 H
+ATOM 23 HH22 ARG A 2 3.649 27.473 21.149 1.00 0.00 H
+ATOM 24 N HIS A 3 6.067 20.098 24.123 1.00 0.00 N
+ATOM 25 CA HIS A 3 7.516 20.107 24.260 1.00 0.00 C
+ATOM 26 C HIS A 3 8.133 20.732 23.018 1.00 0.00 C
+ATOM 27 O HIS A 3 7.638 20.536 21.904 1.00 0.00 O
+ATOM 28 CB HIS A 3 8.069 18.691 24.464 1.00 0.00 C
+ATOM 29 CG HIS A 3 7.630 18.050 25.743 1.00 0.00 C
+ATOM 30 ND1 HIS A 3 8.154 18.399 26.969 1.00 0.00 N
+ATOM 31 CD2 HIS A 3 6.716 17.080 25.988 1.00 0.00 C
+ATOM 32 CE1 HIS A 3 7.582 17.674 27.913 1.00 0.00 C
+ATOM 33 NE2 HIS A 3 6.706 16.865 27.344 1.00 0.00 N
+ATOM 34 H HIS A 3 5.797 19.948 23.320 1.00 0.00 H
+ATOM 35 HA HIS A 3 7.764 20.646 25.027 1.00 0.00 H
+ATOM 36 HB2 HIS A 3 7.768 18.129 23.732 1.00 0.00 H
+ATOM 37 HB3 HIS A 3 9.038 18.731 24.470 1.00 0.00 H
+ATOM 38 HD2 HIS A 3 6.194 16.642 25.355 1.00 0.00 H
+ATOM 39 HE1 HIS A 3 7.765 17.723 28.824 1.00 0.00 H
+ATOM 40 N LYS A 4 9.213 21.483 23.217 1.00 0.00 N
+ATOM 41 CA LYS A 4 9.902 22.139 22.116 1.00 0.00 C
+ATOM 42 C LYS A 4 11.340 22.409 22.530 1.00 0.00 C
+ATOM 43 O LYS A 4 11.602 22.774 23.678 1.00 0.00 O
+ATOM 44 CB LYS A 4 9.205 23.447 21.722 1.00 0.00 C
+ATOM 45 CG LYS A 4 9.799 24.121 20.495 1.00 0.00 C
+ATOM 46 CD LYS A 4 9.008 25.357 20.102 1.00 0.00 C
+ATOM 47 CE LYS A 4 9.606 26.035 18.880 1.00 0.00 C
+ATOM 48 NZ LYS A 4 8.842 27.250 18.484 1.00 0.00 N1+
+ATOM 49 H LYS A 4 9.568 21.628 23.987 1.00 0.00 H
+ATOM 50 HA LYS A 4 9.909 21.551 21.344 1.00 0.00 H
+ATOM 51 HB2 LYS A 4 8.272 23.258 21.533 1.00 0.00 H
+ATOM 52 HB3 LYS A 4 9.270 24.070 22.462 1.00 0.00 H
+ATOM 53 HG2 LYS A 4 10.710 24.392 20.688 1.00 0.00 H
+ATOM 54 HG3 LYS A 4 9.784 23.500 19.750 1.00 0.00 H
+ATOM 55 HD2 LYS A 4 8.096 25.101 19.892 1.00 0.00 H
+ATOM 56 HD3 LYS A 4 9.018 25.991 20.837 1.00 0.00 H
+ATOM 57 HE2 LYS A 4 10.517 26.302 19.078 1.00 0.00 H
+ATOM 58 HE3 LYS A 4 9.594 25.415 18.135 1.00 0.00 H
+ATOM 59 HZ1 LYS A 4 9.215 27.624 17.768 1.00 0.00 H
+ATOM 60 HZ2 LYS A 4 8.001 27.031 18.292 1.00 0.00 H
+ATOM 61 HZ3 LYS A 4 8.842 27.840 19.151 1.00 0.00 H
+ATOM 62 N ASP A 5 12.263 22.226 21.588 1.00 0.00 N
+ATOM 63 CA ASP A 5 13.678 22.447 21.845 1.00 0.00 C
+ATOM 64 C ASP A 5 14.374 22.763 20.531 1.00 0.00 C
+ATOM 65 O ASP A 5 14.035 22.197 19.489 1.00 0.00 O
+ATOM 66 CB ASP A 5 14.324 21.224 22.508 1.00 0.00 C
+ATOM 67 CG ASP A 5 15.729 21.504 23.005 1.00 0.00 C
+ATOM 68 OD1 ASP A 5 16.213 22.640 22.819 1.00 0.00 O
+ATOM 69 OD2 ASP A 5 16.350 20.587 23.582 1.00 0.00 O1-
+ATOM 70 H ASP A 5 12.091 21.972 20.785 1.00 0.00 H
+ATOM 71 HA ASP A 5 13.783 23.208 22.438 1.00 0.00 H
+ATOM 72 HB2 ASP A 5 13.785 20.954 23.267 1.00 0.00 H
+ATOM 73 HB3 ASP A 5 14.372 20.503 21.861 1.00 0.00 H
+ATOM 74 N GLU A 6 15.346 23.668 20.589 1.00 0.00 N
+ATOM 75 CA GLU A 6 16.096 24.064 19.403 1.00 0.00 C
+ATOM 76 C GLU A 6 17.433 24.684 19.794 1.00 0.00 C
+ATOM 77 O GLU A 6 17.829 24.647 20.959 1.00 0.00 O
+ATOM 78 CB GLU A 6 15.283 25.051 18.561 1.00 0.00 C
+ATOM 79 CG GLU A 6 15.942 25.433 17.245 1.00 0.00 C
+ATOM 80 CD GLU A 6 15.076 26.352 16.405 1.00 0.00 C
+ATOM 81 OE1 GLU A 6 13.969 26.708 16.861 1.00 0.00 O
+ATOM 82 OE2 GLU A 6 15.503 26.718 15.290 1.00 0.00 O1-
+ATOM 83 H GLU A 6 15.592 24.070 21.309 1.00 0.00 H
+ATOM 84 HA GLU A 6 16.273 23.279 18.862 1.00 0.00 H
+ATOM 85 HB2 GLU A 6 14.424 24.651 18.356 1.00 0.00 H
+ATOM 86 HB3 GLU A 6 15.153 25.864 19.073 1.00 0.00 H
+ATOM 87 HG2 GLU A 6 16.776 25.893 17.428 1.00 0.00 H
+ATOM 88 HG3 GLU A 6 16.112 24.628 16.730 1.00 0.00 H
+TER
+ATOM 89 N SER B 2 10.846 4.462 24.534 1.00 0.00 N
+ATOM 90 CA SER B 2 11.518 5.747 24.391 1.00 0.00 C
+ATOM 91 C SER B 2 13.032 5.575 24.457 1.00 0.00 C
+ATOM 92 O SER B 2 13.532 4.595 25.009 1.00 0.00 O
+ATOM 93 CB SER B 2 11.052 6.719 25.477 1.00 0.00 C
+ATOM 94 OG SER B 2 11.455 6.279 26.762 1.00 0.00 O
+ATOM 95 HA SER B 2 11.295 6.129 23.528 1.00 0.00 H
+ATOM 96 HB2 SER B 2 11.440 7.591 25.307 1.00 0.00 H
+ATOM 97 HB3 SER B 2 10.084 6.777 25.453 1.00 0.00 H
+ATOM 98 HG SER B 2 11.125 5.523 26.924 1.00 0.00 H
+ATOM 99 N THR B 3 13.758 6.536 23.889 1.00 0.00 N
+ATOM 100 CA THR B 3 15.212 6.498 23.880 1.00 0.00 C
+ATOM 101 C THR B 3 15.741 7.920 23.778 1.00 0.00 C
+ATOM 102 O THR B 3 15.212 8.733 23.015 1.00 0.00 O
+ATOM 103 CB THR B 3 15.746 5.652 22.717 1.00 0.00 C
+ATOM 104 OG1 THR B 3 15.230 4.319 22.813 1.00 0.00 O
+ATOM 105 CG2 THR B 3 17.268 5.606 22.740 1.00 0.00 C
+ATOM 106 H THR B 3 13.425 7.226 23.499 1.00 0.00 H
+ATOM 107 HA THR B 3 15.530 6.111 24.711 1.00 0.00 H
+ATOM 108 HB THR B 3 15.465 6.046 21.876 1.00 0.00 H
+ATOM 109 HG1 THR B 3 15.519 3.852 22.178 1.00 0.00 H
+ATOM 110 HG21 THR B 3 17.587 4.933 22.118 1.00 0.00 H
+ATOM 111 HG22 THR B 3 17.633 6.467 22.484 1.00 0.00 H
+ATOM 112 HG23 THR B 3 17.580 5.381 23.631 1.00 0.00 H
+ATOM 113 N ASN B 4 16.785 8.212 24.552 1.00 0.00 N
+ATOM 114 CA ASN B 4 17.402 9.533 ...
[truncated message content] |
|
From: <dcl...@us...> - 2016-11-19 00:17:34
|
Revision: 25755
http://sourceforge.net/p/cctbx/code/25755
Author: dcliebschner
Date: 2016-11-19 00:17:32 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
rename again...
Removed Paths:
-------------
trunk/mmtbx/hydrogens/tst_fd_1.py
trunk/mmtbx/hydrogens/tst_fd_2.py
trunk/mmtbx/hydrogens/tst_fd_3.py
trunk/mmtbx/hydrogens/tst_fd_4.py
trunk/mmtbx/hydrogens/tst_fd_5.py
Deleted: trunk/mmtbx/hydrogens/tst_fd_1.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_1.py 2016-11-19 00:11:50 UTC (rev 25754)
+++ trunk/mmtbx/hydrogens/tst_fd_1.py 2016-11-19 00:17:32 UTC (rev 25755)
@@ -1,298 +0,0 @@
-from __future__ import division
-import time
-import sys
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-from mmtbx.hydrogens import riding
-from mmtbx.hydrogens import parameterization
-from mmtbx.hydrogens import modify_gradients
-from scitbx import matrix
-
-
-#-----------------------------------------------------------------------------
-# Finite difference test for modified gradients of riding H
-# Every type of H geometry is tested:
-# planar H
-# tetragonal H
-# two tetragonal H
-# X-H2 group (ARG etc)
-# propeller group
-# H with rotational degree of freedom (SER, etc)
-#-----------------------------------------------------------------------------
-
-def exercise(pdb_str, eps, idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- xray_structure = processed_pdb_file.xray_structure()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
- sites_cart = xray_structure.sites_cart()
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
-
- riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
-
- h_parameterization = riding_h_manager.h_parameterization
-
- ih = h_parameterization.keys()[0]
- rh_calc = parameterization.compute_H_position(
- ih = ih,
- sites_cart = sites_cart,
- hp = h_parameterization[ih])
- #print 'distance before changing H', \
- # (rh_calc - matrix.col(sites_cart[ih])).length()
-
- sites_cart[ih] = tuple(rh_calc)
- xray_structure.set_sites_cart(sites_cart)
- #rh_calc = parameterization.compute_H_position(
- # ih = ih,
- # sites_cart = sites_cart,
- # hp = h_parameterization[ih])
- #print 'distance H_calc - H_mod', \
- # (rh_calc - matrix.col(sites_cart[ih])).length()
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- # after shift, recalculate H position
- for ih in h_parameterization.keys():
- rh_calc = parameterization.compute_H_position(
- ih = ih,
- sites_cart = sites_cart_,
- hp = h_parameterization[ih])
- sites_cart_[ih] = tuple(rh_calc)
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
- #
- for g1, g2 in zip(g_analytical, g_fd):
- #print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- #print '*'*79
-
-# alg2a shaked
-pdb_str_00 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
-ATOM 8 CD2 TYR A 7 8.348 7.014 9.545 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
-ATOM 17 HD2 TYR A 7 9.064 7.637 10.081 1.00 15.00 H
-TER
-"""
-# alg2a ideal geometry
-pdb_str_01 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 CG TYR A 7 8.544 6.391 8.506 1.00 15.00 C
-ATOM 2 CD2 TYR A 7 8.334 7.144 9.654 1.00 15.00 C
-ATOM 3 CE2 TYR A 7 7.078 7.251 10.220 1.00 15.00 C
-ATOM 4 HD2 TYR A 7 9.052 7.584 10.049 1.00 15.00 H
-TER
-"""
-# alg2b shaked
-pdb_str_02 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
-ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
-ATOM 14 HB2 TYR A 7 9.943 5.616 7.588 1.00 15.00 H
-END
-"""
-# alg2b ideal geometry
-pdb_str_03 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 2 CA TYR A 7 9.962 6.614 6.452 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.920 6.991 7.935 1.00 15.00 C
-ATOM 6 CG TYR A 7 8.575 6.781 8.602 1.00 15.00 C
-ATOM 14 HB2 TYR A 7 10.571 6.452 8.411 1.00 15.00 H
-"""
-
-# alg3 shaked
-pdb_str_04 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 N TYR A 7 9.035 7.089 5.637 1.00 15.00 N
-ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
-ATOM 3 C TYR A 7 11.285 7.169 6.250 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
-ATOM 13 HA TYR A 7 9.831 8.340 7.271 1.00 15.00 H
-"""
-
-# alg3 ideal geometry
-pdb_str_05 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 N TYR A 7 8.981 7.170 5.658 1.00 15.00 N
-ATOM 2 CA TYR A 7 9.949 7.360 6.732 1.00 15.00 C
-ATOM 3 C TYR A 7 11.374 7.278 6.195 1.00 15.00 C
-ATOM 4 CB TYR A 7 9.740 6.317 7.832 1.00 15.00 C
-ATOM 5 HA TYR A 7 9.823 8.239 7.122 1.00 15.00 H
-"""
-
-# alg1a shaked
-pdb_str_06 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
-ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
-"""
-
-# alg1a idealized
-pdb_str_07 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 1 NE ARG A 50 5.543 6.877 5.312 1.00 10.00 N
-ATOM 2 CZ ARG A 50 6.559 6.257 5.905 1.00 10.00 C
-ATOM 3 NH1 ARG A 50 7.213 6.851 6.894 1.00 10.00 N
-ATOM 4 NH2 ARG A 50 6.920 5.044 5.510 1.00 10.00 N
-ATOM 6 HH12 ARG A 50 7.870 6.449 7.277 1.00 10.00 H
-"""
-
-#alg1b_flat shaked
-pdb_str_08 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.338 5.396 8.586 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
-ATOM 11 CZ TYR A 7 6.090 6.501 9.765 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.857 6.463 10.553 1.00 15.00 O
-ATOM 20 HH TYR A 7 5.208 7.016 11.256 1.00 15.00 H
-"""
-
-#alg1b_flat idealized
-pdb_str_09 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 CE1 TYR A 7 6.239 5.565 8.724 1.00 15.00 C
-ATOM 2 CE2 TYR A 7 7.170 7.259 10.131 1.00 15.00 C
-ATOM 3 CZ TYR A 7 6.130 6.416 9.803 1.00 15.00 C
-ATOM 4 OH TYR A 7 4.978 6.424 10.555 1.00 15.00 O
-ATOM 5 HH TYR A 7 5.045 6.985 11.177 1.00 15.00 H
-"""
-
-#alg1b shaked (HH out of plane)
-pdb_str_10 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.231 6.395 8.363 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.119 6.748 10.501 1.00 15.00 C
-ATOM 11 CZ TYR A 7 5.926 6.249 9.983 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.831 6.083 10.481 1.00 15.00 O
-ATOM 20 HH TYR A 7 4.708 6.641 11.301 1.00 15.00 H
-"""
-
-# alg1b idealized (HH out of plane)
-pdb_str_11 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.193 6.410 8.461 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.242 6.572 10.604 1.00 15.00 C
-ATOM 11 CZ TYR A 7 6.111 6.396 9.837 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.893 6.206 10.448 1.00 15.00 O
-ATOM 20 HH TYR A 7 4.878 6.603 11.188 1.00 15.00 H
-"""
-
-#alg1a shaked with both H atoms
-pdb_str_06_bla = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
-ATOM 20 HH11 ARG A 50 6.939 7.628 7.092 1.00 10.00 H
-ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
-"""
-
-pdb_list = [pdb_str_00, pdb_str_01, pdb_str_02, pdb_str_03,
- pdb_str_04, pdb_str_05, pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09,
- pdb_str_10, pdb_str_11]
-
-pdb_list_name = ['pdb_str_00', 'pdb_str_01', 'pdb_str_02', 'pdb_str_03',
- 'pdb_str_04', 'pdb_str_05', 'pdb_str_06', 'pdb_str_07', 'pdb_str_08',
- 'pdb_str_09', 'pdb_str_10', 'pdb_str_11']
-
-#pdb_list = [pdb_str_02, pdb_str_03]
-#pdb_list_name = ['pdb_str_02', 'pdb_str_03']
-
-def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- #print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
-
-if (__name__ == "__main__"):
- t0 = time.time()
- run()
- #run(sys.argv[1:])
- print "OK. Time:", round(time.time()-t0, 2), "seconds"
Deleted: trunk/mmtbx/hydrogens/tst_fd_2.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_2.py 2016-11-19 00:11:50 UTC (rev 25754)
+++ trunk/mmtbx/hydrogens/tst_fd_2.py 2016-11-19 00:17:32 UTC (rev 25755)
@@ -1,576 +0,0 @@
-from __future__ import division
-import time
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-from mmtbx.hydrogens import riding
-from mmtbx.hydrogens import modify_gradients
-
-
-#-----------------------------------------------------------------------------
-# This finite difference test checks transformation of riding H gradients
-# for all amino acids
-#-----------------------------------------------------------------------------
-
-#
-def exercise(pdb_str, eps,idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
- xray_structure = processed_pdb_file.xray_structure()
- sites_cart = xray_structure.sites_cart()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
-
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
-
- h_parameterization = riding_h_manager.h_parameterization
-
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
- xray_structure=xray_structure)
- #sites_cart = pdb_hierarchy.atoms().extract_xyz()
- sites_cart = xray_structure.sites_cart()
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
-
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- pdb_hierarchy_ = pdb_hierarchy.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- pdb_hierarchy_.atoms().set_xyz(sites_cart_)
- # after shift, recalculate H position
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy_)
- #sites_cart_ = xray_structure_.sites_cart()
- #riding_h_manager.idealize_hydrogens_sc_inplace(
- # sites_cart=sites_cart_)
- sites_cart_ = pdb_hierarchy_.atoms().extract_xyz()
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
-
- for g1, g2 in zip(g_analytical, g_fd):
- #print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- #print '*'*79
-
-
-#Alanine
-pdb_str_01 = """
-CRYST1 11.863 12.347 12.550 90.00 90.00 90.00 P 1
-SCALE1 0.084296 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.080991 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.079681 0.00000
-ATOM 1 N ALA B 84 7.017 5.016 7.287 1.00 10.00 N
-ATOM 2 CA ALA B 84 5.784 5.706 7.445 1.00 10.00 C
-ATOM 3 C ALA B 84 5.129 5.694 6.011 1.00 10.00 C
-ATOM 4 O ALA B 84 5.714 5.812 4.900 1.00 10.00 O
-ATOM 5 CB ALA B 84 6.261 7.426 7.444 1.00 10.00 C
-ATOM 6 HA ALA B 84 5.269 5.787 7.982 1.00 10.00 H
-ATOM 7 HB1 ALA B 84 5.337 8.016 7.304 1.00 10.00 H
-ATOM 8 HB2 ALA B 84 6.549 7.313 8.459 1.00 10.00 H
-ATOM 9 HB3 ALA B 84 6.616 7.667 6.795 1.00 10.00 H
-"""
-# Arginine:
-pdb_str_02 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 1 N ARG A 50 6.642 11.452 6.691 1.00 10.00 N
-ATOM 2 CA ARG A 50 7.570 10.240 6.682 1.00 10.00 C
-ATOM 3 C ARG A 50 9.005 10.280 6.707 1.00 10.00 C
-ATOM 4 O ARG A 50 9.602 11.108 6.810 1.00 10.00 O
-ATOM 5 CB ARG A 50 6.962 9.371 5.075 1.00 10.00 C
-ATOM 6 CG ARG A 50 5.382 9.275 4.806 1.00 10.00 C
-ATOM 7 CD ARG A 50 4.830 7.928 6.084 1.00 10.00 C
-ATOM 8 NE ARG A 50 5.434 6.841 5.374 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.450 6.116 6.035 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.392 6.694 6.803 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.898 5.026 5.305 1.00 10.00 N
-ATOM 12 HA ARG A 50 6.817 9.405 7.203 1.00 10.00 H
-ATOM 13 HB2 ARG A 50 7.451 9.961 4.409 1.00 10.00 H
-ATOM 14 HB3 ARG A 50 7.391 8.588 5.297 1.00 10.00 H
-ATOM 15 HG2 ARG A 50 5.016 10.089 5.174 1.00 10.00 H
-ATOM 16 HG3 ARG A 50 5.385 9.031 4.141 1.00 10.00 H
-ATOM 17 HD2 ARG A 50 5.268 8.147 6.643 1.00 10.00 H
-ATOM 18 HD3 ARG A 50 3.909 8.226 5.899 1.00 10.00 H
-ATOM 19 HE ARG A 50 5.208 6.478 4.962 1.00 10.00 H
-ATOM 20 HH11 ARG A 50 6.970 7.301 7.302 1.00 10.00 H
-ATOM 21 HH12 ARG A 50 7.866 6.356 7.069 1.00 10.00 H
-ATOM 22 HH21 ARG A 50 6.604 4.626 5.005 1.00 10.00 H
-ATOM 23 HH22 ARG A 50 7.522 4.396 5.734 1.00 10.00 H
-"""
-#Asparagine
-pdb_str_03 = """
-CRYST1 13.889 13.738 13.126 90.00 90.00 90.00 P 1
-SCALE1 0.071999 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.072791 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076185 0.00000
-ATOM 1 N ASN A 35 5.108 6.598 6.668 1.00 10.00 N
-ATOM 2 CA ASN A 35 6.071 7.634 7.159 1.00 10.00 C
-ATOM 3 C ASN A 35 6.113 8.702 6.163 1.00 10.00 C
-ATOM 4 O ASN A 35 5.556 8.558 4.817 1.00 10.00 O
-ATOM 5 CB ASN A 35 7.439 6.520 6.538 1.00 10.00 C
-ATOM 6 CG ASN A 35 7.597 5.465 7.487 1.00 10.00 C
-ATOM 7 OD1 ASN A 35 6.743 4.980 8.032 1.00 10.00 O
-ATOM 8 ND2 ASN A 35 8.841 4.827 7.318 1.00 10.00 N
-ATOM 9 HA ASN A 35 6.387 7.612 7.973 1.00 10.00 H
-ATOM 10 HB2 ASN A 35 7.452 6.464 5.548 1.00 10.00 H
-ATOM 11 HB3 ASN A 35 8.153 7.444 6.485 1.00 10.00 H
-ATOM 12 HD21 ASN A 35 9.022 4.464 7.804 1.00 10.00 H
-ATOM 13 HD22 ASN A 35 9.521 5.284 7.192 1.00 10.00 H
-"""
-# Aspartic Acid
-pdb_str_04 = """
-CRYST1 14.178 13.514 11.978 90.00 90.00 90.00 P 1
-SCALE1 0.070532 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.073997 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083486 0.00000
-ATOM 1 N ASP A 121 4.844 6.380 4.967 1.00 10.00 N
-ATOM 2 CA ASP A 121 6.237 6.469 5.750 1.00 10.00 C
-ATOM 3 C ASP A 121 5.959 7.525 7.138 1.00 10.00 C
-ATOM 4 O ASP A 121 5.683 8.452 6.797 1.00 10.00 O
-ATOM 5 CB ASP A 121 7.582 6.234 5.277 1.00 10.00 C
-ATOM 6 CG ASP A 121 8.550 6.163 6.136 1.00 10.00 C
-ATOM 7 OD1 ASP A 121 9.035 5.174 6.337 1.00 10.00 O
-ATOM 8 OD2 ASP A 121 9.115 7.253 6.644 1.00 10.00 O
-ATOM 9 HA ASP A 121 6.173 5.442 6.266 1.00 10.00 H
-ATOM 10 HB2 ASP A 121 7.509 5.748 4.630 1.00 10.00 H
-ATOM 11 HB3 ASP A 121 7.714 7.340 4.588 1.00 10.00 H
-"""
-# Cysteine
-pdb_str_05 = """
-CRYST1 12.081 11.399 14.639 90.00 90.00 90.00 P 1
-SCALE1 0.082775 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.087727 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.068311 0.00000
-ATOM 1 N CYS A 96 4.823 5.221 7.409 1.00 10.00 N
-ATOM 2 CA CYS A 96 6.273 5.028 7.456 1.00 10.00 C
-ATOM 3 C CYS A 96 6.932 5.026 9.008 1.00 10.00 C
-ATOM 4 O CYS A 96 7.163 5.942 9.454 1.00 10.00 O
-ATOM 5 CB CYS A 96 6.905 6.223 6.813 1.00 10.00 C
-ATOM 6 SG CYS A 96 6.265 6.407 5.142 1.00 10.00 S
-ATOM 7 HA CYS A 96 6.714 4.104 6.960 1.00 10.00 H
-ATOM 8 HB2 CYS A 96 6.849 7.034 6.999 1.00 10.00 H
-ATOM 9 HB3 CYS A 96 8.130 6.106 6.575 1.00 10.00 H
-ATOM 10 HG CYS A 96 6.882 7.238 4.630 1.00 10.00 H
-"""
-# Glutamine
-pdb_str_06 = """
-CRYST1 14.547 13.375 15.374 90.00 90.00 90.00 P 1
-SCALE1 0.068743 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.074766 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.065045 0.00000
-ATOM 1 N GLN A 70 6.344 7.129 5.035 1.00 10.00 N
-ATOM 2 CA GLN A 70 6.644 6.208 6.336 1.00 10.00 C
-ATOM 3 C GLN A 70 5.352 6.178 6.970 1.00 10.00 C
-ATOM 4 O GLN A 70 5.126 4.898 7.373 1.00 10.00 O
-ATOM 5 CB GLN A 70 7.877 6.998 7.230 1.00 10.00 C
-ATOM 6 CG GLN A 70 7.974 6.681 8.575 1.00 10.00 C
-ATOM 7 CD GLN A 70 9.249 7.237 9.063 1.00 10.00 C
-ATOM 8 OE1 GLN A 70 9.559 8.209 8.935 1.00 10.00 O
-ATOM 9 NE2 GLN A 70 9.506 6.762 10.402 1.00 10.00 N
-ATOM 10 HA GLN A 70 7.249 5.584 6.195 1.00 10.00 H
-ATOM 11 HB2 GLN A 70 8.663 7.126 6.476 1.00 10.00 H
-ATOM 12 HB3 GLN A 70 7.331 8.179 7.116 1.00 10.00 H
-ATOM 13 HG2 GLN A 70 7.234 6.385 8.986 1.00 10.00 H
-ATOM 14 HG3 GLN A 70 8.549 5.809 8.279 1.00 10.00 H
-ATOM 15 HE21 GLN A 70 9.114 6.119 10.657 1.00 10.00 H
-ATOM 16 HE22 GLN A 70 10.235 7.102 10.671 1.00 10.00 H
-"""
-# Glutamic Acid
-pdb_str_07 = """
-CRYST1 15.127 14.767 13.161 90.00 90.00 90.00 P 1
-SCALE1 0.066107 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.067719 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.075982 0.00000
-ATOM 1 N GLU A 24 9.022 8.042 4.852 1.00 10.00 N
-ATOM 2 CA GLU A 24 8.611 8.384 6.596 1.00 10.00 C
-ATOM 3 C GLU A 24 9.851 8.805 7.028 1.00 10.00 C
-ATOM 4 O GLU A 24 10.208 9.672 7.827 1.00 10.00 O
-ATOM 5 CB GLU A 24 8.163 7.285 7.084 1.00 10.00 C
-ATOM 6 CG GLU A 24 6.610 6.769 6.720 1.00 10.00 C
-ATOM 7 CD GLU A 24 6.069 5.633 7.216 1.00 10.00 C
-ATOM 8 OE1 GLU A 24 5.180 5.275 7.007 1.00 10.00 O
-ATOM 9 OE2 GLU A 24 6.826 5.071 8.182 1.00 10.00 O
-ATOM 10 HA GLU A 24 8.239 8.942 6.618 1.00 10.00 H
-ATOM 11 HB2 GLU A 24 8.834 6.577 7.107 1.00 10.00 H
-ATOM 12 HB3 GLU A 24 8.074 7.246 7.880 1.00 10.00 H
-ATOM 13 HG2 GLU A 24 5.925 7.518 6.600 1.00 10.00 H
-ATOM 14 HG3 GLU A 24 6.944 6.683 5.520 1.00 10.00 H
-"""
-# Glycine
-pdb_str_08 = """
-CRYST1 13.147 11.167 10.709 90.00 90.00 90.00 P 1
-SCALE1 0.076063 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.089550 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.093379 0.00000
-ATOM 1 N GLY B 93 8.304 6.036 5.544 1.00 10.00 N
-ATOM 2 CA GLY B 93 7.319 4.905 5.595 1.00 10.00 C
-ATOM 3 C GLY B 93 5.882 5.364 4.847 1.00 10.00 C
-ATOM 4 O GLY B 93 5.143 5.776 5.738 1.00 10.00 O
-ATOM 5 HA2 GLY B 93 7.870 4.339 5.372 1.00 10.00 H
-ATOM 6 HA3 GLY B 93 7.123 4.618 6.529 1.00 10.00 H
-"""
-
-# Histidine
-pdb_str_09 = """
-CRYST1 12.286 14.857 15.512 90.00 90.00 90.00 P 1
-SCALE1 0.081393 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.067308 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.064466 0.00000
-ATOM 1 N HIS A 34 7.292 7.714 9.065 1.00 10.00 N
-ATOM 2 CA HIS A 34 6.363 8.592 8.255 1.00 10.00 C
-ATOM 3 C HIS A 34 6.024 9.792 9.401 1.00 10.00 C
-ATOM 4 O HIS A 34 6.246 9.507 10.701 1.00 10.00 O
-ATOM 5 CB HIS A 34 4.951 8.082 8.105 1.00 10.00 C
-ATOM 6 CG HIS A 34 5.323 6.839 7.073 1.00 10.00 C
-ATOM 7 ND1 HIS A 34 5.021 7.108 5.763 1.00 10.00 N
-ATOM 8 CD2 HIS A 34 5.317 5.623 7.295 1.00 10.00 C
-ATOM 9 CE1 HIS A 34 5.333 5.771 5.081 1.00 10.00 C
-ATOM 10 NE2 HIS A 34 5.601 4.927 6.077 1.00 10.00 N
-ATOM 11 HA HIS A 34 6.539 9.000 7.667 1.00 10.00 H
-ATOM 12 HB2 HIS A 34 4.722 7.760 8.940 1.00 10.00 H
-ATOM 13 HB3 HIS A 34 4.532 8.544 7.770 1.00 10.00 H
-ATOM 14 HD2 HIS A 34 5.433 5.063 7.987 1.00 10.00 H
-ATOM 15 HE1 HIS A 34 5.162 5.891 3.986 1.00 10.00 H
-"""
-# Isoleucine
-pdb_str_10 = """
-CRYST1 14.040 13.236 13.685 90.00 90.00 90.00 P 1
-SCALE1 0.071225 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075552 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.073073 0.00000
-ATOM 1 N ILE B 81 6.774 6.654 8.528 1.00 10.00 N
-ATOM 2 CA ILE B 81 6.248 6.915 7.265 1.00 10.00 C
-ATOM 3 C ILE B 81 5.064 5.915 6.912 1.00 10.00 C
-ATOM 4 O ILE B 81 4.891 4.882 7.591 1.00 10.00 O
-ATOM 5 CB ILE B 81 7.374 7.060 6.201 1.00 10.00 C
-ATOM 6 CG1 ILE B 81 7.928 5.644 6.013 1.00 10.00 C
-ATOM 7 CG2 ILE B 81 8.450 8.146 6.766 1.00 10.00 C
-ATOM 8 CD1 ILE B 81 9.014 5.797 4.814 1.00 10.00 C
-ATOM 9 HA ILE B 81 5.805 7.933 7.605 1.00 10.00 H
-ATOM 10 HB ILE B 81 6.968 7.172 5.320 1.00 10.00 H
-ATOM 11 HG12 ILE B 81 8.488 5.662 7.117 1.00 10.00 H
-ATOM 12 HG13 ILE B 81 7.287 4.921 5.901 1.00 10.00 H
-ATOM 13 HG21 ILE B 81 8.841 8.468 5.740 1.00 10.00 H
-ATOM 14 HG22 ILE B 81 7.916 9.169 6.877 1.00 10.00 H
-ATOM 15 HG23 ILE B 81 8.650 8.115 7.619 1.00 10.00 H
-ATOM 16 HD11 ILE B 81 9.263 4.839 4.994 1.00 10.00 H
-ATOM 17 HD12 ILE B 81 8.679 5.953 4.216 1.00 10.00 H
-ATOM 18 HD13 ILE B 81 9.551 6.406 5.137 1.00 10.00 H
-"""
-
-# Leucine
-pdb_str_11 = """
-CRYST1 13.550 15.138 12.702 90.00 90.00 90.00 P 1
-SCALE1 0.073801 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.066059 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.078728 0.00000
-ATOM 1 N LEU B 94 6.273 6.593 4.935 1.00 10.00 N
-ATOM 2 CA LEU B 94 7.641 7.224 5.628 1.00 10.00 C
-ATOM 3 C LEU B 94 8.422 6.084 6.113 1.00 10.00 C
-ATOM 4 O LEU B 94 8.638 5.157 5.672 1.00 10.00 O
-ATOM 5 CB LEU B 94 7.066 8.117 6.861 1.00 10.00 C
-ATOM 6 CG LEU B 94 6.206 9.526 6.450 1.00 10.00 C
-ATOM 7 CD1 LEU B 94 5.918 10.237 7.727 1.00 10.00 C
-ATOM 8 CD2 LEU B 94 4.891 9.251 5.577 1.00 10.00 C
-ATOM 9 HA LEU B 94 7.928 7.858 4.837 1.00 10.00 H
-ATOM 10 HB2 LEU B 94 6.600 7.347 7.185 1.00 10.00 H
-ATOM 11 HB3 LEU B 94 7.833 8.235 7.219 1.00 10.00 H
-ATOM 12 HG LEU B 94 7.048 9.715 5.954 1.00 10.00 H
-ATOM 13 HD11 LEU B 94 5.564 11.132 7.460 1.00 10.00 H
-ATOM 14 HD12 LEU B 94 5.689 9.764 8.196 1.00 10.00 H
-ATOM 15 HD13 LEU B 94 6.901 10.482 8.316 1.00 10.00 H
-ATOM 16 HD21 LEU B 94 4.622 9.894 5.701 1.00 10.00 H
-ATOM 17 HD22 LEU B 94 5.223 8.782 4.700 1.00 10.00 H
-ATOM 18 HD23 LEU B 94 4.327 8.453 6.346 1.00 10.00 H
-"""
-
-# Lysine
-pdb_str_12 = """
-CRYST1 14.470 17.497 11.416 90.00 90.00 90.00 P 1
-SCALE1 0.069109 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.057153 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.087596 0.00000
-ATOM 1 N LYS A 76 4.981 10.159 4.860 1.00 10.00 N
-ATOM 2 CA LYS A 76 5.876 10.071 6.050 1.00 10.00 C
-ATOM 3 C LYS A 76 6.304 11.829 6.325 1.00 10.00 C
-ATOM 4 O LYS A 76 5.161 12.466 6.576 1.00 10.00 O
-ATOM 5 CB LYS A 76 7.337 9.388 5.906 1.00 10.00 C
-ATOM 6 CG LYS A 76 7.118 7.831 5.788 1.00 10.00 C
-ATOM 7 CD LYS A 76 8.453 7.428 5.736 1.00 10.00 C
-ATOM 8 CE LYS A 76 8.134 5.835 5.433 1.00 10.00 C
-ATOM 9 NZ LYS A 76 9.426 4.919 5.392 1.00 10.00 N
-ATOM 10 HA LYS A 76 5.397 10.002 6.803 1.00 10.00 H
-ATOM 11 HB2 LYS A 76 7.655 9.920 5.112 1.00 10.00 H
-ATOM 12 HB3 LYS A 76 7.624 9.427 6.543 1.00 10.00 H
-ATOM 13 HG2 LYS A 76 6.592 7.548 6.676 1.00 10.00 H
-ATOM 14 HG3 LYS A 76 6.469 7.536 5.090 1.00 10.00 H
-ATOM 15 HD2 LYS A 76 8.768 7.405 4.630 1.00 10.00 H
-ATOM 16 HD3 LYS A 76 9.025 7.220 6.546 1.00 10.00 H
-ATOM 17 HE2 LYS A 76 7.580 5.564 6.304 1.00 10.00 H
-ATOM 18 HE3 LYS A 76 7.440 5.632 4.831 1.00 10.00 H
-ATOM 19 HZ1 LYS A 76 9.379 4.186 5.442 1.00 10.00 H
-ATOM 20 HZ2 LYS A 76 9.725 5.254 4.549 1.00 10.00 H
-ATOM 21 HZ3 LYS A 76 9.965 5.006 6.093 1.00 10.00 H
-"""
-
-# Methionine
-pdb_str_13 = """
-CRYST1 13.775 12.351 15.645 90.00 90.00 90.00 P 1
-SCALE1 0.072595 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.080965 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.063918 0.00000
-ATOM 1 N MET B 37 7.603 5.375 6.446 1.00 10.00 N
-ATOM 2 CA MET B 37 6.723 6.349 6.607 1.00 10.00 C
-ATOM 3 C MET B 37 6.323 7.146 5.241 1.00 10.00 C
-ATOM 4 O MET B 37 5.062 7.131 4.970 1.00 10.00 O
-ATOM 5 CB MET B 37 6.932 7.378 7.483 1.00 10.00 C
-ATOM 6 CG MET B 37 7.258 6.900 9.095 1.00 10.00 C
-ATOM 7 SD MET B 37 8.785 5.488 9.096 1.00 10.00 S
-ATOM 8 CE MET B 37 8.590 5.149 10.517 1.00 10.00 C
-ATOM 9 HA MET B 37 5.885 6.031 6.839 1.00 10.00 H
-ATOM 10 HB2 MET B 37 7.862 7.670 7.351 1.00 10.00 H
-ATOM 11 HB3 MET B 37 6.364 7.936 7.854 1.00 10.00 H
-ATOM 12 HG2 MET B 37 7.509 7.571 9.764 1.00 10.00 H
-ATOM 13 HG3 MET B 37 6.614 6.240 9.246 1.00 10.00 H
-ATOM 14 HE1 MET B 37 9.624 4.355 10.601 1.00 10.00 H
-ATOM 15 HE2 MET B 37 9.070 5.811 11.280 1.00 10.00 H
-ATOM 16 HE3 MET B 37 8.003 4.499 11.109 1.00 10.00 H
-"""
-
-# Phenylanaline
-pdb_str_14 = """
-CRYST1 11.802 16.578 13.976 90.00 90.00 90.00 P 1
-SCALE1 0.084731 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060321 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.071551 0.00000
-ATOM 1 N PHE A 63 6.412 9.770 7.572 1.00 10.00 N
-ATOM 2 CA PHE A 63 6.289 9.157 6.198 1.00 10.00 C
-ATOM 3 C PHE A 63 6.292 10.223 5.110 1.00 10.00 C
-ATOM 4 O PHE A 63 6.451 11.437 5.241 1.00 10.00 O
-ATOM 5 CB PHE A 63 5.580 8.319 6.063 1.00 10.00 C
-ATOM 6 CG PHE A 63 5.743 6.958 6.849 1.00 10.00 C
-ATOM 7 CD1 PHE A 63 6.569 6.117 6.768 1.00 10.00 C
-ATOM 8 CD2 PHE A 63 5.050 7.055 8.045 1.00 10.00 C
-ATOM 9 CE1 PHE A 63 6.802 5.054 7.620 1.00 10.00 C
-ATOM 10 CE2 PHE A 63 5.331 6.153 8.840 1.00 10.00 C
-ATOM 11 CZ PHE A 63 6.270 5.103 8.840 1.00 10.00 C
-ATOM 12 HA PHE A 63 7.224 9.004 5.959 1.00 10.00 H
-ATOM 13 HB2 PHE A 63 4.619 8.277 5.936 1.00 10.00 H
-ATOM 14 HB3 PHE A 63 5.713 7.612 5.105 1.00 10.00 H
-ATOM 15 HD1 PHE A 63 7.301 6.004 5.919 1.00 10.00 H
-ATOM 16 HD2 PHE A 63 4.436 7.641 8.314 1.00 10.00 H
-ATOM 17 HE1 PHE A 63 7.224 4.307 7.397 1.00 10.00 H
-ATOM 18 HE2 PHE A 63 4.727 6.172 9.862 1.00 10.00 H
-ATOM 19 HZ PHE A 63 6.045 4.444 9.418 1.00 10.00 H
-"""
-
-# Proline
-pdb_str_15 = """
-CRYST1 12.293 14.006 12.486 90.00 90.00 90.00 P 1
-SCALE1 0.081347 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.071398 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.080090 0.00000
-ATOM 1 N PRO A 4 4.920 7.325 6.411 1.00 10.00 N
-ATOM 2 CA PRO A 4 6.162 6.834 5.666 1.00 10.00 C
-ATOM 3 C PRO A 4 6.405 5.341 5.894 1.00 10.00 C
-ATOM 4 O PRO A 4 7.098 4.853 4.957 1.00 10.00 O
-ATOM 5 CB PRO A 4 7.380 7.894 6.618 1.00 10.00 C
-ATOM 6 CG PRO A 4 6.640 8.868 7.204 1.00 10.00 C
-ATOM 7 CD PRO A 4 5.415 8.476 7.560 1.00 10.00 C
-ATOM 8 HA PRO A 4 6.250 7.067 4.776 1.00 10.00 H
-ATOM 9 HB2 PRO A 4 7.921 7.337 7.346 1.00 10.00 H
-ATOM 10 HB3 PRO A 4 8.016 8.080 5.830 1.00 10.00 H
-ATOM 11 HG2 PRO A 4 7.167 9.579 7.723 1.00 10.00 H
-ATOM 12 HG3 PRO A 4 6.492 9.649 6.528 1.00 10.00 H
-ATOM 13 HD2 PRO A 4 5.306 8.082 8.255 1.00 10.00 H
-ATOM 14 HD3 PRO A 4 4.496 9.094 7.222 1.00 10.00 H
-"""
-
-# Serine
-pdb_str_16 = """
-CRYST1 12.893 12.708 12.721 90.00 90.00 90.00 P 1
-SCALE1 0.077561 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.078691 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.078610 0.00000
-ATOM 1 N SER A 73 5.347 5.750 5.075 1.00 10.00 N
-ATOM 2 CA SER A 73 5.894 5.594 6.421 1.00 10.00 C
-ATOM 3 C SER A 73 5.946 7.282 6.996 1.00 10.00 C
-ATOM 4 O SER A 73 5.026 7.627 7.452 1.00 10.00 O
-ATOM 5 CB SER A 73 7.501 5.019 6.235 1.00 10.00 C
-ATOM 6 OG SER A 73 8.063 4.929 7.844 1.00 10.00 O
-ATOM 7 HA SER A 73 5.300 5.295 7.021 1.00 10.00 H
-ATOM 8 HB2 SER A 73 7.399 4.067 6.115 1.00 10.00 H
-ATOM 9 HB3 SER A 73 8.072 5.776 5.734 1.00 10.00 H
-ATOM 10 HG SER A 73 8.499 4.647 7.768 1.00 10.00 H
-"""
-
-# Threonine
-pdb_str_17 = """
-CRYST1 11.909 12.199 14.459 90.00 90.00 90.00 P 1
-SCALE1 0.083970 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.081974 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.069161 0.00000
-ATOM 1 N THR A 68 6.967 7.035 7.598 1.00 10.00 N
-ATOM 2 CA THR A 68 5.580 6.835 7.409 1.00 10.00 C
-ATOM 3 C THR A 68 4.981 6.180 8.674 1.00 10.00 C
-ATOM 4 O THR A 68 6.079 5.829 9.469 1.00 10.00 O
-ATOM 5 CB THR A 68 5.071 6.452 6.355 1.00 10.00 C
-ATOM 6 OG1 THR A 68 5.819 5.087 6.249 1.00 10.00 O
-ATOM 7 CG2 THR A 68 5.178 7.219 5.045 1.00 10.00 C
-ATOM 8 HA THR A 68 4.978 7.946 7.649 1.00 10.00 H
-ATOM 9 HB THR A 68 3.853 6.156 6.182 1.00 10.00 H
-ATOM 10 HG1 THR A 68 6.272 5.006 6.437 1.00 10.00 H
-ATOM 11 HG21 THR A 68 5.183 6.722 4.241 1.00 10.00 H
-ATOM 12 HG22 THR A 68 4.943 8.119 5.225 1.00 10.00 H
-ATOM 13 HG23 THR A 68 6.305 7.117 4.778 1.00 10.00 H
-"""
-
-# Triptophane
-pdb_str_18 = """
-CRYST1 12.502 12.982 18.312 90.00 90.00 90.00 P 1
-SCALE1 0.079987 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.077030 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.054609 0.00000
-ATOM 1 N TRP A 49 7.019 6.036 6.855 1.00 10.00 N
-ATOM 2 CA TRP A 49 6.009 5.654 7.261 1.00 10.00 C
-ATOM 3 C TRP A 49 5.132 5.145 5.877 1.00 10.00 C
-ATOM 4 O TRP A 49 5.267 5.983 5.027 1.00 10.00 O
-ATOM 5 CB TRP A 49 5.058 6.563 8.316 1.00 10.00 C
-ATOM 6 CG TRP A 49 6.065 6.967 9.207 1.00 10.00 C
-ATOM 7 CD1 TRP A 49 6.863 7.994 9.455 1.00 10.00 C
-ATOM 8 CD2 TRP A 49 5.959 6.505 10.743 1.00 10.00 C
-ATOM 9 NE1 TRP A 49 7.435 8.004 10.831 1.00 10.00 N
-ATOM 10 CE2 TRP A 49 6.803 7.200 11.335 1.00 10.00 C
-ATOM 11 CE3 TRP A 49 5.119 5.187 11.318 1.00 10.00 C
-ATOM 12 CZ2 TRP A 49 7.129 6.620 12.976 1.00 10.00 C
-ATOM 13 CZ3 TRP A 49 5.299 5.155 12.457 1.00 10.00 C
-ATOM 14 CH2 TRP A 49 6.374 5.658 13.211 1.00 10.00 C
-ATOM 15 HA TRP A 49 6.139 4.842 7.608 1.00 10.00 H
-ATOM 16 HB2 TRP A 49 5.070 7.319 7.481 1.00 10.00 H
-ATOM 17 HB3 TRP A 49 4.305 6.336 8.251 1.00 10.00 H
-ATOM 18 HD1 TRP A 49 7.226 8.582 8.796 1.00 10.00 H
-ATOM 19 HE1 TRP A 49 8.120 8.555 10.929 1.00 10.00 H
-ATOM 20 HE3 TRP A 49 4.311 5.074 10.564 1.00 10.00 H
-ATOM 21 HZ2 TRP A 49 7.806 7.092 13.214 1.00 10.00 H
-ATOM 22 HZ3 TRP A 49 4.914 4.129 12.933 1.00 10.00 H
-ATOM 23 HH2 TRP A 49 6.353 5.513 14.064 1.00 10.00 H
-"""
-
-# Tyrosine
-pdb_str_19 = """
-CRYST1 17.955 13.272 13.095 90.00 90.00 90.00 P 1
-SCALE1 0.055695 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075347 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076365 0.00000
-ATOM 1 N TYR A 139 10.057 7.968 5.049 1.00 10.00 N
-ATOM 2 CA TYR A 139 10.657 7.531 6.379 1.00 10.00 C
-ATOM 3 C TYR A 139 12.203 7.725 6.416 1.00 10.00 C
-ATOM 4 O TYR A 139 12.999 8.272 7.373 1.00 10.00 O
-ATOM 5 CB TYR A 139 10.644 6.145 6.711 1.00 10.00 C
-ATOM 6 CG TYR A 139 9.159 5.899 6.690 1.00 10.00 C
-ATOM 7 CD1 TYR A 139 8.503 5.230 5.513 1.00 10.00 C
-ATOM 8 CD2 TYR A 139 8.317 6.046 8.121 1.00 10.00 C
-ATOM 9 CE1 TYR A 139 6.876 4.938 5.643 1.00 10.00 C
-ATOM 10 CE2 TYR A 139 7.209 5.706 8.077 1.00 10.00 C
-ATOM 11 CZ TYR A 139 6.420 5.365 6.855 1.00 10.00 C
-ATOM 12 OH TYR A 139 5.027 4.949 7.088 1.00 10.00 O
-ATOM 13 HA TYR A 139 10.303 8.174 6.785 1.00 10.00 H
-ATOM 14 HB2 TYR A 139 10.989 5.647 5.882 1.00 10.00 H
-ATOM 15 HB3 TYR A 139 10.828 5.883 7.586 1.00 10.00 H
-ATOM 16 HD1 TYR A 139 8.618 5.356 4.741 1.00 10.00 H
-ATOM 17 HD2 TYR A 139 8.841 6.121 8.546 1.00 10.00 H
-ATOM 18 HE1 TYR A 139 6.432 5.030 4.892 1.00 10.00 H
-ATOM 19 HE2 TYR A 139 6.780 5.619 9.066 1.00 10.00 H
-ATOM 20 HH TYR A 139 4.693 5.141 7.840 1.00 10.00 H
-"""
-
-# Valine
-pdb_str_20 = """
-CRYST1 12.396 13.122 13.130 90.00 90.00 90.00 P 1
-SCALE1 0.080671 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.076208 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076161 0.00000
-ATOM 1 N VAL B 78 4.820 5.520 7.634 1.00 10.00 N
-ATOM 2 CA VAL B 78 6.105 5.869 7.138 1.00 10.00 C
-ATOM 3 C VAL B 78 6.717 7.176 8.084 1.00 10.00 C
-ATOM 4 O VAL B 78 5.750 8.012 8.022 1.00 10.00 O
-ATOM 5 CB VAL B 78 6.029 6.374 5.701 1.00 10.00 C
-ATOM 6 CG1 VAL B 78 5.673 4.961 4.874 1.00 10.00 C
-ATOM 7 CG2 VAL B 78 7.349 6.810 5.233 1.00 10.00 C
-ATOM 8 HA VAL B 78 7.125 5.144 7.411 1.00 10.00 H
-ATOM 9 HB VAL B 78 5.404 6.962 5.498 1.00 10.00 H
-ATOM 10 HG11 VAL B 78 5.583 5.210 4.024 1.00 10.00 H
-ATOM 11 HG12 VAL B 78 6.062 4.120 5.126 1.00 10.00 H
-ATOM 12 HG13 VAL B 78 4.907 4.924 5.317 1.00 10.00 H
-ATOM 13 HG21 VAL B 78 7.299 7.038 4.409 1.00 10.00 H
-ATOM 14 HG22 VAL B 78 7.542 7.634 5.823 1.00 10.00 H
-ATOM 15 HG23 VAL B 78 7.889 5.963 5.346 1.00 10.00 H
-"""
-
-pdb_list = [pdb_str_01, pdb_str_02, pdb_str_03, pdb_str_04, pdb_str_05,
- pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09, pdb_str_10, pdb_str_11,
- pdb_str_12, pdb_str_13, pdb_str_14, pdb_str_15, pdb_str_16, pdb_str_17,
- pdb_str_18, pdb_str_19, pdb_str_20]
-#
-pdb_list_name = ['pdb_str_01', 'pdb_str_02', 'pdb_str_03', 'pdb_str_04', 'pdb_str_05',
- 'pdb_str_06', 'pdb_str_07', 'pdb_str_08', 'pdb_str_09', 'pdb_str_10', 'pdb_str_11',
- 'pdb_str_12', 'pdb_str_13', 'pdb_str_14', 'pdb_str_15', 'pdb_str_16', 'pdb_str_17',
- 'pdb_str_18', 'pdb_str_19', 'pdb_str_20']
-
-#pdb_list = [pdb_str_02]
-#pdb_list_name = ['pdb_str_02']
-
-def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- #print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
-
-
-if (__name__ == "__main__"):
- t0 = time.time()
- run()
- #run(sys.argv[1:])
- print "OK. Time:", round(time.time()-t0, 2), "seconds"
Deleted: trunk/mmtbx/hydrogens/tst_fd_3.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_3.py 2016-11-19 00:11:50 UTC (rev 25754)
+++ trunk/mmtbx/hydrogens/tst_fd_3.py 2016-11-19 00:17:32 UTC (rev 25755)
@@ -1,418 +0,0 @@
-from __future__ import division
-import time
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-from mmtbx.hydrogens import riding
-from mmtbx.hydrogens import modify_gradients
-
-def exercise(pdb_str, eps, idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
- xray_structure = processed_pdb_file.xray_structure()
- sites_cart = xray_structure.sites_cart()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
-
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- riding_h_manager = riding.manager(
- hierarchy = pdb_hierarchy,
- geometry_restraints = geometry,
- crystal_symmetry = xray_structure.crystal_symmetry())
-
- h_parameterization = riding_h_manager.h_parameterization
-
- riding_h_manager.idealize_hydrogens(
- hierarchy=pdb_hierarchy,
- xray_structure=xray_structure)
- #sites_cart = pdb_hierarchy.atoms().extract_xyz()
- sites_cart = xray_structure.sites_cart()
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart, compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- # after shift, recalculate H position
- riding_h_manager.idealize_hydrogens_sc_inplace(
- sites_cart=sites_cart_)
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
- #
- for g1, g2 in zip(g_analytical, g_fd):
- #print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- #print '*'*79
-
-pdb_str = """
-CRYST1 30.000 30.000 30.000 90.00 90.00 90.00 P 1
-SCALE1 0.033333 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.033333 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.033333 0.00000
-ATOM 1 N ARG A 2 3.050 19.481 25.856 1.00 0.00 N
-ATOM 2 CA ARG A 2 3.759 20.265 24.852 1.00 0.00 C
-ATOM 3 C ARG A 2 5.253 20.304 25.155 1.00 0.00 C
-ATOM 4 O ARG A 2 5.659 20.516 26.298 1.00 0.00 O
-ATOM 5 CB ARG A 2 3.197 21.687 24.787 1.00 0.00 C
-ATOM 6 CG ARG A 2 3.800 22.542 23.684 1.00 0.00 C
-ATOM 7 CD ARG A 2 3.128 23.904 23.607 1.00 0.00 C
-ATOM 8 NE ARG A 2 3.721 24.751 22.576 1.00 0.00 N
-ATOM 9 CZ ARG A 2 3.311 25.983 22.290 1.00 0.00 C
-ATOM 10 NH1 ARG A 2 2.301 26.525 22.957 1.00 0.00 N1+
-ATOM 11 NH2 ARG A 2 3.914 26.676 21.334 1.00 0.00 N
-ATOM 12 HA ARG A 2 3.638 19.852 23.983 1.00 0.00 H
-ATOM 13 HB2 ARG A 2 2.240 21.637 24.633 1.00 0.00 H
-ATOM 14 HB3 ARG A 2 3.370 22.129 25.633 1.00 0.00 H
-ATOM 15 HG2 ARG A 2 4.743 22.680 23.864 1.00 0.00 H
-ATOM 16 HG3 ARG A 2 3.682 22.096 22.831 1.00 0.00 H
-ATOM 17 HD2 ARG A 2 2.189 23.783 23.396 1.00 0.00 H
-ATOM 18 HD3 ARG A 2 3.224 24.355 24.460 1.00 0.00 H
-ATOM 19 HE ARG A 2 4.380 24.432 22.124 1.00 0.00 H
-ATOM 20 HH11 ARG A 2 1.905 26.082 23.579 1.00 0.00 H
-ATOM 21 HH12 ARG A 2 2.041 27.322 22.767 1.00 0.00 H
-ATOM 22 HH21 ARG A 2 4.569 26.329 20.898 1.00 0.00 H
-ATOM 23 HH22 ARG A 2 3.649 27.473 21.149 1.00 0.00 H
-ATOM 24 N HIS A 3 6.067 20.098 24.123 1.00 0.00 N
-ATOM 25 CA HIS A 3 7.516 20.107 24.260 1.00 0.00 C
-ATOM 26 C HIS A 3 8.133 20.732 23.018 1.00 0.00 C
-ATOM 27 O HIS A 3 7.638 20.536 21.904 1.00 0.00 O
-ATOM 28 CB HIS A 3 8.069 18.691 24.464 1.00 0.00 C
-ATOM 29 CG HIS A 3 7.630 18.050 25.743 1.00 0.00 C
-ATOM 30 ND1 HIS A 3 8.154 18.399 26.969 1.00 0.00 N
-ATOM 31 CD2 HIS A 3 6.716 17.080 25.988 1.00 0.00 C
-ATOM 32 CE1 HIS A 3 7.582 17.674 27.913 1.00 0.00 C
-ATOM 33 NE2 HIS A 3 6.706 16.865 27.344 1.00 0.00 N
-ATOM 34 H HIS A 3 5.797 19.948 23.320 1.00 0.00 H
-ATOM 35 HA HIS A 3 7.764 20.646 25.027 1.00 0.00 H
-ATOM 36 HB2 HIS A 3 7.768 18.129 23.732 1.00 0.00 H
-ATOM 37 HB3 HIS A 3 9.038 18.731 24.470 1.00 0.00 H
-ATOM 38 HD2 HIS A 3 6.194 16.642 25.355 1.00 0.00 H
-ATOM 39 HE1 HIS A 3 7.765 17.723 28.824 1.00 0.00 H
-ATOM 40 N LYS A 4 9.213 21.483 23.217 1.00 0.00 N
-ATOM 41 CA LYS A 4 9.902 22.139 22.116 1.00 0.00 C
-ATOM 42 C LYS A 4 11.340 22.409 22.530 1.00 0.00 C
-ATOM 43 O LYS A 4 11.602 22.774 23.678 1.00 0.00 O
-ATOM 44 CB LYS A 4 9.205 23.447 21.722 1.00 0.00 C
-ATOM 45 CG LYS A 4 9.799 24.121 20.495 1.00 0.00 C
-ATOM 46 CD LYS A 4 9.008 25.357 20.102 1.00 0.00 C
-ATOM 47 CE LYS A 4 9.606 26.035 18.880 1.00 0.00 C
-ATOM 48 NZ LYS A 4 8.842 27.250 18.484 1.00 0.00 N1+
-ATOM 49 H LYS A 4 9.568 21.628 23.987 1.00 0.00 H
-ATOM 50 HA LYS A 4 9.909 21.551 21.344 1.00 0.00 H
-ATOM 51 HB2 LYS A 4 8.272 23.258 21.533 1.00 0.00 H
-ATOM 52 HB3 LYS A 4 9.270 24.070 22.462 1.00 0.00 H
-ATOM 53 HG2 LYS A 4 10.710 24.392 20.688 1.00 0.00 H
-ATOM 54 HG3 LYS A 4 9.784 23.500 19.750 1.00 0.00 H
-ATOM 55 HD2 LYS A 4 8.096 25.101 19.892 1.00 0.00 H
-ATOM 56 HD3 LYS A 4 9.018 25.991 20.837 1.00 0.00 H
-ATOM 57 HE2 LYS A 4 10.517 26.302 19.078 1.00 0.00 H
-ATOM 58 HE3 LYS A 4 9.594 25.415 18.135 1.00 0.00 H
-ATOM 59 HZ1 LYS A 4 9.215 27.624 17.768 1.00 0.00 H
-ATOM 60 HZ2 LYS A 4 8.001 27.031 18.292 1.00 0.00 H
-ATOM 61 HZ3 LYS A 4 8.842 27.840 19.151 1.00 0.00 H
-ATOM 62 N ASP A 5 12.263 22.226 21.588 1.00 0.00 N
-ATOM 63 CA ASP A 5 13.678 22.447 21.845 1.00 0.00 C
-ATOM 64 C ASP A 5 14.374 22.763 20.531 1.00 0.00 C
-ATOM 65 O ASP A 5 14.035 22.197 19.489 1.00 0.00 O
-ATOM 66 CB ASP A 5 14.324 21.224 22.508 1.00 0.00 C
-ATOM 67 CG ASP A 5 15.729 21.504 23.005 1.00 0.00 C
-ATOM 68 OD1 ASP A 5 16.213 22.640 22.819 1.00 0.00 O
-ATOM 69 OD2 ASP A 5 16.350 20.587 23.582 1.00 0.00 O1-
-ATOM 70 H ASP A 5 12.091 21.972 20.785 1.00 0.00 H
-ATOM 71 HA ASP A 5 13.783 23.208 22.438 1.00 0.00 H
-ATOM 72 HB2 ASP A 5 13.785 20.954 23.267 1.00 0.00 H
-ATOM 73 HB3 ASP A 5 14.372 20.503 21.861 1.00 0.00 H
-ATOM 74 N GLU A 6 15.346 23.668 20.589 1.00 0.00 N
-ATOM 75 CA GLU A 6 16.096 24.064 19.403 1.00 0.00 C
-ATOM 76 C GLU A 6 17.433 24.684 19.794 1.00 0.00 C
-ATOM 77 O GLU A 6 17.829 24.647 20.959 1.00 0.00 O
-ATOM 78 CB GLU A 6 15.283 25.051 18.561 1.00 0.00 C
-ATOM 79 CG GLU A 6 15.942 25.433 17.245 1.00 0.00 C
-ATOM 80 CD GLU A 6 15.076 26.352 16.405 1.00 0.00 C
-ATOM 81 OE1 GLU A 6 13.969 26.708 16.861 1.00 0.00 O
-ATOM 82 OE2 GLU A 6 15.503 26.718 15.290 1.00 0.00 O1-
-ATOM 83 H GLU A 6 15.592 24.070 21.309 1.00 0.00 H
-ATOM 84 HA GLU A 6 16.273 23.279 18.862 1.00 0.00 H
-ATOM 85 HB2 GLU A 6 14.424 24.651 18.356 1.00 0.00 H
-ATOM 86 HB3 GLU A 6 15.153 25.864 19.073 1.00 0.00 H
-ATOM 87 HG2 GLU A 6 16.776 25.893 17.428 1.00 0.00 H
-ATOM 88 HG3 GLU A 6 16.112 24.628 16.730 1.00 0.00 H
-TER
-ATOM 89 N SER B 2 10.846 4.462 24.534 1.00 0.00 N
-ATOM 90 CA SER B 2 11.518 5.747 24.391 1.00 0.00 C
-ATOM 91 C SER B 2 13.032 5.575 24.457 1.00 0.00 C
-ATOM 92 O SER B 2 13.532 4.595 25.009 1.00 0.00 O
-ATOM 93 CB SER B 2 11.052 6.719 25.477 1.00 0.00 C
-ATOM 94 OG SER B 2 11.455 6.279 26.762 1.00 0.00 O
-ATOM 95 HA SER B 2 11.295 6.129 23.528 1.00 0.00 H
-ATOM 96 HB2 SER B 2 11.440 7.591 25.307 1.00 0.00 H
-ATOM 97 HB3 SER B 2 10.084 6.777 25.453 1.00 0.00 H
-ATOM 98 HG SER B 2 11.125 5.523 26.924 1.00 0.00 H
-ATOM 99 N THR B 3 13.758 6.536 23.889 1.00 0.00 N
-ATOM 100 CA THR B 3 15.212 6.498 23.880 1.00 0.00 C
-ATOM 101 C THR B 3 15.741 7.920 23.778 1.00 0.00 C
-ATOM 102 O THR B 3 15.212 8.733 23.015 1.00 0.00 O
-ATOM 103 CB THR B 3 15.746 5.652 22.717 1.00 0.00 C
-ATOM 104 OG1 THR B 3 15.230 4.319 22.813 1.00 0.00 O
-ATOM 105 CG2 THR B 3 17.268 5.606 22.740 1.00 0.00 C
-ATOM 106 H THR B 3 13.425 7.226 23.499 1.00 0.00 H
-ATOM 107 HA THR B 3 15.530 6.111 24.711 1.00 0.00 H
-ATOM 108 HB THR B 3 15.465 6.046 21.876 1.00 0.00 H
-ATOM 109 HG1 THR B 3 15.519 3.852 22.178 1.00 0.00 H
-ATOM 110 HG21 THR B 3 17.587 4.933 22.118 1.00 0.00 H
-ATOM 111 HG22 THR B 3 17.633 6.467 22.484 1.00 0.00 H
-ATOM 112 HG23 THR B 3 17.580 5.381 23.631 1.00 0.00 H
-ATOM 113 N ASN B 4 16.785 8.212 24.552 1.00 0.00 N
-ATOM 114 CA ASN B 4 17.402 9.533 24.564 1.00 0.00 C
-ATOM 115 C ASN B 4 18.904 9.364 24.725 1.00 0.00 C
-ATOM 116 O ASN B 4 19.359 8.747 25.692 1.00 0.00 O
-ATOM 117 CB ASN B 4 16.835 10.400 25.693 1.00 0.00 ...
[truncated message content] |
|
From: <dcl...@us...> - 2016-11-19 00:11:52
|
Revision: 25754
http://sourceforge.net/p/cctbx/code/25754
Author: dcliebschner
Date: 2016-11-19 00:11:50 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
adapt tests for recent changes (manager etc)
Modified Paths:
--------------
trunk/mmtbx/hydrogens/riding.py
Added Paths:
-----------
trunk/mmtbx/hydrogens/tst_fd_1.py
trunk/mmtbx/hydrogens/tst_fd_2.py
trunk/mmtbx/hydrogens/tst_fd_3.py
trunk/mmtbx/hydrogens/tst_fd_4.py
trunk/mmtbx/hydrogens/tst_fd_5.py
Modified: trunk/mmtbx/hydrogens/riding.py
===================================================================
--- trunk/mmtbx/hydrogens/riding.py 2016-11-19 00:03:42 UTC (rev 25753)
+++ trunk/mmtbx/hydrogens/riding.py 2016-11-19 00:11:50 UTC (rev 25754)
@@ -69,3 +69,19 @@
xray_structure.set_sites_cart(sites_cart)
hierarchy.adopt_xray_structure(xray_structure)
+ def idealize_hydrogens_sc_inplace(self, sites_cart):
+ for ih in self.h_parameterization.keys():
+ hp = self.h_parameterization[ih]
+ rh = matrix.col(sites_cart[ih])
+ rh_calc = None
+ if (hp.htype in ['unk','unk_ideal']):
+ rh_calc = rh
+ else:
+ rh_calc = parameterization.compute_H_position(
+ ih = ih,
+ sites_cart = sites_cart,
+ hp = hp)
+ if (rh_calc is None):
+ rh_calc = rh
+ sites_cart[ih] = rh_calc
+
Copied: trunk/mmtbx/hydrogens/tst_fd_1.py (from rev 25751, trunk/mmtbx/hydrogens/tst_run_fd_1.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_1.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_fd_1.py 2016-11-19 00:11:50 UTC (rev 25754)
@@ -0,0 +1,298 @@
+from __future__ import division
+import time
+import sys
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import parameterization
+from mmtbx.hydrogens import modify_gradients
+from scitbx import matrix
+
+
+#-----------------------------------------------------------------------------
+# Finite difference test for modified gradients of riding H
+# Every type of H geometry is tested:
+# planar H
+# tetragonal H
+# two tetragonal H
+# X-H2 group (ARG etc)
+# propeller group
+# H with rotational degree of freedom (SER, etc)
+#-----------------------------------------------------------------------------
+
+def exercise(pdb_str, eps, idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ xray_structure = processed_pdb_file.xray_structure()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+ sites_cart = xray_structure.sites_cart()
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ ih = h_parameterization.keys()[0]
+ rh_calc = parameterization.compute_H_position(
+ ih = ih,
+ sites_cart = sites_cart,
+ hp = h_parameterization[ih])
+ #print 'distance before changing H', \
+ # (rh_calc - matrix.col(sites_cart[ih])).length()
+
+ sites_cart[ih] = tuple(rh_calc)
+ xray_structure.set_sites_cart(sites_cart)
+ #rh_calc = parameterization.compute_H_position(
+ # ih = ih,
+ # sites_cart = sites_cart,
+ # hp = h_parameterization[ih])
+ #print 'distance H_calc - H_mod', \
+ # (rh_calc - matrix.col(sites_cart[ih])).length()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ # after shift, recalculate H position
+ for ih in h_parameterization.keys():
+ rh_calc = parameterization.compute_H_position(
+ ih = ih,
+ sites_cart = sites_cart_,
+ hp = h_parameterization[ih])
+ sites_cart_[ih] = tuple(rh_calc)
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+ #
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+# alg2a shaked
+pdb_str_00 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
+ATOM 8 CD2 TYR A 7 8.348 7.014 9.545 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
+ATOM 17 HD2 TYR A 7 9.064 7.637 10.081 1.00 15.00 H
+TER
+"""
+# alg2a ideal geometry
+pdb_str_01 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 CG TYR A 7 8.544 6.391 8.506 1.00 15.00 C
+ATOM 2 CD2 TYR A 7 8.334 7.144 9.654 1.00 15.00 C
+ATOM 3 CE2 TYR A 7 7.078 7.251 10.220 1.00 15.00 C
+ATOM 4 HD2 TYR A 7 9.052 7.584 10.049 1.00 15.00 H
+TER
+"""
+# alg2b shaked
+pdb_str_02 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
+ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
+ATOM 14 HB2 TYR A 7 9.943 5.616 7.588 1.00 15.00 H
+END
+"""
+# alg2b ideal geometry
+pdb_str_03 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 2 CA TYR A 7 9.962 6.614 6.452 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.920 6.991 7.935 1.00 15.00 C
+ATOM 6 CG TYR A 7 8.575 6.781 8.602 1.00 15.00 C
+ATOM 14 HB2 TYR A 7 10.571 6.452 8.411 1.00 15.00 H
+"""
+
+# alg3 shaked
+pdb_str_04 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 N TYR A 7 9.035 7.089 5.637 1.00 15.00 N
+ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
+ATOM 3 C TYR A 7 11.285 7.169 6.250 1.00 15.00 C
+ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
+ATOM 13 HA TYR A 7 9.831 8.340 7.271 1.00 15.00 H
+"""
+
+# alg3 ideal geometry
+pdb_str_05 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 N TYR A 7 8.981 7.170 5.658 1.00 15.00 N
+ATOM 2 CA TYR A 7 9.949 7.360 6.732 1.00 15.00 C
+ATOM 3 C TYR A 7 11.374 7.278 6.195 1.00 15.00 C
+ATOM 4 CB TYR A 7 9.740 6.317 7.832 1.00 15.00 C
+ATOM 5 HA TYR A 7 9.823 8.239 7.122 1.00 15.00 H
+"""
+
+# alg1a shaked
+pdb_str_06 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
+ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
+"""
+
+# alg1a idealized
+pdb_str_07 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 1 NE ARG A 50 5.543 6.877 5.312 1.00 10.00 N
+ATOM 2 CZ ARG A 50 6.559 6.257 5.905 1.00 10.00 C
+ATOM 3 NH1 ARG A 50 7.213 6.851 6.894 1.00 10.00 N
+ATOM 4 NH2 ARG A 50 6.920 5.044 5.510 1.00 10.00 N
+ATOM 6 HH12 ARG A 50 7.870 6.449 7.277 1.00 10.00 H
+"""
+
+#alg1b_flat shaked
+pdb_str_08 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.338 5.396 8.586 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
+ATOM 11 CZ TYR A 7 6.090 6.501 9.765 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.857 6.463 10.553 1.00 15.00 O
+ATOM 20 HH TYR A 7 5.208 7.016 11.256 1.00 15.00 H
+"""
+
+#alg1b_flat idealized
+pdb_str_09 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 1 CE1 TYR A 7 6.239 5.565 8.724 1.00 15.00 C
+ATOM 2 CE2 TYR A 7 7.170 7.259 10.131 1.00 15.00 C
+ATOM 3 CZ TYR A 7 6.130 6.416 9.803 1.00 15.00 C
+ATOM 4 OH TYR A 7 4.978 6.424 10.555 1.00 15.00 O
+ATOM 5 HH TYR A 7 5.045 6.985 11.177 1.00 15.00 H
+"""
+
+#alg1b shaked (HH out of plane)
+pdb_str_10 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.231 6.395 8.363 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.119 6.748 10.501 1.00 15.00 C
+ATOM 11 CZ TYR A 7 5.926 6.249 9.983 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.831 6.083 10.481 1.00 15.00 O
+ATOM 20 HH TYR A 7 4.708 6.641 11.301 1.00 15.00 H
+"""
+
+# alg1b idealized (HH out of plane)
+pdb_str_11 = """
+CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
+SCALE1 0.060024 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075409 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.061671 0.00000
+ATOM 9 CE1 TYR A 7 6.193 6.410 8.461 1.00 15.00 C
+ATOM 10 CE2 TYR A 7 7.242 6.572 10.604 1.00 15.00 C
+ATOM 11 CZ TYR A 7 6.111 6.396 9.837 1.00 15.00 C
+ATOM 12 OH TYR A 7 4.893 6.206 10.448 1.00 15.00 O
+ATOM 20 HH TYR A 7 4.878 6.603 11.188 1.00 15.00 H
+"""
+
+#alg1a shaked with both H atoms
+pdb_str_06_bla = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
+ATOM 20 HH11 ARG A 50 6.939 7.628 7.092 1.00 10.00 H
+ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
+"""
+
+pdb_list = [pdb_str_00, pdb_str_01, pdb_str_02, pdb_str_03,
+ pdb_str_04, pdb_str_05, pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09,
+ pdb_str_10, pdb_str_11]
+
+pdb_list_name = ['pdb_str_00', 'pdb_str_01', 'pdb_str_02', 'pdb_str_03',
+ 'pdb_str_04', 'pdb_str_05', 'pdb_str_06', 'pdb_str_07', 'pdb_str_08',
+ 'pdb_str_09', 'pdb_str_10', 'pdb_str_11']
+
+#pdb_list = [pdb_str_02, pdb_str_03]
+#pdb_list_name = ['pdb_str_02', 'pdb_str_03']
+
+def run():
+ for idealize in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #print 'pdb_string:', str_name, 'idealize =', idealize
+ exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+
+if (__name__ == "__main__"):
+ t0 = time.time()
+ run()
+ #run(sys.argv[1:])
+ print "OK. Time:", round(time.time()-t0, 2), "seconds"
Copied: trunk/mmtbx/hydrogens/tst_fd_2.py (from rev 25751, trunk/mmtbx/hydrogens/tst_run_fd_2.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_2.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_fd_2.py 2016-11-19 00:11:50 UTC (rev 25754)
@@ -0,0 +1,576 @@
+from __future__ import division
+import time
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import modify_gradients
+
+
+#-----------------------------------------------------------------------------
+# This finite difference test checks transformation of riding H gradients
+# for all amino acids
+#-----------------------------------------------------------------------------
+
+#
+def exercise(pdb_str, eps,idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+ xray_structure = processed_pdb_file.xray_structure()
+ sites_cart = xray_structure.sites_cart()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
+ #sites_cart = pdb_hierarchy.atoms().extract_xyz()
+ sites_cart = xray_structure.sites_cart()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ pdb_hierarchy_ = pdb_hierarchy.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ pdb_hierarchy_.atoms().set_xyz(sites_cart_)
+ # after shift, recalculate H position
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy_)
+ #sites_cart_ = xray_structure_.sites_cart()
+ #riding_h_manager.idealize_hydrogens_sc_inplace(
+ # sites_cart=sites_cart_)
+ sites_cart_ = pdb_hierarchy_.atoms().extract_xyz()
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+
+#Alanine
+pdb_str_01 = """
+CRYST1 11.863 12.347 12.550 90.00 90.00 90.00 P 1
+SCALE1 0.084296 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.080991 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.079681 0.00000
+ATOM 1 N ALA B 84 7.017 5.016 7.287 1.00 10.00 N
+ATOM 2 CA ALA B 84 5.784 5.706 7.445 1.00 10.00 C
+ATOM 3 C ALA B 84 5.129 5.694 6.011 1.00 10.00 C
+ATOM 4 O ALA B 84 5.714 5.812 4.900 1.00 10.00 O
+ATOM 5 CB ALA B 84 6.261 7.426 7.444 1.00 10.00 C
+ATOM 6 HA ALA B 84 5.269 5.787 7.982 1.00 10.00 H
+ATOM 7 HB1 ALA B 84 5.337 8.016 7.304 1.00 10.00 H
+ATOM 8 HB2 ALA B 84 6.549 7.313 8.459 1.00 10.00 H
+ATOM 9 HB3 ALA B 84 6.616 7.667 6.795 1.00 10.00 H
+"""
+# Arginine:
+pdb_str_02 = """
+CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
+SCALE1 0.069223 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060787 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083942 0.00000
+ATOM 1 N ARG A 50 6.642 11.452 6.691 1.00 10.00 N
+ATOM 2 CA ARG A 50 7.570 10.240 6.682 1.00 10.00 C
+ATOM 3 C ARG A 50 9.005 10.280 6.707 1.00 10.00 C
+ATOM 4 O ARG A 50 9.602 11.108 6.810 1.00 10.00 O
+ATOM 5 CB ARG A 50 6.962 9.371 5.075 1.00 10.00 C
+ATOM 6 CG ARG A 50 5.382 9.275 4.806 1.00 10.00 C
+ATOM 7 CD ARG A 50 4.830 7.928 6.084 1.00 10.00 C
+ATOM 8 NE ARG A 50 5.434 6.841 5.374 1.00 10.00 N
+ATOM 9 CZ ARG A 50 6.450 6.116 6.035 1.00 10.00 C
+ATOM 10 NH1 ARG A 50 7.392 6.694 6.803 1.00 10.00 N
+ATOM 11 NH2 ARG A 50 6.898 5.026 5.305 1.00 10.00 N
+ATOM 12 HA ARG A 50 6.817 9.405 7.203 1.00 10.00 H
+ATOM 13 HB2 ARG A 50 7.451 9.961 4.409 1.00 10.00 H
+ATOM 14 HB3 ARG A 50 7.391 8.588 5.297 1.00 10.00 H
+ATOM 15 HG2 ARG A 50 5.016 10.089 5.174 1.00 10.00 H
+ATOM 16 HG3 ARG A 50 5.385 9.031 4.141 1.00 10.00 H
+ATOM 17 HD2 ARG A 50 5.268 8.147 6.643 1.00 10.00 H
+ATOM 18 HD3 ARG A 50 3.909 8.226 5.899 1.00 10.00 H
+ATOM 19 HE ARG A 50 5.208 6.478 4.962 1.00 10.00 H
+ATOM 20 HH11 ARG A 50 6.970 7.301 7.302 1.00 10.00 H
+ATOM 21 HH12 ARG A 50 7.866 6.356 7.069 1.00 10.00 H
+ATOM 22 HH21 ARG A 50 6.604 4.626 5.005 1.00 10.00 H
+ATOM 23 HH22 ARG A 50 7.522 4.396 5.734 1.00 10.00 H
+"""
+#Asparagine
+pdb_str_03 = """
+CRYST1 13.889 13.738 13.126 90.00 90.00 90.00 P 1
+SCALE1 0.071999 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.072791 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076185 0.00000
+ATOM 1 N ASN A 35 5.108 6.598 6.668 1.00 10.00 N
+ATOM 2 CA ASN A 35 6.071 7.634 7.159 1.00 10.00 C
+ATOM 3 C ASN A 35 6.113 8.702 6.163 1.00 10.00 C
+ATOM 4 O ASN A 35 5.556 8.558 4.817 1.00 10.00 O
+ATOM 5 CB ASN A 35 7.439 6.520 6.538 1.00 10.00 C
+ATOM 6 CG ASN A 35 7.597 5.465 7.487 1.00 10.00 C
+ATOM 7 OD1 ASN A 35 6.743 4.980 8.032 1.00 10.00 O
+ATOM 8 ND2 ASN A 35 8.841 4.827 7.318 1.00 10.00 N
+ATOM 9 HA ASN A 35 6.387 7.612 7.973 1.00 10.00 H
+ATOM 10 HB2 ASN A 35 7.452 6.464 5.548 1.00 10.00 H
+ATOM 11 HB3 ASN A 35 8.153 7.444 6.485 1.00 10.00 H
+ATOM 12 HD21 ASN A 35 9.022 4.464 7.804 1.00 10.00 H
+ATOM 13 HD22 ASN A 35 9.521 5.284 7.192 1.00 10.00 H
+"""
+# Aspartic Acid
+pdb_str_04 = """
+CRYST1 14.178 13.514 11.978 90.00 90.00 90.00 P 1
+SCALE1 0.070532 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.073997 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.083486 0.00000
+ATOM 1 N ASP A 121 4.844 6.380 4.967 1.00 10.00 N
+ATOM 2 CA ASP A 121 6.237 6.469 5.750 1.00 10.00 C
+ATOM 3 C ASP A 121 5.959 7.525 7.138 1.00 10.00 C
+ATOM 4 O ASP A 121 5.683 8.452 6.797 1.00 10.00 O
+ATOM 5 CB ASP A 121 7.582 6.234 5.277 1.00 10.00 C
+ATOM 6 CG ASP A 121 8.550 6.163 6.136 1.00 10.00 C
+ATOM 7 OD1 ASP A 121 9.035 5.174 6.337 1.00 10.00 O
+ATOM 8 OD2 ASP A 121 9.115 7.253 6.644 1.00 10.00 O
+ATOM 9 HA ASP A 121 6.173 5.442 6.266 1.00 10.00 H
+ATOM 10 HB2 ASP A 121 7.509 5.748 4.630 1.00 10.00 H
+ATOM 11 HB3 ASP A 121 7.714 7.340 4.588 1.00 10.00 H
+"""
+# Cysteine
+pdb_str_05 = """
+CRYST1 12.081 11.399 14.639 90.00 90.00 90.00 P 1
+SCALE1 0.082775 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.087727 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.068311 0.00000
+ATOM 1 N CYS A 96 4.823 5.221 7.409 1.00 10.00 N
+ATOM 2 CA CYS A 96 6.273 5.028 7.456 1.00 10.00 C
+ATOM 3 C CYS A 96 6.932 5.026 9.008 1.00 10.00 C
+ATOM 4 O CYS A 96 7.163 5.942 9.454 1.00 10.00 O
+ATOM 5 CB CYS A 96 6.905 6.223 6.813 1.00 10.00 C
+ATOM 6 SG CYS A 96 6.265 6.407 5.142 1.00 10.00 S
+ATOM 7 HA CYS A 96 6.714 4.104 6.960 1.00 10.00 H
+ATOM 8 HB2 CYS A 96 6.849 7.034 6.999 1.00 10.00 H
+ATOM 9 HB3 CYS A 96 8.130 6.106 6.575 1.00 10.00 H
+ATOM 10 HG CYS A 96 6.882 7.238 4.630 1.00 10.00 H
+"""
+# Glutamine
+pdb_str_06 = """
+CRYST1 14.547 13.375 15.374 90.00 90.00 90.00 P 1
+SCALE1 0.068743 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.074766 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.065045 0.00000
+ATOM 1 N GLN A 70 6.344 7.129 5.035 1.00 10.00 N
+ATOM 2 CA GLN A 70 6.644 6.208 6.336 1.00 10.00 C
+ATOM 3 C GLN A 70 5.352 6.178 6.970 1.00 10.00 C
+ATOM 4 O GLN A 70 5.126 4.898 7.373 1.00 10.00 O
+ATOM 5 CB GLN A 70 7.877 6.998 7.230 1.00 10.00 C
+ATOM 6 CG GLN A 70 7.974 6.681 8.575 1.00 10.00 C
+ATOM 7 CD GLN A 70 9.249 7.237 9.063 1.00 10.00 C
+ATOM 8 OE1 GLN A 70 9.559 8.209 8.935 1.00 10.00 O
+ATOM 9 NE2 GLN A 70 9.506 6.762 10.402 1.00 10.00 N
+ATOM 10 HA GLN A 70 7.249 5.584 6.195 1.00 10.00 H
+ATOM 11 HB2 GLN A 70 8.663 7.126 6.476 1.00 10.00 H
+ATOM 12 HB3 GLN A 70 7.331 8.179 7.116 1.00 10.00 H
+ATOM 13 HG2 GLN A 70 7.234 6.385 8.986 1.00 10.00 H
+ATOM 14 HG3 GLN A 70 8.549 5.809 8.279 1.00 10.00 H
+ATOM 15 HE21 GLN A 70 9.114 6.119 10.657 1.00 10.00 H
+ATOM 16 HE22 GLN A 70 10.235 7.102 10.671 1.00 10.00 H
+"""
+# Glutamic Acid
+pdb_str_07 = """
+CRYST1 15.127 14.767 13.161 90.00 90.00 90.00 P 1
+SCALE1 0.066107 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.067719 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.075982 0.00000
+ATOM 1 N GLU A 24 9.022 8.042 4.852 1.00 10.00 N
+ATOM 2 CA GLU A 24 8.611 8.384 6.596 1.00 10.00 C
+ATOM 3 C GLU A 24 9.851 8.805 7.028 1.00 10.00 C
+ATOM 4 O GLU A 24 10.208 9.672 7.827 1.00 10.00 O
+ATOM 5 CB GLU A 24 8.163 7.285 7.084 1.00 10.00 C
+ATOM 6 CG GLU A 24 6.610 6.769 6.720 1.00 10.00 C
+ATOM 7 CD GLU A 24 6.069 5.633 7.216 1.00 10.00 C
+ATOM 8 OE1 GLU A 24 5.180 5.275 7.007 1.00 10.00 O
+ATOM 9 OE2 GLU A 24 6.826 5.071 8.182 1.00 10.00 O
+ATOM 10 HA GLU A 24 8.239 8.942 6.618 1.00 10.00 H
+ATOM 11 HB2 GLU A 24 8.834 6.577 7.107 1.00 10.00 H
+ATOM 12 HB3 GLU A 24 8.074 7.246 7.880 1.00 10.00 H
+ATOM 13 HG2 GLU A 24 5.925 7.518 6.600 1.00 10.00 H
+ATOM 14 HG3 GLU A 24 6.944 6.683 5.520 1.00 10.00 H
+"""
+# Glycine
+pdb_str_08 = """
+CRYST1 13.147 11.167 10.709 90.00 90.00 90.00 P 1
+SCALE1 0.076063 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.089550 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.093379 0.00000
+ATOM 1 N GLY B 93 8.304 6.036 5.544 1.00 10.00 N
+ATOM 2 CA GLY B 93 7.319 4.905 5.595 1.00 10.00 C
+ATOM 3 C GLY B 93 5.882 5.364 4.847 1.00 10.00 C
+ATOM 4 O GLY B 93 5.143 5.776 5.738 1.00 10.00 O
+ATOM 5 HA2 GLY B 93 7.870 4.339 5.372 1.00 10.00 H
+ATOM 6 HA3 GLY B 93 7.123 4.618 6.529 1.00 10.00 H
+"""
+
+# Histidine
+pdb_str_09 = """
+CRYST1 12.286 14.857 15.512 90.00 90.00 90.00 P 1
+SCALE1 0.081393 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.067308 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.064466 0.00000
+ATOM 1 N HIS A 34 7.292 7.714 9.065 1.00 10.00 N
+ATOM 2 CA HIS A 34 6.363 8.592 8.255 1.00 10.00 C
+ATOM 3 C HIS A 34 6.024 9.792 9.401 1.00 10.00 C
+ATOM 4 O HIS A 34 6.246 9.507 10.701 1.00 10.00 O
+ATOM 5 CB HIS A 34 4.951 8.082 8.105 1.00 10.00 C
+ATOM 6 CG HIS A 34 5.323 6.839 7.073 1.00 10.00 C
+ATOM 7 ND1 HIS A 34 5.021 7.108 5.763 1.00 10.00 N
+ATOM 8 CD2 HIS A 34 5.317 5.623 7.295 1.00 10.00 C
+ATOM 9 CE1 HIS A 34 5.333 5.771 5.081 1.00 10.00 C
+ATOM 10 NE2 HIS A 34 5.601 4.927 6.077 1.00 10.00 N
+ATOM 11 HA HIS A 34 6.539 9.000 7.667 1.00 10.00 H
+ATOM 12 HB2 HIS A 34 4.722 7.760 8.940 1.00 10.00 H
+ATOM 13 HB3 HIS A 34 4.532 8.544 7.770 1.00 10.00 H
+ATOM 14 HD2 HIS A 34 5.433 5.063 7.987 1.00 10.00 H
+ATOM 15 HE1 HIS A 34 5.162 5.891 3.986 1.00 10.00 H
+"""
+# Isoleucine
+pdb_str_10 = """
+CRYST1 14.040 13.236 13.685 90.00 90.00 90.00 P 1
+SCALE1 0.071225 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075552 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.073073 0.00000
+ATOM 1 N ILE B 81 6.774 6.654 8.528 1.00 10.00 N
+ATOM 2 CA ILE B 81 6.248 6.915 7.265 1.00 10.00 C
+ATOM 3 C ILE B 81 5.064 5.915 6.912 1.00 10.00 C
+ATOM 4 O ILE B 81 4.891 4.882 7.591 1.00 10.00 O
+ATOM 5 CB ILE B 81 7.374 7.060 6.201 1.00 10.00 C
+ATOM 6 CG1 ILE B 81 7.928 5.644 6.013 1.00 10.00 C
+ATOM 7 CG2 ILE B 81 8.450 8.146 6.766 1.00 10.00 C
+ATOM 8 CD1 ILE B 81 9.014 5.797 4.814 1.00 10.00 C
+ATOM 9 HA ILE B 81 5.805 7.933 7.605 1.00 10.00 H
+ATOM 10 HB ILE B 81 6.968 7.172 5.320 1.00 10.00 H
+ATOM 11 HG12 ILE B 81 8.488 5.662 7.117 1.00 10.00 H
+ATOM 12 HG13 ILE B 81 7.287 4.921 5.901 1.00 10.00 H
+ATOM 13 HG21 ILE B 81 8.841 8.468 5.740 1.00 10.00 H
+ATOM 14 HG22 ILE B 81 7.916 9.169 6.877 1.00 10.00 H
+ATOM 15 HG23 ILE B 81 8.650 8.115 7.619 1.00 10.00 H
+ATOM 16 HD11 ILE B 81 9.263 4.839 4.994 1.00 10.00 H
+ATOM 17 HD12 ILE B 81 8.679 5.953 4.216 1.00 10.00 H
+ATOM 18 HD13 ILE B 81 9.551 6.406 5.137 1.00 10.00 H
+"""
+
+# Leucine
+pdb_str_11 = """
+CRYST1 13.550 15.138 12.702 90.00 90.00 90.00 P 1
+SCALE1 0.073801 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.066059 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.078728 0.00000
+ATOM 1 N LEU B 94 6.273 6.593 4.935 1.00 10.00 N
+ATOM 2 CA LEU B 94 7.641 7.224 5.628 1.00 10.00 C
+ATOM 3 C LEU B 94 8.422 6.084 6.113 1.00 10.00 C
+ATOM 4 O LEU B 94 8.638 5.157 5.672 1.00 10.00 O
+ATOM 5 CB LEU B 94 7.066 8.117 6.861 1.00 10.00 C
+ATOM 6 CG LEU B 94 6.206 9.526 6.450 1.00 10.00 C
+ATOM 7 CD1 LEU B 94 5.918 10.237 7.727 1.00 10.00 C
+ATOM 8 CD2 LEU B 94 4.891 9.251 5.577 1.00 10.00 C
+ATOM 9 HA LEU B 94 7.928 7.858 4.837 1.00 10.00 H
+ATOM 10 HB2 LEU B 94 6.600 7.347 7.185 1.00 10.00 H
+ATOM 11 HB3 LEU B 94 7.833 8.235 7.219 1.00 10.00 H
+ATOM 12 HG LEU B 94 7.048 9.715 5.954 1.00 10.00 H
+ATOM 13 HD11 LEU B 94 5.564 11.132 7.460 1.00 10.00 H
+ATOM 14 HD12 LEU B 94 5.689 9.764 8.196 1.00 10.00 H
+ATOM 15 HD13 LEU B 94 6.901 10.482 8.316 1.00 10.00 H
+ATOM 16 HD21 LEU B 94 4.622 9.894 5.701 1.00 10.00 H
+ATOM 17 HD22 LEU B 94 5.223 8.782 4.700 1.00 10.00 H
+ATOM 18 HD23 LEU B 94 4.327 8.453 6.346 1.00 10.00 H
+"""
+
+# Lysine
+pdb_str_12 = """
+CRYST1 14.470 17.497 11.416 90.00 90.00 90.00 P 1
+SCALE1 0.069109 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.057153 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.087596 0.00000
+ATOM 1 N LYS A 76 4.981 10.159 4.860 1.00 10.00 N
+ATOM 2 CA LYS A 76 5.876 10.071 6.050 1.00 10.00 C
+ATOM 3 C LYS A 76 6.304 11.829 6.325 1.00 10.00 C
+ATOM 4 O LYS A 76 5.161 12.466 6.576 1.00 10.00 O
+ATOM 5 CB LYS A 76 7.337 9.388 5.906 1.00 10.00 C
+ATOM 6 CG LYS A 76 7.118 7.831 5.788 1.00 10.00 C
+ATOM 7 CD LYS A 76 8.453 7.428 5.736 1.00 10.00 C
+ATOM 8 CE LYS A 76 8.134 5.835 5.433 1.00 10.00 C
+ATOM 9 NZ LYS A 76 9.426 4.919 5.392 1.00 10.00 N
+ATOM 10 HA LYS A 76 5.397 10.002 6.803 1.00 10.00 H
+ATOM 11 HB2 LYS A 76 7.655 9.920 5.112 1.00 10.00 H
+ATOM 12 HB3 LYS A 76 7.624 9.427 6.543 1.00 10.00 H
+ATOM 13 HG2 LYS A 76 6.592 7.548 6.676 1.00 10.00 H
+ATOM 14 HG3 LYS A 76 6.469 7.536 5.090 1.00 10.00 H
+ATOM 15 HD2 LYS A 76 8.768 7.405 4.630 1.00 10.00 H
+ATOM 16 HD3 LYS A 76 9.025 7.220 6.546 1.00 10.00 H
+ATOM 17 HE2 LYS A 76 7.580 5.564 6.304 1.00 10.00 H
+ATOM 18 HE3 LYS A 76 7.440 5.632 4.831 1.00 10.00 H
+ATOM 19 HZ1 LYS A 76 9.379 4.186 5.442 1.00 10.00 H
+ATOM 20 HZ2 LYS A 76 9.725 5.254 4.549 1.00 10.00 H
+ATOM 21 HZ3 LYS A 76 9.965 5.006 6.093 1.00 10.00 H
+"""
+
+# Methionine
+pdb_str_13 = """
+CRYST1 13.775 12.351 15.645 90.00 90.00 90.00 P 1
+SCALE1 0.072595 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.080965 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.063918 0.00000
+ATOM 1 N MET B 37 7.603 5.375 6.446 1.00 10.00 N
+ATOM 2 CA MET B 37 6.723 6.349 6.607 1.00 10.00 C
+ATOM 3 C MET B 37 6.323 7.146 5.241 1.00 10.00 C
+ATOM 4 O MET B 37 5.062 7.131 4.970 1.00 10.00 O
+ATOM 5 CB MET B 37 6.932 7.378 7.483 1.00 10.00 C
+ATOM 6 CG MET B 37 7.258 6.900 9.095 1.00 10.00 C
+ATOM 7 SD MET B 37 8.785 5.488 9.096 1.00 10.00 S
+ATOM 8 CE MET B 37 8.590 5.149 10.517 1.00 10.00 C
+ATOM 9 HA MET B 37 5.885 6.031 6.839 1.00 10.00 H
+ATOM 10 HB2 MET B 37 7.862 7.670 7.351 1.00 10.00 H
+ATOM 11 HB3 MET B 37 6.364 7.936 7.854 1.00 10.00 H
+ATOM 12 HG2 MET B 37 7.509 7.571 9.764 1.00 10.00 H
+ATOM 13 HG3 MET B 37 6.614 6.240 9.246 1.00 10.00 H
+ATOM 14 HE1 MET B 37 9.624 4.355 10.601 1.00 10.00 H
+ATOM 15 HE2 MET B 37 9.070 5.811 11.280 1.00 10.00 H
+ATOM 16 HE3 MET B 37 8.003 4.499 11.109 1.00 10.00 H
+"""
+
+# Phenylanaline
+pdb_str_14 = """
+CRYST1 11.802 16.578 13.976 90.00 90.00 90.00 P 1
+SCALE1 0.084731 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.060321 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.071551 0.00000
+ATOM 1 N PHE A 63 6.412 9.770 7.572 1.00 10.00 N
+ATOM 2 CA PHE A 63 6.289 9.157 6.198 1.00 10.00 C
+ATOM 3 C PHE A 63 6.292 10.223 5.110 1.00 10.00 C
+ATOM 4 O PHE A 63 6.451 11.437 5.241 1.00 10.00 O
+ATOM 5 CB PHE A 63 5.580 8.319 6.063 1.00 10.00 C
+ATOM 6 CG PHE A 63 5.743 6.958 6.849 1.00 10.00 C
+ATOM 7 CD1 PHE A 63 6.569 6.117 6.768 1.00 10.00 C
+ATOM 8 CD2 PHE A 63 5.050 7.055 8.045 1.00 10.00 C
+ATOM 9 CE1 PHE A 63 6.802 5.054 7.620 1.00 10.00 C
+ATOM 10 CE2 PHE A 63 5.331 6.153 8.840 1.00 10.00 C
+ATOM 11 CZ PHE A 63 6.270 5.103 8.840 1.00 10.00 C
+ATOM 12 HA PHE A 63 7.224 9.004 5.959 1.00 10.00 H
+ATOM 13 HB2 PHE A 63 4.619 8.277 5.936 1.00 10.00 H
+ATOM 14 HB3 PHE A 63 5.713 7.612 5.105 1.00 10.00 H
+ATOM 15 HD1 PHE A 63 7.301 6.004 5.919 1.00 10.00 H
+ATOM 16 HD2 PHE A 63 4.436 7.641 8.314 1.00 10.00 H
+ATOM 17 HE1 PHE A 63 7.224 4.307 7.397 1.00 10.00 H
+ATOM 18 HE2 PHE A 63 4.727 6.172 9.862 1.00 10.00 H
+ATOM 19 HZ PHE A 63 6.045 4.444 9.418 1.00 10.00 H
+"""
+
+# Proline
+pdb_str_15 = """
+CRYST1 12.293 14.006 12.486 90.00 90.00 90.00 P 1
+SCALE1 0.081347 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.071398 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.080090 0.00000
+ATOM 1 N PRO A 4 4.920 7.325 6.411 1.00 10.00 N
+ATOM 2 CA PRO A 4 6.162 6.834 5.666 1.00 10.00 C
+ATOM 3 C PRO A 4 6.405 5.341 5.894 1.00 10.00 C
+ATOM 4 O PRO A 4 7.098 4.853 4.957 1.00 10.00 O
+ATOM 5 CB PRO A 4 7.380 7.894 6.618 1.00 10.00 C
+ATOM 6 CG PRO A 4 6.640 8.868 7.204 1.00 10.00 C
+ATOM 7 CD PRO A 4 5.415 8.476 7.560 1.00 10.00 C
+ATOM 8 HA PRO A 4 6.250 7.067 4.776 1.00 10.00 H
+ATOM 9 HB2 PRO A 4 7.921 7.337 7.346 1.00 10.00 H
+ATOM 10 HB3 PRO A 4 8.016 8.080 5.830 1.00 10.00 H
+ATOM 11 HG2 PRO A 4 7.167 9.579 7.723 1.00 10.00 H
+ATOM 12 HG3 PRO A 4 6.492 9.649 6.528 1.00 10.00 H
+ATOM 13 HD2 PRO A 4 5.306 8.082 8.255 1.00 10.00 H
+ATOM 14 HD3 PRO A 4 4.496 9.094 7.222 1.00 10.00 H
+"""
+
+# Serine
+pdb_str_16 = """
+CRYST1 12.893 12.708 12.721 90.00 90.00 90.00 P 1
+SCALE1 0.077561 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.078691 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.078610 0.00000
+ATOM 1 N SER A 73 5.347 5.750 5.075 1.00 10.00 N
+ATOM 2 CA SER A 73 5.894 5.594 6.421 1.00 10.00 C
+ATOM 3 C SER A 73 5.946 7.282 6.996 1.00 10.00 C
+ATOM 4 O SER A 73 5.026 7.627 7.452 1.00 10.00 O
+ATOM 5 CB SER A 73 7.501 5.019 6.235 1.00 10.00 C
+ATOM 6 OG SER A 73 8.063 4.929 7.844 1.00 10.00 O
+ATOM 7 HA SER A 73 5.300 5.295 7.021 1.00 10.00 H
+ATOM 8 HB2 SER A 73 7.399 4.067 6.115 1.00 10.00 H
+ATOM 9 HB3 SER A 73 8.072 5.776 5.734 1.00 10.00 H
+ATOM 10 HG SER A 73 8.499 4.647 7.768 1.00 10.00 H
+"""
+
+# Threonine
+pdb_str_17 = """
+CRYST1 11.909 12.199 14.459 90.00 90.00 90.00 P 1
+SCALE1 0.083970 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.081974 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.069161 0.00000
+ATOM 1 N THR A 68 6.967 7.035 7.598 1.00 10.00 N
+ATOM 2 CA THR A 68 5.580 6.835 7.409 1.00 10.00 C
+ATOM 3 C THR A 68 4.981 6.180 8.674 1.00 10.00 C
+ATOM 4 O THR A 68 6.079 5.829 9.469 1.00 10.00 O
+ATOM 5 CB THR A 68 5.071 6.452 6.355 1.00 10.00 C
+ATOM 6 OG1 THR A 68 5.819 5.087 6.249 1.00 10.00 O
+ATOM 7 CG2 THR A 68 5.178 7.219 5.045 1.00 10.00 C
+ATOM 8 HA THR A 68 4.978 7.946 7.649 1.00 10.00 H
+ATOM 9 HB THR A 68 3.853 6.156 6.182 1.00 10.00 H
+ATOM 10 HG1 THR A 68 6.272 5.006 6.437 1.00 10.00 H
+ATOM 11 HG21 THR A 68 5.183 6.722 4.241 1.00 10.00 H
+ATOM 12 HG22 THR A 68 4.943 8.119 5.225 1.00 10.00 H
+ATOM 13 HG23 THR A 68 6.305 7.117 4.778 1.00 10.00 H
+"""
+
+# Triptophane
+pdb_str_18 = """
+CRYST1 12.502 12.982 18.312 90.00 90.00 90.00 P 1
+SCALE1 0.079987 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.077030 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.054609 0.00000
+ATOM 1 N TRP A 49 7.019 6.036 6.855 1.00 10.00 N
+ATOM 2 CA TRP A 49 6.009 5.654 7.261 1.00 10.00 C
+ATOM 3 C TRP A 49 5.132 5.145 5.877 1.00 10.00 C
+ATOM 4 O TRP A 49 5.267 5.983 5.027 1.00 10.00 O
+ATOM 5 CB TRP A 49 5.058 6.563 8.316 1.00 10.00 C
+ATOM 6 CG TRP A 49 6.065 6.967 9.207 1.00 10.00 C
+ATOM 7 CD1 TRP A 49 6.863 7.994 9.455 1.00 10.00 C
+ATOM 8 CD2 TRP A 49 5.959 6.505 10.743 1.00 10.00 C
+ATOM 9 NE1 TRP A 49 7.435 8.004 10.831 1.00 10.00 N
+ATOM 10 CE2 TRP A 49 6.803 7.200 11.335 1.00 10.00 C
+ATOM 11 CE3 TRP A 49 5.119 5.187 11.318 1.00 10.00 C
+ATOM 12 CZ2 TRP A 49 7.129 6.620 12.976 1.00 10.00 C
+ATOM 13 CZ3 TRP A 49 5.299 5.155 12.457 1.00 10.00 C
+ATOM 14 CH2 TRP A 49 6.374 5.658 13.211 1.00 10.00 C
+ATOM 15 HA TRP A 49 6.139 4.842 7.608 1.00 10.00 H
+ATOM 16 HB2 TRP A 49 5.070 7.319 7.481 1.00 10.00 H
+ATOM 17 HB3 TRP A 49 4.305 6.336 8.251 1.00 10.00 H
+ATOM 18 HD1 TRP A 49 7.226 8.582 8.796 1.00 10.00 H
+ATOM 19 HE1 TRP A 49 8.120 8.555 10.929 1.00 10.00 H
+ATOM 20 HE3 TRP A 49 4.311 5.074 10.564 1.00 10.00 H
+ATOM 21 HZ2 TRP A 49 7.806 7.092 13.214 1.00 10.00 H
+ATOM 22 HZ3 TRP A 49 4.914 4.129 12.933 1.00 10.00 H
+ATOM 23 HH2 TRP A 49 6.353 5.513 14.064 1.00 10.00 H
+"""
+
+# Tyrosine
+pdb_str_19 = """
+CRYST1 17.955 13.272 13.095 90.00 90.00 90.00 P 1
+SCALE1 0.055695 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.075347 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076365 0.00000
+ATOM 1 N TYR A 139 10.057 7.968 5.049 1.00 10.00 N
+ATOM 2 CA TYR A 139 10.657 7.531 6.379 1.00 10.00 C
+ATOM 3 C TYR A 139 12.203 7.725 6.416 1.00 10.00 C
+ATOM 4 O TYR A 139 12.999 8.272 7.373 1.00 10.00 O
+ATOM 5 CB TYR A 139 10.644 6.145 6.711 1.00 10.00 C
+ATOM 6 CG TYR A 139 9.159 5.899 6.690 1.00 10.00 C
+ATOM 7 CD1 TYR A 139 8.503 5.230 5.513 1.00 10.00 C
+ATOM 8 CD2 TYR A 139 8.317 6.046 8.121 1.00 10.00 C
+ATOM 9 CE1 TYR A 139 6.876 4.938 5.643 1.00 10.00 C
+ATOM 10 CE2 TYR A 139 7.209 5.706 8.077 1.00 10.00 C
+ATOM 11 CZ TYR A 139 6.420 5.365 6.855 1.00 10.00 C
+ATOM 12 OH TYR A 139 5.027 4.949 7.088 1.00 10.00 O
+ATOM 13 HA TYR A 139 10.303 8.174 6.785 1.00 10.00 H
+ATOM 14 HB2 TYR A 139 10.989 5.647 5.882 1.00 10.00 H
+ATOM 15 HB3 TYR A 139 10.828 5.883 7.586 1.00 10.00 H
+ATOM 16 HD1 TYR A 139 8.618 5.356 4.741 1.00 10.00 H
+ATOM 17 HD2 TYR A 139 8.841 6.121 8.546 1.00 10.00 H
+ATOM 18 HE1 TYR A 139 6.432 5.030 4.892 1.00 10.00 H
+ATOM 19 HE2 TYR A 139 6.780 5.619 9.066 1.00 10.00 H
+ATOM 20 HH TYR A 139 4.693 5.141 7.840 1.00 10.00 H
+"""
+
+# Valine
+pdb_str_20 = """
+CRYST1 12.396 13.122 13.130 90.00 90.00 90.00 P 1
+SCALE1 0.080671 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.076208 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.076161 0.00000
+ATOM 1 N VAL B 78 4.820 5.520 7.634 1.00 10.00 N
+ATOM 2 CA VAL B 78 6.105 5.869 7.138 1.00 10.00 C
+ATOM 3 C VAL B 78 6.717 7.176 8.084 1.00 10.00 C
+ATOM 4 O VAL B 78 5.750 8.012 8.022 1.00 10.00 O
+ATOM 5 CB VAL B 78 6.029 6.374 5.701 1.00 10.00 C
+ATOM 6 CG1 VAL B 78 5.673 4.961 4.874 1.00 10.00 C
+ATOM 7 CG2 VAL B 78 7.349 6.810 5.233 1.00 10.00 C
+ATOM 8 HA VAL B 78 7.125 5.144 7.411 1.00 10.00 H
+ATOM 9 HB VAL B 78 5.404 6.962 5.498 1.00 10.00 H
+ATOM 10 HG11 VAL B 78 5.583 5.210 4.024 1.00 10.00 H
+ATOM 11 HG12 VAL B 78 6.062 4.120 5.126 1.00 10.00 H
+ATOM 12 HG13 VAL B 78 4.907 4.924 5.317 1.00 10.00 H
+ATOM 13 HG21 VAL B 78 7.299 7.038 4.409 1.00 10.00 H
+ATOM 14 HG22 VAL B 78 7.542 7.634 5.823 1.00 10.00 H
+ATOM 15 HG23 VAL B 78 7.889 5.963 5.346 1.00 10.00 H
+"""
+
+pdb_list = [pdb_str_01, pdb_str_02, pdb_str_03, pdb_str_04, pdb_str_05,
+ pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09, pdb_str_10, pdb_str_11,
+ pdb_str_12, pdb_str_13, pdb_str_14, pdb_str_15, pdb_str_16, pdb_str_17,
+ pdb_str_18, pdb_str_19, pdb_str_20]
+#
+pdb_list_name = ['pdb_str_01', 'pdb_str_02', 'pdb_str_03', 'pdb_str_04', 'pdb_str_05',
+ 'pdb_str_06', 'pdb_str_07', 'pdb_str_08', 'pdb_str_09', 'pdb_str_10', 'pdb_str_11',
+ 'pdb_str_12', 'pdb_str_13', 'pdb_str_14', 'pdb_str_15', 'pdb_str_16', 'pdb_str_17',
+ 'pdb_str_18', 'pdb_str_19', 'pdb_str_20']
+
+#pdb_list = [pdb_str_02]
+#pdb_list_name = ['pdb_str_02']
+
+def run():
+ for idealize in [True, False]:
+ for pdb_str, str_name in zip(pdb_list,pdb_list_name):
+ #print 'pdb_string:', str_name, 'idealize =', idealize
+ exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
+
+
+if (__name__ == "__main__"):
+ t0 = time.time()
+ run()
+ #run(sys.argv[1:])
+ print "OK. Time:", round(time.time()-t0, 2), "seconds"
Copied: trunk/mmtbx/hydrogens/tst_fd_3.py (from rev 25751, trunk/mmtbx/hydrogens/tst_run_fd_3.py)
===================================================================
--- trunk/mmtbx/hydrogens/tst_fd_3.py (rev 0)
+++ trunk/mmtbx/hydrogens/tst_fd_3.py 2016-11-19 00:11:50 UTC (rev 25754)
@@ -0,0 +1,418 @@
+from __future__ import division
+import time
+from cctbx.array_family import flex
+from mmtbx import monomer_library
+import mmtbx.monomer_library.server
+import mmtbx.monomer_library.pdb_interpretation
+from libtbx.test_utils import approx_equal
+from mmtbx.hydrogens import riding
+from mmtbx.hydrogens import modify_gradients
+
+def exercise(pdb_str, eps, idealize):
+ mon_lib_srv = monomer_library.server.server()
+ ener_lib = monomer_library.server.ener_lib()
+ processed_pdb_file = monomer_library.pdb_interpretation.process(
+ mon_lib_srv = mon_lib_srv,
+ ener_lib = ener_lib,
+ raw_records = pdb_str,
+ force_symmetry = True)
+ pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
+ xray_structure = processed_pdb_file.xray_structure()
+ sites_cart = xray_structure.sites_cart()
+ geometry = processed_pdb_file.geometry_restraints_manager(
+ show_energies = False,
+ plain_pairs_radius = 5.0)
+
+ es = geometry.energies_sites(
+ sites_cart = sites_cart,
+ compute_gradients = True)
+ g_analytical = es.gradients
+#
+ riding_h_manager = riding.manager(
+ hierarchy = pdb_hierarchy,
+ geometry_restraints = geometry,
+ crystal_symmetry = xray_structure.crystal_symmetry())
+
+ h_parameterization = riding_h_manager.h_parameterization
+
+ riding_h_manager.idealize_hydrogens(
+ hierarchy=pdb_hierarchy,
+ xray_structure=xray_structure)
+ #sites_cart = pdb_hierarchy.atoms().extract_xyz()
+ sites_cart = xray_structure.sites_cart()
+
+ #for i in g_analytical:
+ # print i
+ #print '----------'
+ g_analytical = geometry.energies_sites(
+ sites_cart = sites_cart, compute_gradients = True).gradients
+ modify_gradients.modify_gradients(
+ sites_cart = sites_cart,
+ h_parameterization = h_parameterization,
+ grads = g_analytical)
+ #
+ ex = [eps,0,0]
+ ey = [0,eps,0]
+ ez = [0,0,eps]
+ g_fd = flex.vec3_double()
+ for i_site in xrange(sites_cart.size()):
+ g_fd_i = []
+ for e in [ex,ey,ez]:
+ ts = []
+ for sign in [-1,1]:
+ sites_cart_ = sites_cart.deep_copy()
+ sites_cart_[i_site] = [
+ sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
+ # after shift, recalculate H position
+ riding_h_manager.idealize_hydrogens_sc_inplace(
+ sites_cart=sites_cart_)
+ ts.append(geometry.energies_sites(
+ sites_cart = sites_cart_,
+ compute_gradients = False).target)
+ g_fd_i.append((ts[1]-ts[0])/(2*eps))
+ g_fd.append(g_fd_i)
+ #
+ for g1, g2 in zip(g_analytical, g_fd):
+ #print g1,g2
+ assert approx_equal(g1,g2, 1.e-4)
+ #print '*'*79
+
+pdb_str = """
+CRYST1 30.000 30.000 30.000 90.00 90.00 90.00 P 1
+SCALE1 0.033333 0.000000 0.000000 0.00000
+SCALE2 0.000000 0.033333 0.000000 0.00000
+SCALE3 0.000000 0.000000 0.033333 0.00000
+ATOM 1 N ARG A 2 3.050 19.481 25.856 1.00 0.00 N
+ATOM 2 CA ARG A 2 3.759 20.265 24.852 1.00 0.00 C
+ATOM 3 C ARG A 2 5.253 20.304 25.155 1.00 0.00 C
+ATOM 4 O ARG A 2 5.659 20.516 26.298 1.00 0.00 O
+ATOM 5 CB ARG A 2 3.197 21.687 24.787 1.00 0.00 C
+ATOM 6 CG ARG A 2 3.800 22.542 23.684 1.00 0.00 C
+ATOM 7 CD ARG A 2 3.128 23.904 23.607 1.00 0.00 C
+ATOM 8 NE ARG A 2 3.721 24.751 22.576 1.00 0.00 N
+ATOM 9 CZ ARG A 2 3.311 25.983 22.290 1.00 0.00 C
+ATOM 10 NH1 ARG A 2 2.301 26.525 22.957 1.00 0.00 N1+
+ATOM 11 NH2 ARG A 2 3.914 26.676 21.334 1.00 0.00 N
+ATOM 12 HA ARG A 2 3.638 19.852 23.983 1.00 0.00 H
+ATOM 13 HB2 ARG A 2 2.240 21.637 24.633 1.00 0.00 H
+ATOM 14 HB3 ARG A 2 3.370 22.129 25.633 1.00 0.00 H
+ATOM 15 HG2 ARG A 2 4.743 22.680 23.864 1.00 0.00 H
+ATOM 16 HG3 ARG A 2 3.682 22.096 22.831 1.00 0.00 H
+ATOM 17 HD2 ARG A 2 2.189 23.783 23.396 1.00 0.00 H
+ATOM 18 HD3 ARG A 2 3.224 24.355 24.460 1.00 0.00 H
+ATOM 19 HE ARG A 2 4.380 24.432 22.124 1.00 0.00 H
+ATOM 20 HH11 ARG A 2 1.905 26.082 23.579 1.00 0.00 H
+ATOM 21 HH12 ARG A 2 2.041 27.322 22.767 1.00 0.00 H
+ATOM 22 HH21 ARG A 2 4.569 26.329 20.898 1.00 0.00 H
+ATOM 23 HH22 ARG A 2 3.649 27.473 21.149 1.00 0.00 H
+ATOM 24 N HIS A 3 6.067 20.098 24.123 1.00 0.00 N
+ATOM 25 CA HIS A 3 7.516 20.107 24.260 1.00 0.00 C
+ATOM 26 C HIS A 3 8.133 20.732 23.018 1.00 0.00 C
+ATOM 27 O HIS A 3 7.638 20.536 21.904 1.00 0.00 O
+ATOM 28 CB HIS A 3 8.069 18.691 24.464 1.00 0.00 C
+ATOM 29 CG HIS A 3 7.630 18.050 25.743 1.00 0.00 C
+ATOM 30 ND1 HIS A 3 8.154 18.399 26.969 1.00 0.00 N
+ATOM 31 CD2 HIS A 3 6.716 17.080 25.988 1.00 0.00 C
+ATOM 32 CE1 HIS A 3 7.582 17.674 27.913 1.00 0.00 C
+ATOM 33 NE2 HIS A 3 6.706 16.865 27.344 1.00 0.00 N
+ATOM 34 H HIS A 3 5.797 19.948 23.320 1.00 0.00 H
+ATOM 35 HA HIS A 3 7.764 20.646 25.027 1.00 0.00 H
+ATOM 36 HB2 HIS A 3 7.768 18.129 23.732 1.00 0.00 H
+ATOM 37 HB3 HIS A 3 9.038 18.731 24.470 1.00 0.00 H
+ATOM 38 HD2 HIS A 3 6.194 16.642 25.355 1.00 0.00 H
+ATOM 39 HE1 HIS A 3 7.765 17.723 28.824 1.00 0.00 H
+ATOM 40 N LYS A 4 9.213 21.483 23.217 1.00 0.00 N
+ATOM 41 CA LYS A 4 9.902 22.139 22.116 1.00 0.00 C
+ATOM 42 C LYS A 4 11.340 22.409 22.530 1.00 0.00 C
+ATOM 43 O LYS A 4 11.602 22.774 23.678 1.00 0.00 O
+ATOM 44 CB LYS A 4 9.205 23.447 21.722 1.00 0.00 C
+ATOM 45 CG LYS A 4 9.799 24.121 20.495 1.00 0.00 C
+ATOM 46 CD LYS A 4 9.008 25.357 20.102 1.00 0.00 C
+ATOM 47 CE LYS A 4 9.606 26.035 18.880 1.00 0.00 C
+ATOM 48 NZ LYS A 4 8.842 27.250 18.484 1.00 0.00 N1+
+ATOM 49 H LYS A 4 9.568 21.628 23.987 1.00 0.00 H
+ATOM 50 HA LYS A 4 9.909 21.551 21.344 1.00 0.00 H
+ATOM 51 HB2 LYS A 4 8.272 23.258 21.533 1.00 0.00 H
+ATOM 52 HB3 LYS A 4 9.270 24.070 22.462 1.00 0.00 H
+ATOM 53 HG2 LYS A 4 10.710 24.392 20.688 1.00 0.00 H
+ATOM 54 HG3 LYS A 4 9.784 23.500 19.750 1.00 0.00 H
+ATOM 55 HD2 LYS A 4 8.096 25.101 19.892 1.00 0.00 H
+ATOM 56 HD3 LYS A 4 9.018 25.991 20.837 1.00 0.00 H
+ATOM 57 HE2 LYS A 4 10.517 26.302 19.078 1.00 0.00 H
+ATOM 58 HE3 LYS A 4 9.594 25.415 18.135 1.00 0.00 H
+ATOM 59 HZ1 LYS A 4 9.215 27.624 17.768 1.00 0.00 H
+ATOM 60 HZ2 LYS A 4 8.001 27.031 18.292 1.00 0.00 H
+ATOM 61 HZ3 LYS A 4 8.842 27.840 19.151 1.00 0.00 H
+ATOM 62 N ASP A 5 12.263 22.226 21.588 1.00 0.00 N
+ATOM 63 CA ASP A 5 13.678 22.447 21.845 1.00 0.00 C
+ATOM 64 C ASP A 5 14.374 22.763 20.531 1.00 0.00 C
+ATOM 65 O ASP A 5 14.035 22.197 19.489 1.00 0.00 O
+ATOM 66 CB ASP A 5 14.324 21.224 22.508 1.00 0.00 C
+ATOM 67 CG ASP A 5 15.729 21.504 23.005 1.00 0.00 C
+ATOM 68 OD1 ASP A 5 16.213 22.640 22.819 1.00 0.00 O
+ATOM 69 OD2 ASP A 5 16.350 20.587 23.582 1.00 0.00 O1-
+ATOM 70 H ASP A 5 12.091 21.972 20.785 1.00 0.00 H
+ATOM 71 HA ASP A 5 13.783 23.208 22.438 1.00 0.00 H
+ATOM 72 HB2 ASP A 5 13.785 20.954 23.267 1.00 0.00 H
+ATOM 73 HB3 ASP A 5 14.372 20.503 21.861 1.00 0.00 H
+ATOM 74 N GLU A 6 15.346 23.668 20.589 1.00 0.00 N
+ATOM 75 CA GLU A 6 16.096 24.064 19.403 1.00 0.00 C
+ATOM 76 C GLU A 6 17.433 24.684 19.794 1.00 0.00 C
+ATOM 77 O GLU A 6 17.829 24.647 20.959 1.00 0.00 O
+ATOM 78 CB GLU A 6 15.283 25.051 18.561 1.00 0.00 C
+ATOM 79 CG GLU A 6 15.942 25.433 17.245 1.00 0.00 C
+ATOM 80 CD GLU A 6 15.076 26.352 16.405 1.00 0.00 C
+ATOM 81 OE1 GLU A 6 13.969 26.708 16.861 1.00 0.00 O
+ATOM 82 OE2 GLU A 6 15.503 26.718 15.290 1.00 0.00 O1-
+ATOM 83 H GLU A 6 15.592 24.070 21.309 1.00 0.00 H
+ATOM 84 HA GLU A 6 16.273 23.279 18.862 1.00 0.00 H
+ATOM 85 HB2 GLU A 6 14.424 24.651 18.356 1.00 0.00 H
+ATOM 86 HB3 GLU A 6 15.153 25.864 19.073 1.00 0.00 H
+ATOM 87 HG2 GLU A 6 16.776 25.893 17.428 1.00 0.00 H
+ATOM 88 HG3 GLU A 6 16.112 24.628 16.730 1.00 0.00 H
+TER
+ATOM 89 N SER B 2 10.846 4.462 24.534 1.00 0.00 N
+ATOM 90 CA SER B 2 11.518 5.747 24.391 1.00 0.00 C
+ATOM 91 C SER B 2 13.032 5.575 24.457 1.00 0.00 C
+ATOM 92 O SER B 2 13.532 4.595 25.009 1.00 0.00 O
+ATOM 93 CB SER B 2 11.052 6.719 25.477 1.00 0.00 C
+ATOM 94 OG SER B 2 11.455 6.279 26.762 1.00 0.00 O
+ATOM 95 HA SER B 2 11.295 6.129 23.528 1.00 0.00 H
+ATOM 96 HB2 SER B 2 11.440 7.591 25.307 1.00 0.00 H
+ATOM 97 HB3 SER B 2 10.084 6.777 25.453 1.00 0.00 H
+ATOM 98 HG SER B 2 11.125 5.523 26.924 1.00 0.00 H
+ATOM 99 N THR B 3 13.758 6.536 23.889 1.00 0.00 N
+ATOM 100 CA THR B 3 15.212 6.498 23.880 1.00 0.00 C
+ATOM 101 C THR B 3 15.741 7.920 23.778 1.00 0.00 C
+ATOM 102 O THR B 3 15.212 8.733 23.015 1.00 0.00 O
+ATOM 103 CB THR B 3 15.746 5.652 22.7...
[truncated message content] |
|
From: <dcl...@us...> - 2016-11-19 00:03:45
|
Revision: 25753
http://sourceforge.net/p/cctbx/code/25753
Author: dcliebschner
Date: 2016-11-19 00:03:42 +0000 (Sat, 19 Nov 2016)
Log Message:
-----------
rename finite diff tests
Removed Paths:
-------------
trunk/mmtbx/hydrogens/tst_run_fd_1.py
trunk/mmtbx/hydrogens/tst_run_fd_2.py
trunk/mmtbx/hydrogens/tst_run_fd_3.py
trunk/mmtbx/hydrogens/tst_run_fd_4.py
Deleted: trunk/mmtbx/hydrogens/tst_run_fd_1.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_run_fd_1.py 2016-11-18 22:28:06 UTC (rev 25752)
+++ trunk/mmtbx/hydrogens/tst_run_fd_1.py 2016-11-19 00:03:42 UTC (rev 25753)
@@ -1,318 +0,0 @@
-from __future__ import division
-import time
-import sys
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-import hydrogen_connectivity
-import hydrogen_parametrization
-import modify_gradients
-from scitbx import matrix
-
-#-----------------------------------------------------------------------------
-# Finite difference test for modified gradients of riding H
-# Every type of riding H is tested:
-# planar H
-# tetragonal H
-# two tetragonal H
-# X-H2 group (ARG etc)
-# propeller group
-# H with rotational degree of freedom (SER, etc)
-#-----------------------------------------------------------------------------
-
-def exercise(pdb_str, eps, idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- xray_structure = processed_pdb_file.xray_structure()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
- sites_cart = xray_structure.sites_cart()
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
- restraints_manager = mmtbx.restraints.manager(
- geometry = geometry,
- normalization = False)
- bond_proxies_simple, asu = restraints_manager.geometry.get_all_bond_proxies(
- sites_cart = xray_structure.sites_cart())
- angle_proxies = restraints_manager.geometry.get_all_angle_proxies()
- dihedral_proxies = restraints_manager.geometry.dihedral_proxies
- atoms_list = list(pdb_hierarchy.atoms_with_labels())
- hd_selection = xray_structure.hd_selection()
- atoms = pdb_hierarchy.atoms()
- names = list(atoms.extract_name())
-
- connectivity = hydrogen_connectivity.determine_H_neighbors(
- geometry_restraints = geometry,
- bond_proxies = bond_proxies_simple,
- angle_proxies = angle_proxies,
- dihedral_proxies = dihedral_proxies,
- hd_selection = hd_selection,
- sites_cart = sites_cart,
- atoms = atoms)
- h_parameterization = hydrogen_parametrization.get_h_parameterization(
- connectivity = connectivity,
- sites_cart = sites_cart,
- idealize = idealize)
-
- ih = h_parameterization.keys()[0]
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- print 'distance before changing H', (h_obj.rH_gen - matrix.col(sites_cart[ih])).length()
-
- sites_cart[ih] = tuple(h_obj.rH_gen)
- xray_structure.set_sites_cart(sites_cart)
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- print 'distance H_calc - H_mod', (h_obj.rH_gen - matrix.col(sites_cart[ih])).length()
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- # after shift, recalculate H position
- for ih in h_parameterization.keys():
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart_,
- ih = ih,
- para_info = h_parameterization[ih])
- sites_cart_[ih] = tuple(h_obj.rH_gen)
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
- #
- for g1, g2 in zip(g_analytical, g_fd):
- print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- print '*'*79
-
-def print_para(h_parameterization, ih):
- for ih in h_parameterization.keys():
- hp = h_parameterization[ih]
- print hp.htype, 'ih', ih, ', a0 ', hp.a0, ', a1 ', hp.a1, 'a2 = ', hp.a2, \
- 'a = ', hp.a, 'b = ', hp.b, 'h = ', hp.h, 'dist_h =', hp.dist_h
-
-# alg2a shaked
-pdb_str_00 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
-ATOM 8 CD2 TYR A 7 8.348 7.014 9.545 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
-ATOM 17 HD2 TYR A 7 9.064 7.637 10.081 1.00 15.00 H
-TER
-"""
-# alg2a ideal geometry
-pdb_str_01 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 CG TYR A 7 8.544 6.391 8.506 1.00 15.00 C
-ATOM 2 CD2 TYR A 7 8.334 7.144 9.654 1.00 15.00 C
-ATOM 3 CE2 TYR A 7 7.078 7.251 10.220 1.00 15.00 C
-ATOM 4 HD2 TYR A 7 9.052 7.584 10.049 1.00 15.00 H
-TER
-"""
-# alg2b shaked
-pdb_str_02 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
-ATOM 6 CG TYR A 7 8.528 6.445 8.572 1.00 15.00 C
-ATOM 14 HB2 TYR A 7 9.943 5.616 7.588 1.00 15.00 H
-END
-"""
-# alg2b ideal geometry
-pdb_str_03 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 2 CA TYR A 7 9.962 6.614 6.452 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.920 6.991 7.935 1.00 15.00 C
-ATOM 6 CG TYR A 7 8.575 6.781 8.602 1.00 15.00 C
-ATOM 14 HB2 TYR A 7 10.571 6.452 8.411 1.00 15.00 H
-"""
-
-# alg3 shaked
-pdb_str_04 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 N TYR A 7 9.035 7.089 5.637 1.00 15.00 N
-ATOM 2 CA TYR A 7 9.887 7.460 6.606 1.00 15.00 C
-ATOM 3 C TYR A 7 11.285 7.169 6.250 1.00 15.00 C
-ATOM 5 CB TYR A 7 9.830 6.306 7.775 1.00 15.00 C
-ATOM 13 HA TYR A 7 9.831 8.340 7.271 1.00 15.00 H
-"""
-
-# alg3 ideal geometry
-pdb_str_05 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 N TYR A 7 8.981 7.170 5.658 1.00 15.00 N
-ATOM 2 CA TYR A 7 9.949 7.360 6.732 1.00 15.00 C
-ATOM 3 C TYR A 7 11.374 7.278 6.195 1.00 15.00 C
-ATOM 4 CB TYR A 7 9.740 6.317 7.832 1.00 15.00 C
-ATOM 5 HA TYR A 7 9.823 8.239 7.122 1.00 15.00 H
-"""
-
-# alg1a shaked
-pdb_str_06 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
-ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
-"""
-
-# alg1a idealized
-pdb_str_07 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 1 NE ARG A 50 5.543 6.877 5.312 1.00 10.00 N
-ATOM 2 CZ ARG A 50 6.559 6.257 5.905 1.00 10.00 C
-ATOM 3 NH1 ARG A 50 7.213 6.851 6.894 1.00 10.00 N
-ATOM 4 NH2 ARG A 50 6.920 5.044 5.510 1.00 10.00 N
-ATOM 6 HH12 ARG A 50 7.870 6.449 7.277 1.00 10.00 H
-"""
-
-#alg1b_flat shaked
-pdb_str_08 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.338 5.396 8.586 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.068 7.273 10.230 1.00 15.00 C
-ATOM 11 CZ TYR A 7 6.090 6.501 9.765 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.857 6.463 10.553 1.00 15.00 O
-ATOM 20 HH TYR A 7 5.208 7.016 11.256 1.00 15.00 H
-"""
-
-#alg1b_flat idealized
-pdb_str_09 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 1 CE1 TYR A 7 6.239 5.565 8.724 1.00 15.00 C
-ATOM 2 CE2 TYR A 7 7.170 7.259 10.131 1.00 15.00 C
-ATOM 3 CZ TYR A 7 6.130 6.416 9.803 1.00 15.00 C
-ATOM 4 OH TYR A 7 4.978 6.424 10.555 1.00 15.00 O
-ATOM 5 HH TYR A 7 5.045 6.985 11.177 1.00 15.00 H
-"""
-
-#alg1b shaked (HH out of plane)
-pdb_str_10 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.231 6.395 8.363 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.119 6.748 10.501 1.00 15.00 C
-ATOM 11 CZ TYR A 7 5.926 6.249 9.983 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.831 6.083 10.481 1.00 15.00 O
-ATOM 20 HH TYR A 7 4.708 6.641 11.301 1.00 15.00 H
-"""
-
-# alg1b idealized (HH out of plane)
-pdb_str_11 = """
-CRYST1 16.660 13.261 16.215 90.00 90.00 90.00 P 1
-SCALE1 0.060024 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075409 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.061671 0.00000
-ATOM 9 CE1 TYR A 7 6.193 6.410 8.461 1.00 15.00 C
-ATOM 10 CE2 TYR A 7 7.242 6.572 10.604 1.00 15.00 C
-ATOM 11 CZ TYR A 7 6.111 6.396 9.837 1.00 15.00 C
-ATOM 12 OH TYR A 7 4.893 6.206 10.448 1.00 15.00 O
-ATOM 20 HH TYR A 7 4.878 6.603 11.188 1.00 15.00 H
-"""
-
-#alg1a shaked with both H atoms
-pdb_str_06_bla = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 8 NE ARG A 50 5.682 6.869 5.406 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.378 6.261 5.888 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.214 6.770 6.820 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.924 5.048 5.452 1.00 10.00 N
-ATOM 20 HH11 ARG A 50 6.939 7.628 7.092 1.00 10.00 H
-ATOM 21 HH12 ARG A 50 7.949 6.540 7.393 1.00 10.00 H
-"""
-
-pdb_list = [pdb_str_00, pdb_str_01, pdb_str_02, pdb_str_03,
- pdb_str_04, pdb_str_05, pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09,
- pdb_str_10, pdb_str_11]
-
-pdb_list_name = ['pdb_str_00', 'pdb_str_01', 'pdb_str_02', 'pdb_str_03',
- 'pdb_str_04', 'pdb_str_05', 'pdb_str_06', 'pdb_str_07', 'pdb_str_08',
- 'pdb_str_09', 'pdb_str_10', 'pdb_str_11']
-
-#pdb_list = [pdb_str_02, pdb_str_03]
-#pdb_list_name = ['pdb_str_02', 'pdb_str_03']
-
-def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
-
-if (__name__ == "__main__"):
- run()
- t0 = time.time()
- #run(sys.argv[1:])
- print "OK. Time:", round(time.time()-t0, 2), "seconds"
Deleted: trunk/mmtbx/hydrogens/tst_run_fd_2.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_run_fd_2.py 2016-11-18 22:28:06 UTC (rev 25752)
+++ trunk/mmtbx/hydrogens/tst_run_fd_2.py 2016-11-19 00:03:42 UTC (rev 25753)
@@ -1,603 +0,0 @@
-from __future__ import division
-import time
-import sys
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-import hydrogen_connectivity
-import hydrogen_parametrization
-import modify_gradients
-from scitbx import matrix
-
-#
-def exercise(pdb_str, eps,idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- xray_structure = processed_pdb_file.xray_structure()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
- sites_cart = xray_structure.sites_cart()
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
- restraints_manager = mmtbx.restraints.manager(
- geometry = geometry,
- normalization = False)
- bond_proxies_simple, asu = restraints_manager.geometry.get_all_bond_proxies(
- sites_cart = xray_structure.sites_cart())
- angle_proxies = restraints_manager.geometry.get_all_angle_proxies()
- dihedral_proxies = restraints_manager.geometry.dihedral_proxies
- atoms_list = list(pdb_hierarchy.atoms_with_labels())
- hd_selection = xray_structure.hd_selection()
- atoms = pdb_hierarchy.atoms()
- names = list(atoms.extract_name())
-
- connectivity = hydrogen_connectivity.determine_H_neighbors(
- geometry_restraints = geometry,
- bond_proxies = bond_proxies_simple,
- angle_proxies = angle_proxies,
- dihedral_proxies = dihedral_proxies,
- hd_selection = hd_selection,
- sites_cart = sites_cart,
- atoms = atoms)
- h_parameterization = hydrogen_parametrization.get_h_parameterization(
- connectivity = connectivity,
- sites_cart = sites_cart,
- idealize = idealize)
-
- for ih in h_parameterization.keys():
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- #print 'distance before changing H', (h_obj.rH_gen - matrix.col(sites_cart[ih])).length()
- sites_cart[ih] = tuple(h_obj.rH_gen)
- xray_structure.set_sites_cart(sites_cart)
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- assert ((h_obj.rH_gen - matrix.col(sites_cart[ih])).length() < 0.001), \
- 'H atom was not reconstructed correctly, please check '
-
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
-
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- # after shift, recalculate H position
- for ih in h_parameterization.keys():
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart_,
- ih = ih,
- para_info = h_parameterization[ih])
- sites_cart_[ih] = tuple(h_obj.rH_gen)
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
-
- for g1, g2 in zip(g_analytical, g_fd):
- print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- print '*'*79
-
-def print_para(h_parameterization, ih):
- hp = h_parameterization[ih]
- print hp.htype, 'ih', ih, ', a0 ', hp.a0, ', a1 ', hp.a1, 'a2 = ', hp.a2, \
- 'a = ', hp.a, 'b = ', hp.b, 'h = ', hp.h, 'dist_h =', hp.dist_h
-
-
-#Alanine
-pdb_str_01 = """
-CRYST1 11.863 12.347 12.550 90.00 90.00 90.00 P 1
-SCALE1 0.084296 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.080991 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.079681 0.00000
-ATOM 1 N ALA B 84 7.017 5.016 7.287 1.00 10.00 N
-ATOM 2 CA ALA B 84 5.784 5.706 7.445 1.00 10.00 C
-ATOM 3 C ALA B 84 5.129 5.694 6.011 1.00 10.00 C
-ATOM 4 O ALA B 84 5.714 5.812 4.900 1.00 10.00 O
-ATOM 5 CB ALA B 84 6.261 7.426 7.444 1.00 10.00 C
-ATOM 6 HA ALA B 84 5.269 5.787 7.982 1.00 10.00 H
-ATOM 7 HB1 ALA B 84 5.337 8.016 7.304 1.00 10.00 H
-ATOM 8 HB2 ALA B 84 6.549 7.313 8.459 1.00 10.00 H
-ATOM 9 HB3 ALA B 84 6.616 7.667 6.795 1.00 10.00 H
-"""
-# Arginine:
-pdb_str_02 = """
-CRYST1 14.446 16.451 11.913 90.00 90.00 90.00 P 1
-SCALE1 0.069223 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060787 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083942 0.00000
-ATOM 1 N ARG A 50 6.642 11.452 6.691 1.00 10.00 N
-ATOM 2 CA ARG A 50 7.570 10.240 6.682 1.00 10.00 C
-ATOM 3 C ARG A 50 9.005 10.280 6.707 1.00 10.00 C
-ATOM 4 O ARG A 50 9.602 11.108 6.810 1.00 10.00 O
-ATOM 5 CB ARG A 50 6.962 9.371 5.075 1.00 10.00 C
-ATOM 6 CG ARG A 50 5.382 9.275 4.806 1.00 10.00 C
-ATOM 7 CD ARG A 50 4.830 7.928 6.084 1.00 10.00 C
-ATOM 8 NE ARG A 50 5.434 6.841 5.374 1.00 10.00 N
-ATOM 9 CZ ARG A 50 6.450 6.116 6.035 1.00 10.00 C
-ATOM 10 NH1 ARG A 50 7.392 6.694 6.803 1.00 10.00 N
-ATOM 11 NH2 ARG A 50 6.898 5.026 5.305 1.00 10.00 N
-ATOM 12 HA ARG A 50 6.817 9.405 7.203 1.00 10.00 H
-ATOM 13 HB2 ARG A 50 7.451 9.961 4.409 1.00 10.00 H
-ATOM 14 HB3 ARG A 50 7.391 8.588 5.297 1.00 10.00 H
-ATOM 15 HG2 ARG A 50 5.016 10.089 5.174 1.00 10.00 H
-ATOM 16 HG3 ARG A 50 5.385 9.031 4.141 1.00 10.00 H
-ATOM 17 HD2 ARG A 50 5.268 8.147 6.643 1.00 10.00 H
-ATOM 18 HD3 ARG A 50 3.909 8.226 5.899 1.00 10.00 H
-ATOM 19 HE ARG A 50 5.208 6.478 4.962 1.00 10.00 H
-ATOM 20 HH11 ARG A 50 6.970 7.301 7.302 1.00 10.00 H
-ATOM 21 HH12 ARG A 50 7.866 6.356 7.069 1.00 10.00 H
-ATOM 22 HH21 ARG A 50 6.604 4.626 5.005 1.00 10.00 H
-ATOM 23 HH22 ARG A 50 7.522 4.396 5.734 1.00 10.00 H
-"""
-#Asparagine
-pdb_str_03 = """
-CRYST1 13.889 13.738 13.126 90.00 90.00 90.00 P 1
-SCALE1 0.071999 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.072791 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076185 0.00000
-ATOM 1 N ASN A 35 5.108 6.598 6.668 1.00 10.00 N
-ATOM 2 CA ASN A 35 6.071 7.634 7.159 1.00 10.00 C
-ATOM 3 C ASN A 35 6.113 8.702 6.163 1.00 10.00 C
-ATOM 4 O ASN A 35 5.556 8.558 4.817 1.00 10.00 O
-ATOM 5 CB ASN A 35 7.439 6.520 6.538 1.00 10.00 C
-ATOM 6 CG ASN A 35 7.597 5.465 7.487 1.00 10.00 C
-ATOM 7 OD1 ASN A 35 6.743 4.980 8.032 1.00 10.00 O
-ATOM 8 ND2 ASN A 35 8.841 4.827 7.318 1.00 10.00 N
-ATOM 9 HA ASN A 35 6.387 7.612 7.973 1.00 10.00 H
-ATOM 10 HB2 ASN A 35 7.452 6.464 5.548 1.00 10.00 H
-ATOM 11 HB3 ASN A 35 8.153 7.444 6.485 1.00 10.00 H
-ATOM 12 HD21 ASN A 35 9.022 4.464 7.804 1.00 10.00 H
-ATOM 13 HD22 ASN A 35 9.521 5.284 7.192 1.00 10.00 H
-"""
-# Aspartic Acid
-pdb_str_04 = """
-CRYST1 14.178 13.514 11.978 90.00 90.00 90.00 P 1
-SCALE1 0.070532 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.073997 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.083486 0.00000
-ATOM 1 N ASP A 121 4.844 6.380 4.967 1.00 10.00 N
-ATOM 2 CA ASP A 121 6.237 6.469 5.750 1.00 10.00 C
-ATOM 3 C ASP A 121 5.959 7.525 7.138 1.00 10.00 C
-ATOM 4 O ASP A 121 5.683 8.452 6.797 1.00 10.00 O
-ATOM 5 CB ASP A 121 7.582 6.234 5.277 1.00 10.00 C
-ATOM 6 CG ASP A 121 8.550 6.163 6.136 1.00 10.00 C
-ATOM 7 OD1 ASP A 121 9.035 5.174 6.337 1.00 10.00 O
-ATOM 8 OD2 ASP A 121 9.115 7.253 6.644 1.00 10.00 O
-ATOM 9 HA ASP A 121 6.173 5.442 6.266 1.00 10.00 H
-ATOM 10 HB2 ASP A 121 7.509 5.748 4.630 1.00 10.00 H
-ATOM 11 HB3 ASP A 121 7.714 7.340 4.588 1.00 10.00 H
-"""
-# Cysteine
-pdb_str_05 = """
-CRYST1 12.081 11.399 14.639 90.00 90.00 90.00 P 1
-SCALE1 0.082775 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.087727 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.068311 0.00000
-ATOM 1 N CYS A 96 4.823 5.221 7.409 1.00 10.00 N
-ATOM 2 CA CYS A 96 6.273 5.028 7.456 1.00 10.00 C
-ATOM 3 C CYS A 96 6.932 5.026 9.008 1.00 10.00 C
-ATOM 4 O CYS A 96 7.163 5.942 9.454 1.00 10.00 O
-ATOM 5 CB CYS A 96 6.905 6.223 6.813 1.00 10.00 C
-ATOM 6 SG CYS A 96 6.265 6.407 5.142 1.00 10.00 S
-ATOM 7 HA CYS A 96 6.714 4.104 6.960 1.00 10.00 H
-ATOM 8 HB2 CYS A 96 6.849 7.034 6.999 1.00 10.00 H
-ATOM 9 HB3 CYS A 96 8.130 6.106 6.575 1.00 10.00 H
-ATOM 10 HG CYS A 96 6.882 7.238 4.630 1.00 10.00 H
-"""
-# Glutamine
-pdb_str_06 = """
-CRYST1 14.547 13.375 15.374 90.00 90.00 90.00 P 1
-SCALE1 0.068743 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.074766 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.065045 0.00000
-ATOM 1 N GLN A 70 6.344 7.129 5.035 1.00 10.00 N
-ATOM 2 CA GLN A 70 6.644 6.208 6.336 1.00 10.00 C
-ATOM 3 C GLN A 70 5.352 6.178 6.970 1.00 10.00 C
-ATOM 4 O GLN A 70 5.126 4.898 7.373 1.00 10.00 O
-ATOM 5 CB GLN A 70 7.877 6.998 7.230 1.00 10.00 C
-ATOM 6 CG GLN A 70 7.974 6.681 8.575 1.00 10.00 C
-ATOM 7 CD GLN A 70 9.249 7.237 9.063 1.00 10.00 C
-ATOM 8 OE1 GLN A 70 9.559 8.209 8.935 1.00 10.00 O
-ATOM 9 NE2 GLN A 70 9.506 6.762 10.402 1.00 10.00 N
-ATOM 10 HA GLN A 70 7.249 5.584 6.195 1.00 10.00 H
-ATOM 11 HB2 GLN A 70 8.663 7.126 6.476 1.00 10.00 H
-ATOM 12 HB3 GLN A 70 7.331 8.179 7.116 1.00 10.00 H
-ATOM 13 HG2 GLN A 70 7.234 6.385 8.986 1.00 10.00 H
-ATOM 14 HG3 GLN A 70 8.549 5.809 8.279 1.00 10.00 H
-ATOM 15 HE21 GLN A 70 9.114 6.119 10.657 1.00 10.00 H
-ATOM 16 HE22 GLN A 70 10.235 7.102 10.671 1.00 10.00 H
-"""
-# Glutamic Acid
-pdb_str_07 = """
-CRYST1 15.127 14.767 13.161 90.00 90.00 90.00 P 1
-SCALE1 0.066107 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.067719 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.075982 0.00000
-ATOM 1 N GLU A 24 9.022 8.042 4.852 1.00 10.00 N
-ATOM 2 CA GLU A 24 8.611 8.384 6.596 1.00 10.00 C
-ATOM 3 C GLU A 24 9.851 8.805 7.028 1.00 10.00 C
-ATOM 4 O GLU A 24 10.208 9.672 7.827 1.00 10.00 O
-ATOM 5 CB GLU A 24 8.163 7.285 7.084 1.00 10.00 C
-ATOM 6 CG GLU A 24 6.610 6.769 6.720 1.00 10.00 C
-ATOM 7 CD GLU A 24 6.069 5.633 7.216 1.00 10.00 C
-ATOM 8 OE1 GLU A 24 5.180 5.275 7.007 1.00 10.00 O
-ATOM 9 OE2 GLU A 24 6.826 5.071 8.182 1.00 10.00 O
-ATOM 10 HA GLU A 24 8.239 8.942 6.618 1.00 10.00 H
-ATOM 11 HB2 GLU A 24 8.834 6.577 7.107 1.00 10.00 H
-ATOM 12 HB3 GLU A 24 8.074 7.246 7.880 1.00 10.00 H
-ATOM 13 HG2 GLU A 24 5.925 7.518 6.600 1.00 10.00 H
-ATOM 14 HG3 GLU A 24 6.944 6.683 5.520 1.00 10.00 H
-"""
-# Glycine
-pdb_str_08 = """
-CRYST1 13.147 11.167 10.709 90.00 90.00 90.00 P 1
-SCALE1 0.076063 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.089550 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.093379 0.00000
-ATOM 1 N GLY B 93 8.304 6.036 5.544 1.00 10.00 N
-ATOM 2 CA GLY B 93 7.319 4.905 5.595 1.00 10.00 C
-ATOM 3 C GLY B 93 5.882 5.364 4.847 1.00 10.00 C
-ATOM 4 O GLY B 93 5.143 5.776 5.738 1.00 10.00 O
-ATOM 5 HA2 GLY B 93 7.870 4.339 5.372 1.00 10.00 H
-ATOM 6 HA3 GLY B 93 7.123 4.618 6.529 1.00 10.00 H
-"""
-
-# Histidine
-pdb_str_09 = """
-CRYST1 12.286 14.857 15.512 90.00 90.00 90.00 P 1
-SCALE1 0.081393 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.067308 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.064466 0.00000
-ATOM 1 N HIS A 34 7.292 7.714 9.065 1.00 10.00 N
-ATOM 2 CA HIS A 34 6.363 8.592 8.255 1.00 10.00 C
-ATOM 3 C HIS A 34 6.024 9.792 9.401 1.00 10.00 C
-ATOM 4 O HIS A 34 6.246 9.507 10.701 1.00 10.00 O
-ATOM 5 CB HIS A 34 4.951 8.082 8.105 1.00 10.00 C
-ATOM 6 CG HIS A 34 5.323 6.839 7.073 1.00 10.00 C
-ATOM 7 ND1 HIS A 34 5.021 7.108 5.763 1.00 10.00 N
-ATOM 8 CD2 HIS A 34 5.317 5.623 7.295 1.00 10.00 C
-ATOM 9 CE1 HIS A 34 5.333 5.771 5.081 1.00 10.00 C
-ATOM 10 NE2 HIS A 34 5.601 4.927 6.077 1.00 10.00 N
-ATOM 11 HA HIS A 34 6.539 9.000 7.667 1.00 10.00 H
-ATOM 12 HB2 HIS A 34 4.722 7.760 8.940 1.00 10.00 H
-ATOM 13 HB3 HIS A 34 4.532 8.544 7.770 1.00 10.00 H
-ATOM 14 HD2 HIS A 34 5.433 5.063 7.987 1.00 10.00 H
-ATOM 15 HE1 HIS A 34 5.162 5.891 3.986 1.00 10.00 H
-"""
-# Isoleucine
-pdb_str_10 = """
-CRYST1 14.040 13.236 13.685 90.00 90.00 90.00 P 1
-SCALE1 0.071225 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075552 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.073073 0.00000
-ATOM 1 N ILE B 81 6.774 6.654 8.528 1.00 10.00 N
-ATOM 2 CA ILE B 81 6.248 6.915 7.265 1.00 10.00 C
-ATOM 3 C ILE B 81 5.064 5.915 6.912 1.00 10.00 C
-ATOM 4 O ILE B 81 4.891 4.882 7.591 1.00 10.00 O
-ATOM 5 CB ILE B 81 7.374 7.060 6.201 1.00 10.00 C
-ATOM 6 CG1 ILE B 81 7.928 5.644 6.013 1.00 10.00 C
-ATOM 7 CG2 ILE B 81 8.450 8.146 6.766 1.00 10.00 C
-ATOM 8 CD1 ILE B 81 9.014 5.797 4.814 1.00 10.00 C
-ATOM 9 HA ILE B 81 5.805 7.933 7.605 1.00 10.00 H
-ATOM 10 HB ILE B 81 6.968 7.172 5.320 1.00 10.00 H
-ATOM 11 HG12 ILE B 81 8.488 5.662 7.117 1.00 10.00 H
-ATOM 12 HG13 ILE B 81 7.287 4.921 5.901 1.00 10.00 H
-ATOM 13 HG21 ILE B 81 8.841 8.468 5.740 1.00 10.00 H
-ATOM 14 HG22 ILE B 81 7.916 9.169 6.877 1.00 10.00 H
-ATOM 15 HG23 ILE B 81 8.650 8.115 7.619 1.00 10.00 H
-ATOM 16 HD11 ILE B 81 9.263 4.839 4.994 1.00 10.00 H
-ATOM 17 HD12 ILE B 81 8.679 5.953 4.216 1.00 10.00 H
-ATOM 18 HD13 ILE B 81 9.551 6.406 5.137 1.00 10.00 H
-"""
-
-# Leucine
-pdb_str_11 = """
-CRYST1 13.550 15.138 12.702 90.00 90.00 90.00 P 1
-SCALE1 0.073801 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.066059 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.078728 0.00000
-ATOM 1 N LEU B 94 6.273 6.593 4.935 1.00 10.00 N
-ATOM 2 CA LEU B 94 7.641 7.224 5.628 1.00 10.00 C
-ATOM 3 C LEU B 94 8.422 6.084 6.113 1.00 10.00 C
-ATOM 4 O LEU B 94 8.638 5.157 5.672 1.00 10.00 O
-ATOM 5 CB LEU B 94 7.066 8.117 6.861 1.00 10.00 C
-ATOM 6 CG LEU B 94 6.206 9.526 6.450 1.00 10.00 C
-ATOM 7 CD1 LEU B 94 5.918 10.237 7.727 1.00 10.00 C
-ATOM 8 CD2 LEU B 94 4.891 9.251 5.577 1.00 10.00 C
-ATOM 9 HA LEU B 94 7.928 7.858 4.837 1.00 10.00 H
-ATOM 10 HB2 LEU B 94 6.600 7.347 7.185 1.00 10.00 H
-ATOM 11 HB3 LEU B 94 7.833 8.235 7.219 1.00 10.00 H
-ATOM 12 HG LEU B 94 7.048 9.715 5.954 1.00 10.00 H
-ATOM 13 HD11 LEU B 94 5.564 11.132 7.460 1.00 10.00 H
-ATOM 14 HD12 LEU B 94 5.689 9.764 8.196 1.00 10.00 H
-ATOM 15 HD13 LEU B 94 6.901 10.482 8.316 1.00 10.00 H
-ATOM 16 HD21 LEU B 94 4.622 9.894 5.701 1.00 10.00 H
-ATOM 17 HD22 LEU B 94 5.223 8.782 4.700 1.00 10.00 H
-ATOM 18 HD23 LEU B 94 4.327 8.453 6.346 1.00 10.00 H
-"""
-
-# Lysine
-pdb_str_12 = """
-CRYST1 14.470 17.497 11.416 90.00 90.00 90.00 P 1
-SCALE1 0.069109 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.057153 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.087596 0.00000
-ATOM 1 N LYS A 76 4.981 10.159 4.860 1.00 10.00 N
-ATOM 2 CA LYS A 76 5.876 10.071 6.050 1.00 10.00 C
-ATOM 3 C LYS A 76 6.304 11.829 6.325 1.00 10.00 C
-ATOM 4 O LYS A 76 5.161 12.466 6.576 1.00 10.00 O
-ATOM 5 CB LYS A 76 7.337 9.388 5.906 1.00 10.00 C
-ATOM 6 CG LYS A 76 7.118 7.831 5.788 1.00 10.00 C
-ATOM 7 CD LYS A 76 8.453 7.428 5.736 1.00 10.00 C
-ATOM 8 CE LYS A 76 8.134 5.835 5.433 1.00 10.00 C
-ATOM 9 NZ LYS A 76 9.426 4.919 5.392 1.00 10.00 N
-ATOM 10 HA LYS A 76 5.397 10.002 6.803 1.00 10.00 H
-ATOM 11 HB2 LYS A 76 7.655 9.920 5.112 1.00 10.00 H
-ATOM 12 HB3 LYS A 76 7.624 9.427 6.543 1.00 10.00 H
-ATOM 13 HG2 LYS A 76 6.592 7.548 6.676 1.00 10.00 H
-ATOM 14 HG3 LYS A 76 6.469 7.536 5.090 1.00 10.00 H
-ATOM 15 HD2 LYS A 76 8.768 7.405 4.630 1.00 10.00 H
-ATOM 16 HD3 LYS A 76 9.025 7.220 6.546 1.00 10.00 H
-ATOM 17 HE2 LYS A 76 7.580 5.564 6.304 1.00 10.00 H
-ATOM 18 HE3 LYS A 76 7.440 5.632 4.831 1.00 10.00 H
-ATOM 19 HZ1 LYS A 76 9.379 4.186 5.442 1.00 10.00 H
-ATOM 20 HZ2 LYS A 76 9.725 5.254 4.549 1.00 10.00 H
-ATOM 21 HZ3 LYS A 76 9.965 5.006 6.093 1.00 10.00 H
-"""
-
-# Methionine
-pdb_str_13 = """
-CRYST1 13.775 12.351 15.645 90.00 90.00 90.00 P 1
-SCALE1 0.072595 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.080965 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.063918 0.00000
-ATOM 1 N MET B 37 7.603 5.375 6.446 1.00 10.00 N
-ATOM 2 CA MET B 37 6.723 6.349 6.607 1.00 10.00 C
-ATOM 3 C MET B 37 6.323 7.146 5.241 1.00 10.00 C
-ATOM 4 O MET B 37 5.062 7.131 4.970 1.00 10.00 O
-ATOM 5 CB MET B 37 6.932 7.378 7.483 1.00 10.00 C
-ATOM 6 CG MET B 37 7.258 6.900 9.095 1.00 10.00 C
-ATOM 7 SD MET B 37 8.785 5.488 9.096 1.00 10.00 S
-ATOM 8 CE MET B 37 8.590 5.149 10.517 1.00 10.00 C
-ATOM 9 HA MET B 37 5.885 6.031 6.839 1.00 10.00 H
-ATOM 10 HB2 MET B 37 7.862 7.670 7.351 1.00 10.00 H
-ATOM 11 HB3 MET B 37 6.364 7.936 7.854 1.00 10.00 H
-ATOM 12 HG2 MET B 37 7.509 7.571 9.764 1.00 10.00 H
-ATOM 13 HG3 MET B 37 6.614 6.240 9.246 1.00 10.00 H
-ATOM 14 HE1 MET B 37 9.624 4.355 10.601 1.00 10.00 H
-ATOM 15 HE2 MET B 37 9.070 5.811 11.280 1.00 10.00 H
-ATOM 16 HE3 MET B 37 8.003 4.499 11.109 1.00 10.00 H
-"""
-
-# Phenylanaline
-pdb_str_14 = """
-CRYST1 11.802 16.578 13.976 90.00 90.00 90.00 P 1
-SCALE1 0.084731 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.060321 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.071551 0.00000
-ATOM 1 N PHE A 63 6.412 9.770 7.572 1.00 10.00 N
-ATOM 2 CA PHE A 63 6.289 9.157 6.198 1.00 10.00 C
-ATOM 3 C PHE A 63 6.292 10.223 5.110 1.00 10.00 C
-ATOM 4 O PHE A 63 6.451 11.437 5.241 1.00 10.00 O
-ATOM 5 CB PHE A 63 5.580 8.319 6.063 1.00 10.00 C
-ATOM 6 CG PHE A 63 5.743 6.958 6.849 1.00 10.00 C
-ATOM 7 CD1 PHE A 63 6.569 6.117 6.768 1.00 10.00 C
-ATOM 8 CD2 PHE A 63 5.050 7.055 8.045 1.00 10.00 C
-ATOM 9 CE1 PHE A 63 6.802 5.054 7.620 1.00 10.00 C
-ATOM 10 CE2 PHE A 63 5.331 6.153 8.840 1.00 10.00 C
-ATOM 11 CZ PHE A 63 6.270 5.103 8.840 1.00 10.00 C
-ATOM 12 HA PHE A 63 7.224 9.004 5.959 1.00 10.00 H
-ATOM 13 HB2 PHE A 63 4.619 8.277 5.936 1.00 10.00 H
-ATOM 14 HB3 PHE A 63 5.713 7.612 5.105 1.00 10.00 H
-ATOM 15 HD1 PHE A 63 7.301 6.004 5.919 1.00 10.00 H
-ATOM 16 HD2 PHE A 63 4.436 7.641 8.314 1.00 10.00 H
-ATOM 17 HE1 PHE A 63 7.224 4.307 7.397 1.00 10.00 H
-ATOM 18 HE2 PHE A 63 4.727 6.172 9.862 1.00 10.00 H
-ATOM 19 HZ PHE A 63 6.045 4.444 9.418 1.00 10.00 H
-"""
-
-# Proline
-pdb_str_15 = """
-CRYST1 12.293 14.006 12.486 90.00 90.00 90.00 P 1
-SCALE1 0.081347 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.071398 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.080090 0.00000
-ATOM 1 N PRO A 4 4.920 7.325 6.411 1.00 10.00 N
-ATOM 2 CA PRO A 4 6.162 6.834 5.666 1.00 10.00 C
-ATOM 3 C PRO A 4 6.405 5.341 5.894 1.00 10.00 C
-ATOM 4 O PRO A 4 7.098 4.853 4.957 1.00 10.00 O
-ATOM 5 CB PRO A 4 7.380 7.894 6.618 1.00 10.00 C
-ATOM 6 CG PRO A 4 6.640 8.868 7.204 1.00 10.00 C
-ATOM 7 CD PRO A 4 5.415 8.476 7.560 1.00 10.00 C
-ATOM 8 HA PRO A 4 6.250 7.067 4.776 1.00 10.00 H
-ATOM 9 HB2 PRO A 4 7.921 7.337 7.346 1.00 10.00 H
-ATOM 10 HB3 PRO A 4 8.016 8.080 5.830 1.00 10.00 H
-ATOM 11 HG2 PRO A 4 7.167 9.579 7.723 1.00 10.00 H
-ATOM 12 HG3 PRO A 4 6.492 9.649 6.528 1.00 10.00 H
-ATOM 13 HD2 PRO A 4 5.306 8.082 8.255 1.00 10.00 H
-ATOM 14 HD3 PRO A 4 4.496 9.094 7.222 1.00 10.00 H
-"""
-
-# Serine
-pdb_str_16 = """
-CRYST1 12.893 12.708 12.721 90.00 90.00 90.00 P 1
-SCALE1 0.077561 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.078691 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.078610 0.00000
-ATOM 1 N SER A 73 5.347 5.750 5.075 1.00 10.00 N
-ATOM 2 CA SER A 73 5.894 5.594 6.421 1.00 10.00 C
-ATOM 3 C SER A 73 5.946 7.282 6.996 1.00 10.00 C
-ATOM 4 O SER A 73 5.026 7.627 7.452 1.00 10.00 O
-ATOM 5 CB SER A 73 7.501 5.019 6.235 1.00 10.00 C
-ATOM 6 OG SER A 73 8.063 4.929 7.844 1.00 10.00 O
-ATOM 7 HA SER A 73 5.300 5.295 7.021 1.00 10.00 H
-ATOM 8 HB2 SER A 73 7.399 4.067 6.115 1.00 10.00 H
-ATOM 9 HB3 SER A 73 8.072 5.776 5.734 1.00 10.00 H
-ATOM 10 HG SER A 73 8.499 4.647 7.768 1.00 10.00 H
-"""
-
-# Threonine
-pdb_str_17 = """
-CRYST1 11.909 12.199 14.459 90.00 90.00 90.00 P 1
-SCALE1 0.083970 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.081974 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.069161 0.00000
-ATOM 1 N THR A 68 6.967 7.035 7.598 1.00 10.00 N
-ATOM 2 CA THR A 68 5.580 6.835 7.409 1.00 10.00 C
-ATOM 3 C THR A 68 4.981 6.180 8.674 1.00 10.00 C
-ATOM 4 O THR A 68 6.079 5.829 9.469 1.00 10.00 O
-ATOM 5 CB THR A 68 5.071 6.452 6.355 1.00 10.00 C
-ATOM 6 OG1 THR A 68 5.819 5.087 6.249 1.00 10.00 O
-ATOM 7 CG2 THR A 68 5.178 7.219 5.045 1.00 10.00 C
-ATOM 8 HA THR A 68 4.978 7.946 7.649 1.00 10.00 H
-ATOM 9 HB THR A 68 3.853 6.156 6.182 1.00 10.00 H
-ATOM 10 HG1 THR A 68 6.272 5.006 6.437 1.00 10.00 H
-ATOM 11 HG21 THR A 68 5.183 6.722 4.241 1.00 10.00 H
-ATOM 12 HG22 THR A 68 4.943 8.119 5.225 1.00 10.00 H
-ATOM 13 HG23 THR A 68 6.305 7.117 4.778 1.00 10.00 H
-"""
-
-# Triptophane
-pdb_str_18 = """
-CRYST1 12.502 12.982 18.312 90.00 90.00 90.00 P 1
-SCALE1 0.079987 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.077030 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.054609 0.00000
-ATOM 1 N TRP A 49 7.019 6.036 6.855 1.00 10.00 N
-ATOM 2 CA TRP A 49 6.009 5.654 7.261 1.00 10.00 C
-ATOM 3 C TRP A 49 5.132 5.145 5.877 1.00 10.00 C
-ATOM 4 O TRP A 49 5.267 5.983 5.027 1.00 10.00 O
-ATOM 5 CB TRP A 49 5.058 6.563 8.316 1.00 10.00 C
-ATOM 6 CG TRP A 49 6.065 6.967 9.207 1.00 10.00 C
-ATOM 7 CD1 TRP A 49 6.863 7.994 9.455 1.00 10.00 C
-ATOM 8 CD2 TRP A 49 5.959 6.505 10.743 1.00 10.00 C
-ATOM 9 NE1 TRP A 49 7.435 8.004 10.831 1.00 10.00 N
-ATOM 10 CE2 TRP A 49 6.803 7.200 11.335 1.00 10.00 C
-ATOM 11 CE3 TRP A 49 5.119 5.187 11.318 1.00 10.00 C
-ATOM 12 CZ2 TRP A 49 7.129 6.620 12.976 1.00 10.00 C
-ATOM 13 CZ3 TRP A 49 5.299 5.155 12.457 1.00 10.00 C
-ATOM 14 CH2 TRP A 49 6.374 5.658 13.211 1.00 10.00 C
-ATOM 15 HA TRP A 49 6.139 4.842 7.608 1.00 10.00 H
-ATOM 16 HB2 TRP A 49 5.070 7.319 7.481 1.00 10.00 H
-ATOM 17 HB3 TRP A 49 4.305 6.336 8.251 1.00 10.00 H
-ATOM 18 HD1 TRP A 49 7.226 8.582 8.796 1.00 10.00 H
-ATOM 19 HE1 TRP A 49 8.120 8.555 10.929 1.00 10.00 H
-ATOM 20 HE3 TRP A 49 4.311 5.074 10.564 1.00 10.00 H
-ATOM 21 HZ2 TRP A 49 7.806 7.092 13.214 1.00 10.00 H
-ATOM 22 HZ3 TRP A 49 4.914 4.129 12.933 1.00 10.00 H
-ATOM 23 HH2 TRP A 49 6.353 5.513 14.064 1.00 10.00 H
-"""
-
-# Tyrosine
-pdb_str_19 = """
-CRYST1 17.955 13.272 13.095 90.00 90.00 90.00 P 1
-SCALE1 0.055695 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.075347 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076365 0.00000
-ATOM 1 N TYR A 139 10.057 7.968 5.049 1.00 10.00 N
-ATOM 2 CA TYR A 139 10.657 7.531 6.379 1.00 10.00 C
-ATOM 3 C TYR A 139 12.203 7.725 6.416 1.00 10.00 C
-ATOM 4 O TYR A 139 12.999 8.272 7.373 1.00 10.00 O
-ATOM 5 CB TYR A 139 10.644 6.145 6.711 1.00 10.00 C
-ATOM 6 CG TYR A 139 9.159 5.899 6.690 1.00 10.00 C
-ATOM 7 CD1 TYR A 139 8.503 5.230 5.513 1.00 10.00 C
-ATOM 8 CD2 TYR A 139 8.317 6.046 8.121 1.00 10.00 C
-ATOM 9 CE1 TYR A 139 6.876 4.938 5.643 1.00 10.00 C
-ATOM 10 CE2 TYR A 139 7.209 5.706 8.077 1.00 10.00 C
-ATOM 11 CZ TYR A 139 6.420 5.365 6.855 1.00 10.00 C
-ATOM 12 OH TYR A 139 5.027 4.949 7.088 1.00 10.00 O
-ATOM 13 HA TYR A 139 10.303 8.174 6.785 1.00 10.00 H
-ATOM 14 HB2 TYR A 139 10.989 5.647 5.882 1.00 10.00 H
-ATOM 15 HB3 TYR A 139 10.828 5.883 7.586 1.00 10.00 H
-ATOM 16 HD1 TYR A 139 8.618 5.356 4.741 1.00 10.00 H
-ATOM 17 HD2 TYR A 139 8.841 6.121 8.546 1.00 10.00 H
-ATOM 18 HE1 TYR A 139 6.432 5.030 4.892 1.00 10.00 H
-ATOM 19 HE2 TYR A 139 6.780 5.619 9.066 1.00 10.00 H
-ATOM 20 HH TYR A 139 4.693 5.141 7.840 1.00 10.00 H
-"""
-
-# Valine
-pdb_str_20 = """
-CRYST1 12.396 13.122 13.130 90.00 90.00 90.00 P 1
-SCALE1 0.080671 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.076208 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.076161 0.00000
-ATOM 1 N VAL B 78 4.820 5.520 7.634 1.00 10.00 N
-ATOM 2 CA VAL B 78 6.105 5.869 7.138 1.00 10.00 C
-ATOM 3 C VAL B 78 6.717 7.176 8.084 1.00 10.00 C
-ATOM 4 O VAL B 78 5.750 8.012 8.022 1.00 10.00 O
-ATOM 5 CB VAL B 78 6.029 6.374 5.701 1.00 10.00 C
-ATOM 6 CG1 VAL B 78 5.673 4.961 4.874 1.00 10.00 C
-ATOM 7 CG2 VAL B 78 7.349 6.810 5.233 1.00 10.00 C
-ATOM 8 HA VAL B 78 7.125 5.144 7.411 1.00 10.00 H
-ATOM 9 HB VAL B 78 5.404 6.962 5.498 1.00 10.00 H
-ATOM 10 HG11 VAL B 78 5.583 5.210 4.024 1.00 10.00 H
-ATOM 11 HG12 VAL B 78 6.062 4.120 5.126 1.00 10.00 H
-ATOM 12 HG13 VAL B 78 4.907 4.924 5.317 1.00 10.00 H
-ATOM 13 HG21 VAL B 78 7.299 7.038 4.409 1.00 10.00 H
-ATOM 14 HG22 VAL B 78 7.542 7.634 5.823 1.00 10.00 H
-ATOM 15 HG23 VAL B 78 7.889 5.963 5.346 1.00 10.00 H
-"""
-
-pdb_list = [pdb_str_01, pdb_str_02, pdb_str_03, pdb_str_04, pdb_str_05,
- pdb_str_06, pdb_str_07, pdb_str_08, pdb_str_09, pdb_str_10, pdb_str_11,
- pdb_str_12, pdb_str_13, pdb_str_14, pdb_str_15, pdb_str_16, pdb_str_17,
- pdb_str_18, pdb_str_19, pdb_str_20]
-#
-pdb_list_name = ['pdb_str_01', 'pdb_str_02', 'pdb_str_03', 'pdb_str_04', 'pdb_str_05',
- 'pdb_str_06', 'pdb_str_07', 'pdb_str_08', 'pdb_str_09', 'pdb_str_10', 'pdb_str_11',
- 'pdb_str_12', 'pdb_str_13', 'pdb_str_14', 'pdb_str_15', 'pdb_str_16', 'pdb_str_17',
- 'pdb_str_18', 'pdb_str_19', 'pdb_str_20']
-
-#pdb_list = [pdb_str_02]
-#pdb_list_name = ['pdb_str_02']
-
-def run():
- for idealize in [True, False]:
- for pdb_str, str_name in zip(pdb_list,pdb_list_name):
- print 'pdb_string:', str_name, 'idealize =', idealize
- exercise(pdb_str=pdb_str, eps=1.e-4, idealize=idealize)
-
-
-if (__name__ == "__main__"):
- t0 = time.time()
- run()
- #run(sys.argv[1:])
- print "Time:", round(time.time()-t0, 2)
Deleted: trunk/mmtbx/hydrogens/tst_run_fd_3.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_run_fd_3.py 2016-11-18 22:28:06 UTC (rev 25752)
+++ trunk/mmtbx/hydrogens/tst_run_fd_3.py 2016-11-19 00:03:42 UTC (rev 25753)
@@ -1,457 +0,0 @@
-from __future__ import division
-import time
-from cctbx.array_family import flex
-from mmtbx import monomer_library
-import mmtbx.monomer_library.server
-import mmtbx.monomer_library.pdb_interpretation
-from libtbx.test_utils import approx_equal
-import hydrogen_connectivity
-import hydrogen_parametrization
-import modify_gradients
-from scitbx import matrix
-
-def exercise(pdb_str, eps, idealize):
- mon_lib_srv = monomer_library.server.server()
- ener_lib = monomer_library.server.ener_lib()
- processed_pdb_file = monomer_library.pdb_interpretation.process(
- mon_lib_srv = mon_lib_srv,
- ener_lib = ener_lib,
- raw_records = pdb_str,
- force_symmetry = True)
- xray_structure = processed_pdb_file.xray_structure()
- geometry = processed_pdb_file.geometry_restraints_manager(
- show_energies = False,
- plain_pairs_radius = 5.0)
- sites_cart = xray_structure.sites_cart()
- es = geometry.energies_sites(
- sites_cart = sites_cart,
- compute_gradients = True)
- g_analytical = es.gradients
-#
- pdb_hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
- restraints_manager = mmtbx.restraints.manager(
- geometry = geometry,
- normalization = False)
- bond_proxies_simple, asu = restraints_manager.geometry.get_all_bond_proxies(
- sites_cart = xray_structure.sites_cart())
- angle_proxies = restraints_manager.geometry.get_all_angle_proxies()
- dihedral_proxies = restraints_manager.geometry.dihedral_proxies
- atoms_list = list(pdb_hierarchy.atoms_with_labels())
- hd_selection = xray_structure.hd_selection()
- atoms = pdb_hierarchy.atoms()
- names = list(atoms.extract_name())
-
- connectivity = hydrogen_connectivity.determine_H_neighbors(
- geometry_restraints = geometry,
- bond_proxies = bond_proxies_simple,
- angle_proxies = angle_proxies,
- dihedral_proxies = dihedral_proxies,
- hd_selection = hd_selection,
- sites_cart = sites_cart,
- atoms = atoms)
-
- h_parameterization = hydrogen_parametrization.get_h_parameterization(
- connectivity = connectivity,
- sites_cart = sites_cart,
- idealize = idealize)
-
- for ih in h_parameterization.keys():
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- print 'distance before changing H', (h_obj.rH_gen - matrix.col(sites_cart[ih])).length()
- sites_cart[ih] = tuple(h_obj.rH_gen)
- xray_structure.set_sites_cart(sites_cart)
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart,
- ih = ih,
- para_info = h_parameterization[ih])
- #print 'distance H_calc - H_mod', (h_obj.rH_gen - matrix.col(sites_cart[ih])).length()
- assert ((h_obj.rH_gen - matrix.col(sites_cart[ih])).length() < 0.001), \
- 'H atom was not reconstructed correctly, please check '
-
- #for i in g_analytical:
- # print i
- #print '----------'
- g_analytical = geometry.energies_sites(
- sites_cart = sites_cart, compute_gradients = True).gradients
- modify_gradients.modify_gradients(
- sites_cart = sites_cart,
- h_parameterization = h_parameterization,
- grads = g_analytical)
- #
- ex = [eps,0,0]
- ey = [0,eps,0]
- ez = [0,0,eps]
- g_fd = flex.vec3_double()
- for i_site in xrange(sites_cart.size()):
- g_fd_i = []
- for e in [ex,ey,ez]:
- ts = []
- for sign in [-1,1]:
- sites_cart_ = sites_cart.deep_copy()
- sites_cart_[i_site] = [
- sites_cart_[i_site][j]+e[j]*sign for j in xrange(3)]
- # after shift, recalculate H position
- for ih in h_parameterization.keys():
- h_obj = hydrogen_parametrization.generate_H_positions(
- sites_cart = sites_cart_,
- ih = ih,
- para_info = h_parameterization[ih])
- sites_cart_[ih] = tuple(h_obj.rH_gen)
- ts.append(geometry.energies_sites(
- sites_cart = sites_cart_,
- compute_gradients = False).target)
- g_fd_i.append((ts[1]-ts[0])/(2*eps))
- g_fd.append(g_fd_i)
- #
- for g1, g2 in zip(g_analytical, g_fd):
- print g1,g2
- assert approx_equal(g1,g2, 1.e-4)
- print '*'*79
-
-def print_para(h_parameterization, ih):
- hp = h_parameterization[ih]
- print hp.htype, 'ih', ih, ', a0 ', hp.a0, ', a1 ', hp.a1, 'a2 = ', hp.a2, \
- 'a = ', hp.a, 'b = ', hp.b, 'h = ', hp.h, 'dist_h =', hp.dist_h
-
-pdb_str = """
-CRYST1 30.000 30.000 30.000 90.00 90.00 90.00 P 1
-SCALE1 0.033333 0.000000 0.000000 0.00000
-SCALE2 0.000000 0.033333 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.033333 0.00000
-ATOM 1 N ARG A 2 3.050 19.481 25.856 1.00 0.00 N
-ATOM 2 CA ARG A 2 3.759 20.265 24.852 1.00 0.00 C
-ATOM 3 C ARG A 2 5.253 20.304 25.155 1.00 0.00 C
-ATOM 4 O ARG A 2 5.659 20.516 26.298 1.00 0.00 O
-ATOM 5 CB ARG A 2 3.197 21.687 24.787 1.00 0.00 C
-ATOM 6 CG ARG A 2 3.800 22.542 23.684 1.00 0.00 C
-ATOM 7 CD ARG A 2 3.128 23.904 23.607 1.00 0.00 C
-ATOM 8 NE ARG A 2 3.721 24.751 22.576 1.00 0.00 N
-ATOM 9 CZ ARG A 2 3.311 25.983 22.290 1.00 0.00 C
-ATOM 10 NH1 ARG A 2 2.301 26.525 22.957 1.00 0.00 N1+
-ATOM 11 NH2 ARG A 2 3.914 26.676 21.334 1.00 0.00 N
-ATOM 12 HA ARG A 2 3.638 19.852 23.983 1.00 0.00 H
-ATOM 13 HB2 ARG A 2 2.240 21.637 24.633 1.00 0.00 H
-ATOM 14 HB3 ARG A 2 3.370 22.129 25.633 1.00 0.00 H
-ATOM 15 HG2 ARG A 2 4.743 22.680 23.864 1.00 0.00 H
-ATOM 16 HG3 ARG A 2 3.682 22.096 22.831 1.00 0.00 H
-ATOM 17 HD2 ARG A 2 2.189 23.783 23.396 1.00 0.00 H
-ATOM 18 HD3 ARG A 2 3.224 24.355 24.460 1.00 0.00 H
-ATOM 19 HE ARG A 2 4.380 24.432 22.124 1.00 0.00 H
-ATOM 20 HH11 ARG A 2 1.905 26.082 23.579 1.00 0.00 H
-ATOM 21 HH12 ARG A 2 2.041 27.322 22.767 1.00 0.00 H
-ATOM 22 HH21 ARG A 2 4.569 26.329 20.898 1.00 0.00 H
-ATOM 23 HH22 ARG A 2 3.649 27.473 21.149 1.00 0.00 H
-ATOM 24 N HIS A 3 6.067 20.098 24.123 1.00 0.00 N
-ATOM 25 CA HIS A 3 7.516 20.107 24.260 1.00 0.00 C
-ATOM 26 C HIS A 3 8.133 20.732 23.018 1.00 0.00 C
-ATOM 27 O HIS A 3 7.638 20.536 21.904 1.00 0.00 O
-ATOM 28 CB HIS A 3 8.069 18.691 24.464 1.00 0.00 C
-ATOM 29 CG HIS A 3 7.630 18.050 25.743 1.00 0.00 C
-ATOM 30 ND1 HIS A 3 8.154 18.399 26.969 1.00 0.00 N
-ATOM 31 CD2 HIS A 3 6.716 17.080 25.988 1.00 0.00 C
-ATOM 32 CE1 HIS A 3 7.582 17.674 27.913 1.00 0.00 C
-ATOM 33 NE2 HIS A 3 6.706 16.865 27.344 1.00 0.00 N
-ATOM 34 H HIS A 3 5.797 19.948 23.320 1.00 0.00 H
-ATOM 35 HA HIS A 3 7.764 20.646 25.027 1.00 0.00 H
-ATOM 36 HB2 HIS A 3 7.768 18.129 23.732 1.00 0.00 H
-ATOM 37 HB3 HIS A 3 9.038 18.731 24.470 1.00 0.00 H
-ATOM 38 HD2 HIS A 3 6.194 16.642 25.355 1.00 0.00 H
-ATOM 39 HE1 HIS A 3 7.765 17.723 28.824 1.00 0.00 H
-ATOM 40 N LYS A 4 9.213 21.483 23.217 1.00 0.00 N
-ATOM 41 CA LYS A 4 9.902 22.139 22.116 1.00 0.00 C
-ATOM 42 C LYS A 4 11.340 22.409 22.530 1.00 0.00 C
-ATOM 43 O LYS A 4 11.602 22.774 23.678 1.00 0.00 O
-ATOM 44 CB LYS A 4 9.205 23.447 21.722 1.00 0.00 C
-ATOM 45 CG LYS A 4 9.799 24.121 20.495 1.00 0.00 C
-ATOM 46 CD LYS A 4 9.008 25.357 20.102 1.00 0.00 C
-ATOM 47 CE LYS A 4 9.606 26.035 18.880 1.00 0.00 C
-ATOM 48 NZ LYS A 4 8.842 27.250 18.484 1.00 0.00 N1+
-ATOM 49 H LYS A 4 9.568 21.628 23.987 1.00 0.00 H
-ATOM 50 HA LYS A 4 9.909 21.551 21.344 1.00 0.00 H
-ATOM 51 HB2 LYS A 4 8.272 23.258 21.533 1.00 0.00 H
-ATOM 52 HB3 LYS A 4 9.270 24.070 22.462 1.00 0.00 H
-ATOM 53 HG2 LYS A 4 10.710 24.392 20.688 1.00 0.00 H
-ATOM 54 HG3 LYS A 4 9.784 23.500 19.750 1.00 0.00 H
-ATOM 55 HD2 LYS A 4 8.096 25.101 19.892 1.00 0.00 H
-ATOM 56 HD3 LYS A 4 9.018 25.991 20.837 1.00 0.00 H
-ATOM 57 HE2 LYS A 4 10.517 26.302 19.078 1.00 0.00 H
-ATOM 58 HE3 LYS A 4 9.594 25.415 18.135 1.00 0.00 H
-ATOM 59 HZ1 LYS A 4 9.215 27.624 17.768 1.00 0.00 H
-ATOM 60 HZ2 LYS A 4 8.001 27.031 18.292 1.00 0.00 H
-ATOM 61 HZ3 LYS A 4 8.842 27.840 19.151 1.00 0.00 H
-ATOM 62 N ASP A 5 12.263 22.226 21.588 1.00 0.00 N
-ATOM 63 CA ASP A 5 13.678 22.447 21.845 1.00 0.00 C
-ATOM 64 C ASP A 5 14.374 22.763 20.531 1.00 0.00 C
-ATOM 65 O ASP A 5 14.035 22.197 19.489 1.00 0.00 O
-ATOM 66 CB ASP A 5 14.324 ...
[truncated message content] |
|
From: <dcl...@us...> - 2016-11-18 22:28:08
|
Revision: 25752
http://sourceforge.net/p/cctbx/code/25752
Author: dcliebschner
Date: 2016-11-18 22:28:06 +0000 (Fri, 18 Nov 2016)
Log Message:
-----------
Parameterize H atoms which have two parent atoms. This should not happen but occurs nonetheless in some pdb files.
Modified Paths:
--------------
trunk/mmtbx/hydrogens/connectivity.py
trunk/mmtbx/hydrogens/tst_parameterization_5.py
Modified: trunk/mmtbx/hydrogens/connectivity.py
===================================================================
--- trunk/mmtbx/hydrogens/connectivity.py 2016-11-18 19:18:12 UTC (rev 25751)
+++ trunk/mmtbx/hydrogens/connectivity.py 2016-11-18 22:28:06 UTC (rev 25752)
@@ -1,6 +1,7 @@
from __future__ import division
#import sys
#import time
+import random
import math
from cctbx import geometry_restraints
from libtbx import group_args
@@ -96,15 +97,19 @@
#print 'atom:', atoms[ih].name+' ('+str(ih)+ ') residue:', \
# atoms[ih].parent().parent().resseq
i_parent_altloc = atoms[i_parent].parent().altloc
+# number_h = number_h + 1
# ---------------------------------------------------------
# if entry exists already == H has two bonds -> nonsensical
if (ih in h_connectivity):
double_H[ih] = [(h_connectivity[ih][0]).iseq, i_parent]
- try:
- del h_connectivity[ih]
- except KeyError:
- pass
- continue
+ if random.randint(0,100) < 50:
+ try:
+ del h_connectivity[ih]
+ number_h = number_h - 1
+ except KeyError:
+ pass
+ else:
+ continue
# ---------------------------------------------------------
number_h = number_h + 1
# h_connectivity[ih][0] --> parent atom
Modified: trunk/mmtbx/hydrogens/tst_parameterization_5.py
===================================================================
--- trunk/mmtbx/hydrogens/tst_parameterization_5.py 2016-11-18 19:18:12 UTC (rev 25751)
+++ trunk/mmtbx/hydrogens/tst_parameterization_5.py 2016-11-18 22:28:06 UTC (rev 25752)
@@ -1,6 +1,5 @@
from __future__ import division
import time
-
import mmtbx.monomer_library.server
import mmtbx.monomer_library.pdb_interpretation
from mmtbx import monomer_library
@@ -47,236 +46,276 @@
unk_list = diagnostics.unk_list
# There are 53 H atoms in the pdb_string, check if all of them are recognized
-# one H atom is refused (VAL 7 HA), as it is bound to two CA atoms at once)
- assert (len(h_parameterization.keys()) == 52), 'Not all H atoms are parameterized'
+# Note: one H atom (VAL 7 HA) is bound to two CA atoms at once
+ assert (len(h_parameterization.keys()) == 68), \
+ 'Not all H atoms are parameterized'
type_list = []
for ih in h_distances:
labels = atoms[ih].fetch_labels()
hp = h_parameterization[ih]
type_list.append(hp.htype)
- assert (h_distances[ih] < 0.2), 'distance too large: %s atom: %s (%s) residue: %s ' \
+ assert (h_distances[ih] < 0.2), \
+ 'distance too large: %s atom: %s (%s) residue: %s ' \
% (hp.htype, atoms[ih].name, ih, labels.resseq.strip())
assert(len(unk_list) == 0), 'Some H atoms are not recognized'
for type1, type2 in zip(type_list, type_list_known):
assert (type1 == type2)
+ #print "'%s'," % type1,
-# Ideal amino acids
+# Several fragments from pdb with double conformations which caused crashes
pdb_str = """\
-CRYST1 27.805 30.931 25.453 90.00 90.00 90.00 P 1
-SCALE1 0.035965 0.000000 0.000000 0.00000
+CRYST1 27.832 30.931 25.475 90.00 90.00 90.00 P 1
+SCALE1 0.035930 0.000000 0.000000 0.00000
SCALE2 0.000000 0.032330 0.000000 0.00000
-SCALE3 0.000000 0.000000 0.039288 0.00000
-ATOM 1 CB SER A 1 10.251 13.658 12.560 1.00 6.41 C
+SCALE3 0.000000 0.000000 0.039254 0.00000
+ATOM 1 CB SER A 1 10.278 16.843 12.582 1.00 6.41 C
ANISOU 1 CB SER A 1 638 591 1207 -162 148 106 C
-ATOM 2 OG SER A 1 9.057 14.277 12.222 1.00 7.60 O
+ATOM 2 OG SER A 1 9.084 17.462 12.244 1.00 7.60 O
ANISOU 2 OG SER A 1 680 955 1251 -244 -164 339 O
-ATOM 3 HB2 SER A 1 10.809 13.573 11.771 1.00 6.41 H
-ATOM 4 HB3 SER A 1 10.073 12.759 12.879 1.00 6.41 H
-ATOM 5 HG SER A 1 8.756 13.939 11.514 1.00 7.60 H
-ATOM 6 N ASER A 1 11.430 15.721 13.108 0.40 5.10 N
+ATOM 3 HB2 SER A 1 10.836 16.758 11.793 1.00 6.41 H
+ATOM 4 HB3 SER A 1 10.100 15.944 12.901 1.00 6.41 H
+ATOM 5 HG SER A 1 8.783 17.124 11.536 1.00 7.60 H
+ATOM 6 N ASER A 1 11.457 18.906 13.130 0.40 5.10 N
ANISOU 6 N ASER A 1 500 632 808 -107 58 104 N
-ATOM 7 CA ASER A 1 11.003 14.453 13.643 0.40 5.95 C
+ATOM 7 CA ASER A 1 11.030 17.638 13.665 0.40 5.95 C
ANISOU 7 CA ASER A 1 582 671 1007 -168 135 158 C
-ATOM 8 C ASER A 1 12.173 13.691 14.274 0.40 5.79 C
+ATOM 8 C ASER A 1 12.200 16.876 14.296 0.40 5.79 C
ANISOU 8 C ASER A 1 661 588 952 -116 206 135 C
-ATOM 9 O ASER A 1 12.067 13.130 15.360 0.40 6.83 O
+ATOM 9 O ASER A 1 12.094 16.315 15.382 0.40 6.83 O
ANISOU 9 O ASER A 1 874 705 1015 -39 314 258 O
-ATOM 10 HA ASER A 1 10.323 14.627 14.313 0.40 5.95 H
-ATOM 11 N BSER A 1 11.530 15.721 13.108 0.60 5.10 N
+ATOM 10 HA ASER A 1 10.350 17.812 14.335 0.40 5.95 H
+ATOM 11 N BSER A 1 11.557 18.906 13.130 0.60 5.10 N
ANISOU 11 N BSER A 1 500 632 808 -107 58 104 N
-ATOM 12 CA BSER A 1 11.103 14.453 13.643 0.60 5.95 C
+ATOM 12 CA BSER A 1 11.130 17.638 13.665 0.60 5.95 C
ANISOU 12 CA BSER A 1 582 671 1007 -168 135 158 C
-ATOM 13 C BSER A 1 12.273 13.691 14.274 0.60 5.79 C
+ATOM 13 C BSER A 1 12.300 16.876 14.296 0.60 5.79 C
ANISOU 13 C BSER A 1 661 588 952 -116 206 135 C
-ATOM 14 O BSER A 1 12.167 13.130 15.360 0.60 6.83 O
+ATOM 14 O BSER A 1 12.194 16.315 15.382 0.60 6.83 O
ANISOU 14 O BSER A 1 874 705 1015 -39 314 258 O
-ATOM 15 HA BSER A 1 10.423 14.627 14.313 0.60 5.95 H
-ATOM 16 CA SER A 2 7.228 18.726 13.388 1.00 5.95 C
+ATOM 15 HA BSER A 1 10.450 17.812 14.335 0.60 5.95 H
+ATOM 16 CA SER A 2 7.255 21.911 13.410 1.00 5.95 C
ANISOU 16 CA SER A 2 582 671 1007 -168 135 158 C
-ATOM 17 OG SER A 2 5.298 18.567 11.943 1.00 7.60 O
+ATOM 17 OG SER A 2 5.325 21.752 11.965 1.00 7.60 O
ANISOU 17 OG SER A 2 680 955 1251 -244 -164 339 O
-ATOM 18 HA SER A 2 6.548 18.900 14.058 1.00 5.95 H
-ATOM 19 HG SER A 2 5.000 18.226 11.236 1.00 7.60 H
-ATOM 20 N ASER A 2 7.555 19.994 12.853 0.40 5.10 N
+ATOM 18 HA SER A 2 6.575 22.085 14.080 1.00 5.95 H
+ATOM 19 HG SER A 2 5.027 21.411 11.258 1.00 7.60 H
+ATOM 20 N ASER A 2 7.582 23.179 12.875 0.40 5.10 N
ANISOU 20 N ASER A 2 500 632 808 -107 58 104 N
-ATOM 21 C ASER A 2 8.298 17.964 14.019 0.40 5.79 C
+ATOM 21 C ASER A 2 8.325 21.149 14.041 0.40 5.79 C
ANISOU 21 C ASER A 2 661 588 952 -116 206 135 C
-ATOM 22 O ASER A 2 8.192 17.403 15.105 0.40 6.83 O
+ATOM 22 O ASER A 2 8.219 20.588 15.127 0.40 6.83 O
ANISOU 22 O ASER A 2 874 705 1015 -39 314 258 O
-ATOM 23 CB ASER A 2 6.376 17.931 12.305 0.40 6.41 C
+ATOM 23 CB ASER A 2 6.403 21.116 12.327 0.40 6.41 C
ANISOU 23 CB ASER A 2 638 591 1207 -162 148 106 C
-ATOM 24 HB2ASER A 2 6.934 17.846 11.516 0.40 6.41 H
-ATOM 25 HB3ASER A 2 6.198 17.032 12.624 0.40 6.41 H
-ATOM 26 N BSER A 2 7.655 19.994 12.853 0.60 5.10 N
+ATOM 24 HB2ASER A 2 6.961 21.031 11.538 0.40 6.41 H
+ATOM 25 HB3ASER A 2 6.225 20.217 12.646 0.40 6.41 H
+ATOM 26 N BSER A 2 7.682 23.179 12.875 0.60 5.10 N
ANISOU 26 N BSER A 2 500 632 808 -107 58 104 N
-ATOM 27 C BSER A 2 8.398 17.964 14.019 0.60 5.79 C
+ATOM 27 C BSER A 2 8.425 21.149 14.041 0.60 5.79 C
ANISOU 27 C BSER A 2 661 588 952 -116 206 135 C
-ATOM 28 O BSER A 2 8.292 17.403 15.105 0.60 6.83 O
+ATOM 28 O BSER A 2 8.319 20.588 15.127 0.60 6.83 O
ANISOU 28 O BSER A 2 874 705 1015 -39 314 258 O
-ATOM 29 CB BSER A 2 6.476 17.931 12.305 0.60 6.41 C
+ATOM 29 CB BSER A 2 6.503 21.116 12.327 0.60 6.41 C
ANISOU 29 CB BSER A 2 638 591 1207 -162 148 106 C
-ATOM 30 HB2BSER A 2 7.043 17.826 11.525 0.60 6.41 H
-ATOM 31 HB3BSER A 2 6.278 17.039 12.633 0.60 6.41 H
-ATOM 32 OG SER A 3 8.321 21.302 15.330 1.00 7.60 O
+ATOM 30 HB2BSER A 2 7.070 21.011 11.547 0.60 6.41 H
+ATOM 31 HB3BSER A 2 6.305 20.224 12.655 0.60 6.41 H
+ATOM 32 OG SER A 3 8.348 24.487 15.352 1.00 7.60 O
ANISOU 32 OG SER A 3 680 955 1251 -244 -164 339 O
-ATOM 33 HG SER A 3 8.020 20.964 14.622 1.00 7.60 H
-ATOM 34 N ASER A 3 10.694 22.746 16.216 0.40 5.10 N
+ATOM 33 HG SER A 3 8.047 24.149 14.644 1.00 7.60 H
+ATOM 34 N ASER A 3 10.721 25.931 16.238 0.40 5.10 N
ANISOU 34 N ASER A 3 500 632 808 -107 58 104 N
-ATOM 35 CA ASER A 3 10.267 21.478 16.751 0.40 5.95 C
+ATOM 35 CA ASER A 3 10.294 24.663 16.773 0.40 5.95 C
ANISOU 35 CA ASER A 3 582 671 1007 -168 135 158 C
-ATOM 36 C ASER A 3 11.437 20.716 17.382 0.40 5.79 C
+ATOM 36 C ASER A 3 11.464 23.901 17.404 0.40 5.79 C
ANISOU 36 C ASER A 3 661 588 952 -116 206 135 C
-ATOM 37 O ASER A 3 11.331 20.155 18.468 0.40 6.83 O
+ATOM 37 O ASER A 3 11.358 23.340 18.490 0.40 6.83 O
ANISOU 37 O ASER A 3 874 705 1015 -39 314 258 O
-ATOM 38 CB ASER A 3 9.515 20.683 15.668 0.40 6.41 C
+ATOM 38 CB ASER A 3 9.542 23.868 15.690 0.40 6.41 C
ANISOU 38 CB ASER A 3 638 591 1207 -162 148 106 C
-ATOM 39 HA ASER A 3 9.587 21.652 17.421 0.40 5.95 H
-ATOM 40 HB2ASER A 3 10.073 20.598 14.879 0.40 6.41 H
-ATOM 41 HB3ASER A 3 9.337 19.784 15.987 0.40 6.41 H
-ATOM 42 N BSER A 3 10.794 22.746 16.216 0.60 5.10 N
+ATOM 39 HA ASER A 3 9.614 24.837 17.443 0.40 5.95 H
+ATOM 40 HB2ASER A 3 10.100 23.783 14.901 0.40 6.41 H
+ATOM 41 HB3ASER A 3 9.364 22.969 16.009 0.40 6.41 H
+ATOM 42 N BSER A 3 10.821 25.931 16.238 0.60 5.10 N
ANISOU 42 N BSER A 3 500 632 808 -107 58 104 N
-ATOM 43 CA BSER A 3 10.367 21.478 16.751 0.60 5.95 C
+ATOM 43 CA BSER A 3 10.394 24.663 16.773 0.60 5.95 C
ANISOU 43 CA BSER A 3 582 671 1007 -168 135 158 C
-ATOM 44 C BSER A 3 11.537 20.716 17.382 0.60 5.79 C
+ATOM 44 C BSER A 3 11.564 23.901 17.404 0.60 5.79 C
ANISOU 44 C BSER A 3 661 588 952 -116 206 135 C
-ATOM 45 O BSER A 3 11.431 20.155 18.468 0.60 6.83 O
+ATOM 45 O BSER A 3 11.458 23.340 18.490 0.60 6.83 O
ANISOU 45 O BSER A 3 874 705 1015 -39 314 258 O
-ATOM 46 CB BSER A 3 9.615 20.683 15.668 0.60 6.41 C
+ATOM 46 CB BSER A 3 9.642 23.868 15.690 0.60 6.41 C
ANISOU 46 CB BSER A 3 638 591 1207 -162 148 106 C
-ATOM 47 HA BSER A 3 9.687 21.652 17.421 0.60 5.95 H
-ATOM 48 HB2BSER A 3 10.182 20.578 14.888 0.60 6.41 H
-ATOM 49 HB3BSER A 3 9.417 19.791 15.996 0.60 6.41 H
-ATOM 50 CA TYR A 4 22.263 7.688 7.671 1.00 13.00 C
+ATOM 47 HA BSER A 3 9.714 24.837 17.443 0.60 5.95 H
+ATOM 48 HB2BSER A 3 10.209 23.763 14.910 0.60 6.41 H
+ATOM 49 HB3BSER A 3 9.444 22.976 16.018 0.60 6.41 H
+ATOM 50 CA TYR A 4 22.290 10.873 7.693 1.00 13.00 C
ANISOU 50 CA TYR A 4 2514 1244 1180 -28 116 139 C
-ATOM 51 C TYR A 4 22.047 6.341 6.986 1.00 11.81 C
+ATOM 51 C TYR A 4 22.074 9.526 7.008 1.00 11.81 C
ANISOU 51 C TYR A 4 2332 1026 1130 -105 88 190 C
-ATOM 52 O TYR A 4 21.511 5.414 7.583 1.00 12.59 O
+ATOM 52 O TYR A 4 21.538 8.599 7.605 1.00 12.59 O
ANISOU 52 O TYR A 4 2489 1154 1140 -72 111 219 O
-ATOM 53 N VAL A 5 22.490 6.252 5.739 1.00 10.80 N
+ATOM 53 N VAL A 5 22.517 9.437 5.761 1.00 10.80 N
ANISOU 53 N VAL A 5 2053 884 1167 -29 80 167 N
-ATOM 54 H VAL A 5 22.805 6.918 5.296 1.00 12.96 H
-ATOM 55 CA AVAL A 5 22.489 5.000 5.000 0.40 10.37 C
+ATOM 54 H VAL A 5 22.832 10.103 5.318 1.00 12.96 H
+ATOM 55 CA AVAL A 5 22.516 8.185 5.022 0.40 10.37 C
ANISOU 55 CA AVAL A 5 1783 902 1255 67 -148 -14 C
-ATOM 56 CA BVAL A 5 22.589 5.000 5.000 0.60 10.37 C
+ATOM 56 CA BVAL A 5 22.616 8.185 5.022 0.60 10.37 C
ANISOU 56 CA BVAL A 5 1783 902 1255 67 -148 -14 C
-ATOM 57 N SER A 6 17.731 16.841 12.524 1.00 4.20 N
+ATOM 57 N SER A 6 17.758 20.026 12.546 1.00 4.20 N
ANISOU 57 N SER A 6 578 469 547 -59 10 -119 N
-ATOM 58 CA SER A 6 17.665 17.225 11.128 1.00 4.34 C
+ATOM 58 CA SER A 6 17.692 20.410 11.150 1.00 4.34 C
ANISOU 58 CA SER A 6 576 472 600 -2 0 0 C
-ATOM 59 C SER A 6 18.893 16.719 10.356 1.00 3.90 C
+ATOM 59 C SER A 6 18.920 19.904 10.378 1.00 3.90 C
ANISOU 59 C SER A 6 554 387 543 -50 -15 -34 C
-ATOM 60 O SER A 6 18.771 16.316 9.200 1.00 4.24 O
+ATOM 60 O SER A 6 18.798 19.501 9.222 1.00 4.24 O
ANISOU 60 O SER A 6 634 443 534 -77 -67 -59 O
-ATOM 61 H SER A 6 17.744 17.490 13.088 1.00 4.20 H
-ATOM 62 HA SER A 6 16.878 16.752 10.817 1.00 4.34 H
-ATOM 63 CB ASER A 6 17.624 18.766 11.122 0.60 5.87 C
+ATOM 61 H SER A 6 17.771 20.675 13.110 1.00 4.20 H
+ATOM 62 HA SER A 6 16.905 19.937 10.839 1.00 4.34 H
+ATOM 63 CB ASER A 6 17.651 21.951 11.144 0.60 5.87 C
ANISOU 63 CB ASER A 6 843 568 821 229 -39 -32 C
-ATOM 64 OG ASER A 6 17.467 19.197 9.817 0.60 6.95 O
+ATOM 64 OG ASER A 6 17.494 22.382 9.839 0.60 6.95 O
ANISOU 64 OG ASER A 6 1107 702 833 257 200 132 O
-ATOM 65 HB2ASER A 6 16.892 19.086 11.673 0.60 4.80 H
-ATOM 66 HB3ASER A 6 18.442 19.126 11.500 0.60 4.80 H
-ATOM 67 HG ASER A 6 16.940 19.851 9.799 0.60 4.95 H
-ATOM 68 CB BSER A 6 17.207 18.629 10.754 0.20 4.89 C
+ATOM 65 HB2ASER A 6 16.919 22.271 11.695 0.60 4.80 H
+ATOM 66 HB3ASER A 6 18.469 22.311 11.522 0.60 4.80 H
+ATOM 67 HG ASER A 6 16.967 23.036 9.821 0.60 4.95 H
+ATOM 68 CB BSER A 6 17.234 21.814 10.776 0.20 4.89 C
ANISOU 68 CB BSER A 6 429 509 922 98 134 102 C
-ATOM 69 OG BSER A 6 18.185 19.487 11.305 0.20 5.81 O
+ATOM 69 OG BSER A 6 18.212 22.672 11.327 0.20 5.81 O
ANISOU 69 OG BSER A 6 757 477 971 72 15 -142 O
-ATOM 70 HB2BSER A 6 17.148 18.735 9.792 0.20 4.80 H
-ATOM 71 HB3BSER A 6 16.327 18.820 11.115 0.20 4.80 H
-ATOM 72 HG BSER A 6 17.993 20.284 11.124 0.20 4.95 H
-ATOM 73 CB CSER A 6 17.650 18.745 10.952 0.20 4.80 C
+ATOM 70 HB2BSER A 6 17.175 21.920 9.814 0.20 4.80 H
+ATOM 71 HB3BSER A 6 16.354 22.005 11.137 0.20 4.80 H
+ATOM 72 HG BSER A 6 18.020 23.469 11.146 0.20 4.95 H
+ATOM 73 CB CSER A 6 17.677 21.930 10.974 0.20 4.80 C
ANISOU 73 CB CSER A 6 432 322 1070 -132 173 4 C
-ATOM 74 OG CSER A 6 16.465 19.192 11.576 0.20 4.95 O
+ATOM 74 OG CSER A 6 16.492 22.377 11.598 0.20 4.95 O
ANISOU 74 OG CSER A 6 511 563 806 114 -22 -75 O
-ATOM 75 HB2CSER A 6 18.432 19.150 11.359 0.20 4.80 H
-ATOM 76 HB3CSER A 6 17.661 18.987 10.013 0.20 4.80 H
-ATOM 77 HG CSER A 6 16.593 19.261 12.403 0.20 4.95 H
-ATOM 78 N VAL A 7 17.914 10.234 15.459 1.00 10.80 N
+ATOM 75 HB2CSER A 6 18.459 22.335 11.381 0.20 4.80 H
+ATOM 76 HB3CSER A 6 17.688 22.172 10.035 0.20 4.80 H
+ATOM 77 HG CSER A 6 16.620 22.446 12.425 0.20 4.95 H
+ATOM 78 N VAL A 7 17.941 13.419 15.481 1.00 10.80 N
ANISOU 78 N VAL A 7 2053 884 1167 -29 80 167 N
-ATOM 79 C VAL A 7 19.220 8.954 13.918 1.00 9.56 C
+ATOM 79 C VAL A 7 19.247 12.139 13.940 1.00 9.56 C
ANISOU 79 C VAL A 7 1874 685 1073 3 -185 85 C
-ATOM 80 O VAL A 7 19.644 9.970 13.400 1.00 10.25 O
+ATOM 80 O VAL A 7 19.671 13.155 13.422 1.00 10.25 O
ANISOU 80 O VAL A 7 2013 634 1247 25 7 95 O
-ATOM 82 HA VAL A 7 17.893 8.230 15.321 0.44 12.11 H
-ATOM 83 CA AVAL A 7 17.913 8.982 14.720 0.44 10.37 C
-ANISOU 83 CA AVAL A 7 1783 902 1255 67 -148 -14 C
-ATOM 84 CB AVAL A 7 16.666 8.901 13.831 0.44 11.26 C
-ANISOU 84 CB AVAL A 7 1571 963 1743 96 -176 62 C
-ATOM 85 CG1AVAL A 7 16.663 10.050 12.901 0.44 11.06 C
-ANISOU 85 CG1AVAL A 7 1704 1072 1425 125 -105 37 C
-ATOM 86 CG2AVAL A 7 16.581 7.572 13.075 0.44 10.02 C
-ANISOU 86 CG2AVAL A 7 1510 782 1516 -92 19 232 C
-ATOM 87 HB AVAL A 7 15.878 8.972 14.392 0.44 13.51 H
-ATOM 88 HG11AVAL A 7 16.650 10.872 13.416 0.44 13.27 H
-ATOM 89 HG12AVAL A 7 15.875 9.999 12.339 0.44 13.27 H
-ATOM 90 HG13AVAL A 7 17.463 10.015 12.354 0.44 13.27 H
-ATOM 91 HG21AVAL A 7 15.762 7.118 13.327 0.44 12.03 H
-ATOM 92 HG22AVAL A 7 17.348 7.026 13.309 0.44 12.03 H
-ATOM 93 HG23AVAL A 7 16.581 7.751 12.121 0.44 12.03 H
-ATOM 94 CA BVAL A 7 17.908 8.985 14.702 0.56 10.10 C
-ANISOU 94 CA BVAL A 7 1914 779 1143 -16 5 185 C
-ATOM 95 CB BVAL A 7 16.719 8.890 13.693 0.56 11.08 C
-ANISOU 95 CB BVAL A 7 1662 1363 1184 84 -25 58 C
-ATOM 96 CG1BVAL A 7 16.672 7.503 13.046 0.56 12.75 C
-ANISOU 96 CG1BVAL A 7 1479 1600 1766 255 -607 -238 C
-ATOM 97 CG2BVAL A 7 15.371 9.207 14.360 0.56 11.66 C
-ANISOU 97 CG2BVAL A 7 1508 1829 1094 214 -319 28 C
-ATOM 98 HB BVAL A 7 16.858 9.540 12.987 0.56 13.29 H
-ATOM 99 HG11BVAL A 7 17.505 7.348 12.573 0.56 15.30 H
-ATOM 100 HG12BVAL A 7 15.927 7.469 12.426 0.56 15.30 H
-ATOM 101 HG13BVAL A 7 16.556 6.835 13.740 0.56 15.30 H
-ATOM 102 HG21BVAL A 7 14.972 9.972 13.917 0.56 13.99 H
-ATOM 103 HG22BVAL A 7 15.523 9.409 15.296 0.56 13.99 H
-ATOM 104 HG23BVAL A 7 14.790 8.435 14.277 0.56 13.99 H
-ATOM 105 N SER A 8 14.499 15.875 18.201 1.00 5.10 N
-ANISOU 105 N SER A 8 500 632 808 -107 58 104 N
-ATOM 106 CA SER A 8 14.072 14.607 18.736 1.00 5.95 C
-ANISOU 106 CA SER A 8 582 671 1007 -168 135 158 C
-ATOM 107 C SER A 8 15.242 13.845 19.367 1.00 5.79 C
-ANISOU 107 C SER A 8 661 588 952 -116 206 135 C
-ATOM 108 O SER A 8 15.136 13.284 20.453 1.00 6.83 O
-ANISOU 108 O SER A 8 874 705 1015 -39 314 258 O
-ATOM 110 HA SER A 8 13.392 14.781 19.406 1.00 5.95 H
-ATOM 111 CB ASER A 8 13.543 13.720 17.561 0.52 10.56 C
-ANISOU 111 CB ASER A 8 1137 993 1883 -635 -478 170 C
-ATOM 112 OG ASER A 8 13.113 12.490 18.030 0.52 13.20 O
-ANISOU 112 OG ASER A 8 1612 1164 2238 -898 145 -29 O
-ATOM 113 HB2ASER A 8 12.813 14.173 17.111 0.52 6.41 H
-ATOM 114 HB3ASER A 8 14.245 13.593 16.904 0.52 6.41 H
-ATOM 115 HG ASER A 8 12.320 12.554 18.300 0.52 7.60 H
-ATOM 116 CB BSER A 8 13.320 13.812 17.653 0.47 6.41 C
-ANISOU 116 CB BSER A 8 638 591 1207 -162 148 106 C
-ATOM 117 OG BSER A 8 12.126 14.431 17.315 0.47 7.60 O
-ANISOU 117 OG BSER A 8 680 955 1251 -244 -164 339 O
-ATOM 118 HB2BSER A 8 13.878 13.727 16.864 0.47 6.41 H
-ATOM 119 HB3BSER A 8 13.142 12.913 17.972 0.47 6.41 H
-ATOM 120 HG BSER A 8 11.825 14.093 16.607 0.47 7.60 H
-ATOM 5 C AASN A 9 19.177 3.788 12.902 0.46 10.01 C
-ANISOU 5 C AASN A 9 1311 1084 1408 -15 -324 -40 C
-ATOM 6 C BASN A 9 19.096 3.776 12.973 0.54 9.67 C
-ANISOU 6 C BASN A 9 1289 1143 1241 -122 -106 160 C
-ATOM 15 N SER A 10 19.894 2.942 13.626 1.00 9.28 N
-ANISOU 15 N SER A 10 1274 902 1350 -21 -87 -74 N
-ATOM 16 CA ASER A 10 19.300 1.835 14.341 0.63 9.94 C
-ANISOU 16 CA ASER A 10 1406 774 1598 87 -335 -196 C
-ATOM 17 CA BSER A 10 19.317 1.815 14.347 0.37 9.47 C
-ANISOU 17 CA BSER A 10 1420 764 1413 89 320 -137 C
-ATOM 22 H SER A 10 20.749 2.997 13.694 1.00 11.14 H
+ATOM 81 HA VAL A 7 17.920 11.415 15.343 0.44 12.11 H
+ATOM 82 CA AVAL A 7 17.940 12.167 14.742 0.44 10.37 C
+ANISOU 82 CA AVAL A 7 1783 902 1255 67 -148 -14 C
+ATOM 83 CB AVAL A 7 16.693 12.086 13.853 0.44 11.26 C
+ANISOU 83 CB AVAL A 7 1571 963 1743 96 -176 62 C
+ATOM 84 CG1AVAL A 7 16.690 13.235 12.923 0.44 11.06 C
+ANISOU 84 CG1AVAL A 7 1704 1072 1425 125 -105 37 C
+ATOM 85 CG2AVAL A 7 16.608 10.757 13.097 0.44 10.02 C
+ANISOU 85 CG2AVAL A 7 1510 782 1516 -92 19 232 C
+ATOM 86 HB AVAL A 7 15.905 12.157 14.414 0.44 13.51 H
+ATOM 87 HG11AVAL A 7 16.677 14.057 13.438 0.44 13.27 H
+ATOM 88 HG12AVAL A 7 15.902 13.184 12.361 0.44 13.27 H
+ATOM 89 HG13AVAL A 7 17.490 13.200 12.376 0.44 13.27 H
+ATOM 90 HG21AVAL A 7 15.789 10.303 13.349 0.44 12.03 H
+ATOM 91 HG22AVAL A 7 17.375 10.211 13.331 0.44 12.03 H
+ATOM 92 HG23AVAL A 7 16.608 10.936 12.143 0.44 12.03 H
+ATOM 93 CA BVAL A 7 17.935 12.170 14.724 0.56 10.10 C
+ANISOU 93 CA BVAL A 7 1914 779 1143 -16 5 185 C
+ATOM 94 CB BVAL A 7 16.746 12.075 13.715 0.56 11.08 C
+ANISOU 94 CB BVAL A 7 1662 1363 1184 84 -25 58 C
+ATOM 95 CG1BVAL A 7 16.699 10.688 13.068 0.56 12.75 C
+ANISOU 95 CG1BVAL A 7 1479 1600 1766 255 -607 -238 C
+ATOM 96 CG2BVAL A 7 15.398 12.392 14.382 0.56 11.66 C
+ANISOU 96 CG2BVAL A 7 1508 1829 1094 214 -319 28 C
+ATOM 97 HB BVAL A 7 16.885 12.725 13.009 0.56 13.29 H
+ATOM 98 HG11BVAL A 7 17.532 10.533 12.595 0.56 15.30 H
+ATOM 99 HG12BVAL A 7 15.954 10.654 12.448 0.56 15.30 H
+ATOM 100 HG13BVAL A 7 16.583 10.020 13.762 0.56 15.30 H
+ATOM 101 HG21BVAL A 7 14.999 13.157 13.939 0.56 13.99 H
+ATOM 102 HG22BVAL A 7 15.550 12.594 15.318 0.56 13.99 H
+ATOM 103 HG23BVAL A 7 14.817 11.620 14.299 0.56 13.99 H
+ATOM 104 N SER A 8 14.526 19.060 18.223 1.00 5.10 N
+ANISOU 104 N SER A 8 500 632 808 -107 58 104 N
+ATOM 105 CA SER A 8 14.099 17.792 18.758 1.00 5.95 C
+ANISOU 105 CA SER A 8 582 671 1007 -168 135 158 C
+ATOM 106 C SER A 8 15.269 17.030 19.389 1.00 5.79 C
+ANISOU 106 C SER A 8 661 588 952 -116 206 135 C
+ATOM 107 O SER A 8 15.163 16.469 20.475 1.00 6.83 O
+ANISOU 107 O SER A 8 874 705 1015 -39 314 258 O
+ATOM 108 HA SER A 8 13.419 17.966 19.428 1.00 5.95 H
+ATOM 109 CB ASER A 8 13.570 16.905 17.583 0.52 10.56 C
+ANISOU 109 CB ASER A 8 1137 993 1883 -635 -478 170 C
+ATOM 110 OG ASER A 8 13.140 15.675 18.052 0.52 13.20 O
+ANISOU 110 OG ASER A 8 1612 1164 2238 -898 145 -29 O
+ATOM 111 HB2ASER A 8 12.840 17.358 17.133 0.52 6.41 H
+ATOM 112 HB3ASER A 8 14.272 16.778 16.926 0.52 6.41 H
+ATOM 113 HG ASER A 8 12.347 15.739 18.322 0.52 7.60 H
+ATOM 114 CB BSER A 8 13.347 16.997 17.675 0.47 6.41 C
+ANISOU 114 CB BSER A 8 638 591 1207 -162 148 106 C
+ATOM 115 OG BSER A 8 12.153 17.616 17.337 0.47 7.60 O
+ANISOU 115 OG BSER A 8 680 955 1251 -244 -164 339 O
+ATOM 116 HB2BSER A 8 13.905 16.912 16.886 0.47 6.41 H
+ATOM 117 HB3BSER A 8 13.169 16.098 17.994 0.47 6.41 H
+ATOM 118 HG BSER A 8 11.852 17.278 16.629 0.47 7.60 H
+ATOM 119 C AASN A 9 19.204 6.973 12.924 0.46 10.01 C
+ANISOU 119 C AASN A 9 1311 1084 1408 -15 -324 -40 C
+ATOM 120 C BASN A 9 19.123 6.961 12.995 0.54 9.67 C
+ANISOU 120 C BASN A 9 1289 1143 1241 -122 -106 160 C
+ATOM 121 N SER A 10 19.921 6.127 13.648 1.00 9.28 N
+ANISOU 121 N SER A 10 1274 902 1350 -21 -87 -74 N
+ATOM 122 H SER A 10 20.776 6.182 13.716 1.00 11.14 H
+ATOM 123 CA ASER A 10 19.327 5.020 14.363 0.63 9.94 C
+ANISOU 123 CA ASER A 10 1406 774 1598 87 -335 -196 C
+ATOM 124 CA BSER A 10 19.344 5.000 14.369 0.37 9.47 C
+ANISOU 124 CA BSER A 10 1420 764 1413 89 320 -137 C
+ATOM 125 N TYR A 11 9.640 8.356 6.598 1.00 15.00 N
+ATOM 126 C TYR A 11 11.549 9.847 6.197 1.00 15.00 C
+ATOM 127 O TYR A 11 11.823 9.939 5.000 1.00 15.00 O
+ATOM 128 HA TYR A 11 9.553 10.281 6.071 1.00 15.00 H
+ATOM 129 CA ATYR A 11 10.100 9.738 6.660 0.50 15.00 C
+ATOM 130 CB ATYR A 11 9.960 10.286 8.081 0.50 15.00 C
+ATOM 131 CG ATYR A 11 8.637 9.956 8.735 0.50 15.00 C
+ATOM 132 CD1ATYR A 11 7.436 10.254 8.105 0.50 15.00 C
+ATOM 133 CD2ATYR A 11 8.589 9.348 9.982 0.50 15.00 C
+ATOM 134 CE1ATYR A 11 6.224 9.955 8.699 0.50 15.00 C
+ATOM 135 CE2ATYR A 11 7.383 9.044 10.584 0.50 15.00 C
+ATOM 136 CZ ATYR A 11 6.203 9.350 9.938 0.50 15.00 C
+ATOM 137 OH ATYR A 11 5.000 9.050 10.533 0.50 15.00 O
+ATOM 138 HB2ATYR A 11 10.664 9.911 8.632 0.50 15.00 H
+ATOM 139 HB3ATYR A 11 10.044 11.252 8.053 0.50 15.00 H
+ATOM 140 HD1ATYR A 11 7.446 10.662 7.270 0.50 15.00 H
+ATOM 141 HD2ATYR A 11 9.383 9.140 10.420 0.50 15.00 H
+ATOM 142 HE1ATYR A 11 5.427 10.160 8.265 0.50 15.00 H
+ATOM 143 HE2ATYR A 11 7.366 8.637 11.419 0.50 15.00 H
+ATOM 144 HH ATYR A 11 5.131 8.687 11.279 0.50 15.00 H
+ATOM 145 CA BTYR A 11 10.100 9.738 6.660 0.50 15.00 C
+ATOM 146 CB BTYR A 11 9.960 10.286 8.081 0.50 15.00 C
+ATOM 147 CG BTYR A 11 10.474 11.698 8.244 0.50 15.00 C
+ATOM 148 CD1BTYR A 11 9.764 12.780 7.741 0.50 15.00 C
+ATOM 149 CD2BTYR A 11 11.671 11.950 8.902 0.50 15.00 C
+ATOM 150 CE1BTYR A 11 10.230 14.072 7.888 0.50 15.00 C
+ATOM 151 CE2BTYR A 11 12.146 13.239 9.053 0.50 15.00 C
+ATOM 152 CZ BTYR A 11 11.422 14.296 8.545 0.50 15.00 C
+ATOM 153 OH BTYR A 11 11.890 15.582 8.693 0.50 15.00 O
+ATOM 154 HB2BTYR A 11 9.021 10.283 8.326 0.50 15.00 H
+ATOM 155 HB3BTYR A 11 10.459 9.717 8.687 0.50 15.00 H
+ATOM 156 HD1BTYR A 11 8.960 12.632 7.297 0.50 15.00 H
+ATOM 157 HD2BTYR A 11 12.162 11.239 9.246 0.50 15.00 H
+ATOM 158 HE1BTYR A 11 9.744 14.787 7.545 0.50 15.00 H
+ATOM 159 HE2BTYR A 11 12.949 13.393 9.496 0.50 15.00 H
+ATOM 160 HH BTYR A 11 12.620 15.575 9.109 0.50 15.00 H
TER
END
"""
-type_list_known = ['2tetra', '2tetra', 'alg1b', '3neigbs', '3neigbs',
- '3neigbs', 'alg1b', '2tetra', '2tetra', '2tetra', '2tetra', 'alg1b',
- '3neigbs', '2tetra', '2tetra', '3neigbs', '2tetra', '2tetra',
- 'flat_2neigbs', 'alg1b', '3neigbs', '2tetra', '2tetra', 'alg1b',
- '2tetra', '2tetra', 'alg1b', '2tetra', '2tetra', 'alg1b', '3neigbs',
- 'prop', 'prop', 'prop', 'prop', 'prop', 'prop', '3neigbs', 'prop',
- 'prop', 'prop', 'prop', 'prop', 'prop', '3neigbs', '2tetra', '2tetra',
- 'alg1b', '2tetra', '2tetra', 'alg1b', 'flat_2neigbs']
+type_list_known = ['2tetra', '2tetra', 'alg1b', '3neigbs', '2tetra',
+ 'flat_2neigbs', 'flat_2neigbs', 'flat_2neigbs', '3neigbs', 'alg1b', '3neigbs',
+ 'alg1b', '2tetra', '2tetra', '2tetra', '2tetra', 'flat_2neigbs',
+ 'flat_2neigbs', '2tetra', '2tetra', 'alg1b', 'alg1b', '3neigbs', '2tetra',
+ '2tetra', '3neigbs', '2tetra', '2tetra', 'flat_2neigbs', 'flat_2neigbs',
+ '2tetra', 'alg1b', '3neigbs', '2tetra', '2tetra', 'alg1b', '2tetra', '2tetra',
+ 'alg1b', '2tetra', '2tetra', 'alg1b', '3neigbs', '3neigbs', 'prop', 'prop',
+ 'prop', 'prop', 'prop', 'prop', 'flat_2neigbs', '3neigbs', 'prop']
+
if (__name__ == "__main__"):
t0 = time.time()
exercise()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mo...@us...> - 2016-11-18 19:18:15
|
Revision: 25751
http://sourceforge.net/p/cctbx/code/25751
Author: monarin
Date: 2016-11-18 19:18:12 +0000 (Fri, 18 Nov 2016)
Log Message:
-----------
Update on screen output when reading input.
- More informative messages
- Ask if run no. should be overwritten.
Modified Paths:
--------------
trunk/prime/postrefine/mod_input.py
Modified: trunk/prime/postrefine/mod_input.py
===================================================================
--- trunk/prime/postrefine/mod_input.py 2016-11-18 17:53:52 UTC (rev 25750)
+++ trunk/prime/postrefine/mod_input.py 2016-11-18 19:18:12 UTC (rev 25751)
@@ -1,7 +1,7 @@
from __future__ import division
import iotbx.phil
from libtbx.utils import Usage, Sorry
-import sys, os
+import sys, os, shutil, glob
master_phil = iotbx.phil.parse("""
data = None
@@ -376,11 +376,11 @@
crystal_system_dict = {'Triclinic': 0, 'Monoclinic': 0, 'Orthorhombic': 0, 'Tetragonal': 0, 'Trigonal': 0, 'Hexagonal': 0, 'Cubic':0}
if params.target_crystal_system is not None:
if params.target_crystal_system not in crystal_system_dict:
- raise Sorry("Oops, incorrect target_crystal_system (available options: Triclinic, Monoclinic, Orthorhombic, Tetragonal, Trigonal, Hexagonal, or Cubic).")
+ raise Sorry("Invalid input target_crystal_system. Please choose following options: Triclinic, Monoclinic, Orthorhombic, Tetragonal, Trigonal, Hexagonal, or Cubic.")
#check n_residues
if params.n_residues is None:
- raise Sorry("Oops, we have a new required parameter n_residues. Please specify number of residues of your structure in asymmetric unit (n_residues = xxx).")
+ raise Sorry("Number of residues is required. Please specify number of residues of your structure in asymmetric unit (n_residues = xxx).")
#check pixel_size
if params.pixel_size_mm is None:
@@ -391,14 +391,20 @@
import cPickle as pickle
int_pickle = pickle.load(open(frame_0,"rb"))
params.pixel_size_mm = int_pickle['pixel_size']
- print 'Found pixel size in the integration pickles (override pixel_size_mm=%10.8f)'%(params.pixel_size_mm)
+ print 'Info: Found pixel size in the integration pickles (override pixel_size_mm=%10.8f)'%(params.pixel_size_mm)
except Exception:
raise Sorry("Pixel size in millimeter is required. Use cctbx.image_viewer to view one of your images and note down the value (e.g. for marccd set pixel_size_mm=0.079346).")
#generate run_no folder
if flag_check_exist:
if os.path.exists(params.run_no):
- raise Sorry("Oops, the run number %s already exists."%params.run_no)
+ print "Warning: run number %s already exists."%(params.run_no)
+ run_overwrite = raw_input('Overwrite?: N/Y (Enter for default)')
+ if run_overwrite == 'Y':
+ shutil.rmtree(params.run_no)
+ else:
+ raise Sorry("Run number exists. Please specifiy different run no.")
+
#make folders
os.makedirs(params.run_no+'/pickles')
os.makedirs(params.run_no+'/inputs')
@@ -436,7 +442,6 @@
pickle_list = pickle_list_file.read().split("\n")
else:
# p is a glob
- import glob
pickle_list = glob.glob(p)
for pickle_filename in pickle_list:
if os.path.isfile(pickle_filename):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|