def __filter__(fname, noun, verb, merge_obj): merged_list = None if fname: f = lambda x, n: x.format(noun=noun, verb=verb, fname=fname, num=n) x = ps.FilterFile(fname) c = 'Read list of {num} {noun} to {verb} from {fname}' print f(c, len(x.IDList)) merged_list = merge_obj.loj(x.IDList) len_merged_list = len(merged_list) if len_merged_list > 0: c = 'After merging, {num} {noun} remain' print f(c, len_merged_list) else: error_msg = 'No {noun} retained for analysis' raise ValueError(f(error_msg)) return merged_list
def test_filter(self): filter = ps.FilterFile('test/vcf_test/test.ind') print filter.IDList assert filter.n == 5 correct = np.array(['per1', 'per2', 'per3', 'per4', 'per5']) assert np.all(filter.IDList.values.reshape(5) == correct)