def main(): option_parser, opts, args = parse_command_line_parameters(**script_info) input_fp = opts.input_fp # mapping_fp = opts.mapping_fp output_prefix = opts.output_prefix column_name = opts.site_id # data, headers, _ = parse_mapping_file(open(mapping_fp, 'U')) lines = open(input_fp, 'U').readlines() individuals, time_points, data = parse_smp_unifrac_distances(lines) # write the three output files fd = open(output_prefix+'individuals.txt', 'w') fd.writelines([ind+'.'+column_name+'\n' for ind in individuals]) fd.close fd = open(output_prefix+'time_points.txt', 'w') fd.writelines('\t'.join(map(str, time_points))) fd.close() # the data goes tab separated fd = open(output_prefix+'data.txt', 'w') fd.writelines(['\t'.join(map(str, element))+'\n' for element in data]) fd.close()
def test_parse_smp_unifrac_distances(self): individuals, timepoints, data = parse_smp_unifrac_distances( FORHEAD_TEST) expected_individuals = ['CUB000', 'CUB003', 'CUB004', 'CUB007'] expected_timepoints = ['0.5', '1', '2', '3', '4', '5', '6', '7', '8'] expected_data = DATA_MATRIX self.assertEquals(expected_individuals, individuals) self.assertEquals(expected_timepoints, timepoints) self.assertTrue(all((expected_data == data).tolist()))