view get_normal_vs_tumor_sample_ids.py @ 4:1728895db87e draft default tip

Uploaded
author ynewton
date Thu, 17 Jan 2013 20:24:14 -0500
parents 72b0123a8587
children
line wrap: on
line source

import optparse, re
parser = optparse.OptionParser()
parser.add_option("--in_matrix", dest="in_matrix", action="store", default="", help="")
parser.add_option("--out_normals", dest="out_normals", action="store", default="", help="")
parser.add_option("--out_tumor", dest="out_tumor", action="store", default="", help="")
opts, args = parser.parse_args()
	
#process input arguments:
input_expression_file_name = opts.in_matrix
output_normal_file_name = opts.out_normals
output_tumor_file_name = opts.out_tumor

normal_sample_re = re.compile('TCGA-\w\w-\w\w\w\w-1\d\w-.*')
tumor_sample_re = re.compile("TCGA-\w\w-\w\w\w\w-0\d\w-.*")
#TCGA-A2-A0D2-01A-21R-A034-07

normal_samples = []
tumor_samples = []
expression_file = open(input_expression_file_name, 'r')
line_number = 0
for line in expression_file:
	line_elems = line.strip().split("\t")
	if line_number == 0:
		#this is the header line, need to figure out what samples are normal and which are tumor
		elem_counter = 1
		for elem in line_elems[1:]:
			normal_re_match = normal_sample_re.match(elem)
			if normal_re_match:
				normal_samples.append(elem)
				
			tumor_re_match = tumor_sample_re.match(elem)
			if tumor_re_match:
				tumor_samples.append(elem)
			
			elem_counter += 1
	
	else:
		break
	
	line_number += 1
expression_file.close()

output_normal_file = open(output_normal_file_name, 'w')
print >> output_normal_file, "\n".join(normal_samples)
output_normal_file.close()

output_tumor_file = open(output_tumor_file_name, 'w')
print >> output_tumor_file, "\n".join(tumor_samples)
output_tumor_file.close()