def __call__(self, track, slice = None ): statement = ''' SELECT distinct i.peakval, i.interval_id, m.motif IS NOT NULL FROM %(track)s_intervals AS i LEFT JOIN %(track)s_nubiscan AS m ON m.id = i.interval_id AND m.motif = '%(slice)s' ORDER BY i.peakval DESC''' % locals() data = self.get( statement ) result = Stats.getSensitivityRecall( [(int(x[0]), x[2] > 0) for x in data ] ) return odict( zip( ("peakval", "proportion with motif", "recall" ), zip( *result ) ) )
def __call__(self, track, slice = None ): # obtain evalue distribution data = self.get( ''' SELECT i.peakval, m.nmatches FROM %(track)s_intervals AS i, %(track)s_mast AS m WHERE m.id = i.interval_id \ AND m.motif = '%(slice)s' ORDER BY i.peakval DESC''' % locals() ) result = Stats.getSensitivityRecall( [ (int(x[0]), x[1] > 0) for x in data ] ) return odict( zip( ("peakval", "proportion with motif", "recall" ), zip( *result ) ) )