IMP logo
IMP Reference Guide  develop.e004443c3b,2024/04/25
The Integrative Modeling Platform
statistics/write_a_metric.py

This simple example shows how to write an IMP.statistics.Metric in Python.

1 ## \example statistics/write_a_metric.py
2 # This simple example shows how to write an IMP.statistics.Metric in Python.
3 
4 import IMP.statistics
5 import math
6 import random
7 import sys
8 
9 IMP.setup_from_argv(sys.argv, "write a metric")
10 
11 
12 class MyMetric(IMP.statistics.Metric):
13 
14  """Define a metric on a list of floating point numbers based on
15  their difference"""
16 
17  def __init__(self, nums):
18  """Store the list of numbers to measure distances between"""
19  IMP.statistics.Metric.__init__(self, "MyMetric%1%")
20  self._nums = nums
21 
22  def get_distance(self, i, j):
23  "Return the magnitude of the distance between the ith and jth number"
24  return math.fabs(self._nums[i] - self._nums[j])
25 
26  def get_number_of_items(self):
27  return len(self._nums)
28 
29 
30 mm = MyMetric([random.uniform(0, 1) for i in range(0, 15)])
31 
33 print(cc.get_number_of_clusters())