예제 #1
0
    def show(self, out=sys.stdout, prefix="  ", show_percentiles=False):
        def fs(format, value):
            return format_value(format, value, replace_none_with=("(none)"))

        maxlen = max([len(label) for label in self.labels])
        percentiles = {}
        if (show_percentiles):
            perc_attr = ["clashscore", "mpscore", "r_work", "r_free"]
            stats = dict([(name, getattr(self, name)) for name in perc_attr])
            from mmtbx.polygon import get_statistics_percentiles
            percentiles = get_statistics_percentiles(self.d_min, stats)
        for k, name in enumerate(self.__slots__):
            format = "%%s%%-%ds = %%s" % maxlen
            if (k < 3):
                format += " %%"
            percentile_info = ""
            if (show_percentiles):
                percentile = percentiles.get(name, None)
                if (percentile is not None):
                    format += " (percentile: %s)"
                    percentile_info = "%.1f" % percentile
                else:
                    format += "%s"
            else:
                format += "%s"
            value = getattr(self, name)
            if (value is not None):
                print >> out, format % (prefix, self.labels[k],
                                        fs(self.formats[k],
                                           value), percentile_info)
        return self
예제 #2
0
 def show (self, out=sys.stdout, prefix="  ", show_percentiles=False) :
   def fs (format, value) :
     return format_value(format, value, replace_none_with=("(none)"))
   maxlen = max([ len(label) for label in self.labels ])
   percentiles = {}
   if (show_percentiles) :
     perc_attr = ["clashscore", "mpscore", "r_work", "r_free"]
     stats = dict([ (name, getattr(self, name)) for name in perc_attr ])
     from mmtbx.polygon import get_statistics_percentiles
     percentiles = get_statistics_percentiles(self.d_min, stats)
   for k, name in enumerate(self.__slots__) :
     format = "%%s%%-%ds = %%s" % maxlen
     if (k < 3) :
       format += " %%"
     percentile_info = ""
     if (show_percentiles) :
       percentile = percentiles.get(name, None)
       if (percentile is not None) :
         format += " (percentile: %s)"
         percentile_info = "%.1f" % percentile
       else :
         format += "%s"
     else :
       format += "%s"
     value = getattr(self, name)
     if (value is not None) :
       print >> out, format % (prefix, self.labels[k], fs(self.formats[k],
         value), percentile_info)
   return self
예제 #3
0
def test_all () :
  pr, unused_definitions = polygon.master_params.fetch(sources = [params3],
    track_unused_definitions = True)
  polygon.polygon(params = pr.extract())
  working_phil = polygon.master_params.fetch(source=pr)
  percentiles = polygon.get_statistics_percentiles(d_min=1.5,
    stats={ "clashscore" : 21, "r_work" : 0.174, "r_free" : 0.19 })
  # XXX This will change when the database is updated
  assert approx_equal(percentiles['clashscore'], 1.10791, 1.e-4)
예제 #4
0
def test_all():
    pr, unused_definitions = polygon.master_params.fetch(sources=[params3], track_unused_definitions=True)
    polygon.polygon(params=pr.extract())
    working_phil = polygon.master_params.fetch(source=pr)
    percentiles = polygon.get_statistics_percentiles(
        d_min=1.5, stats={"clashscore": 21, "r_work": 0.174, "r_free": 0.19}
    )
    # XXX This will change when the database is updated
    assert approx_equal(percentiles["clashscore"], 1.10791, 1.0e-4)