Class TwoGroupFingerprintAnalyzer
Summarize the similarity differences within and between two groups
of fingerprints.  All i!=j pair-wise similarity comparisons are
made within a group, and all pair-wise similarity comparsions are
made between the groups.  However, the list of similarity values is
compressed into a statistical digest (min, max, median, etc.)
API example:
------------
fp_gen.setType('Linear')
fp_gen.setAtomBondTyping(fp_gen.getDefaultAtomTypingScheme())
group1 = []
group2 = []
# Title is the compound identifer in this example.
for st in structure.StructureReader('actives.mae'):
    item = (st.title, fp_gen.generate(st))
    group1.append(item)
for st in structure.StructureReader('decoys.mae'):
    item = (st.title, fp_gen.generate(st))
    group2.append(item)
fp_sim = canvas_sim.CanvasFingerprintSimilarity(logger=logger)
twogrpfp = test.TwoGroupFingerprintAnalyzer(
    group1,
    group2,
    fp_sim,
)
twogrpfp.analyzeGroups()
print twogrpfp.within_group1_global_max
print twogrpfp.within_group2_global_max
print twogrpfp.between_groups_global_max
Instance variables:
-------------------
@ivar within_group1_summary:
    List of within-group1 StatisticalSummary instances the same
    order and length of the number if items emitted from fp_group1.
    i=j pairs are excluded from the analysis.
@ivar within_group2_summary:
    List of within-group2 StatisticalSummary instances the same order
    and length of the number if items emitted from fp_group2. i=j
    pairs are excluded from the analysis.
@ivar between_groups_summary:
    List of between-group1-and-group2 StatisticalSummary instances
    the same order and length of the number if items emitted from
    fp_group1.  i=j pair are included in the analysis.
@ivar group1_ids:
    Ordered list of group1 identifiers.
@ivar group2_ids:
    Ordered list of group1 identifiers.
    |  | 
        
          | __init__(self,
        fp_group1,
        fp_group2,
        fp_sim) |  |  | 
    |  | 
        
          | analyzeGroups(self) Analyze within each group, and between groups.
 |  |  | 
    |  | 
        
          | analyzeWithinGroups(self) |  |  | 
    |  | 
        
          | analyzeBetweenGroups(self) |  |  | 
| 
  | __init__(self,
        fp_group1,
        fp_group2,
        fp_sim)
    (Constructor)
 |  |  
    Parameters:
        fp_group1(iterable) - A sequence or iterable of (id, fingerprint) tuples for group 1.fp_group2(iterable) - A sequence or iterable of (id, fingerprint) tuples for group 2.fp_sim(canvas.similarity.CanvasFingerprintSimilarity) - Configured Canvas similarity calculator. | 
 
| within_group1_global_maxMaximum value over all group1 summary members. 
    Get Method:unreachable.within_group1_global_max(self)
        - Maximum value over all group1 summary members.
     | 
 
| within_group2_global_maxMaximum value over all group2 summary members. 
    Get Method:unreachable.within_group2_global_max(self)
        - Maximum value over all group2 summary members.
     | 
 
| between_groups_global_maxMaximum value over all between group1-2 summary members. 
    Get Method:unreachable.between_groups_global_max(self)
        - Maximum value over all between group1-2 summary members.
     | 
 
| within_group1_global_minMinimum value over all group1 summary members. 
    Get Method:unreachable.within_group1_global_min(self)
        - Minimum value over all group1 summary members.
     | 
 
| within_group2_global_minMinimum value over all group2 summary members. 
    Get Method:unreachable.within_group2_global_min(self)
        - Minimum value over all group2 summary members.
     | 
 
| between_groups_global_minMinimum value over all between group1-2 summary members. 
    Get Method:unreachable.between_groups_global_min(self)
        - Minimum value over all between group1-2 summary members.
     |