annotate get_normal_vs_tumor_sample_ids.py @ 3:28d795d45ca2 draft

Uploaded
author ynewton
date Thu, 17 Jan 2013 20:22:07 -0500
parents 72b0123a8587
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
1 import optparse, re
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
2 parser = optparse.OptionParser()
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
3 parser.add_option("--in_matrix", dest="in_matrix", action="store", default="", help="")
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
4 parser.add_option("--out_normals", dest="out_normals", action="store", default="", help="")
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
5 parser.add_option("--out_tumor", dest="out_tumor", action="store", default="", help="")
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
6 opts, args = parser.parse_args()
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
7
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
8 #process input arguments:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
9 input_expression_file_name = opts.in_matrix
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
10 output_normal_file_name = opts.out_normals
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
11 output_tumor_file_name = opts.out_tumor
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
12
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
13 normal_sample_re = re.compile('TCGA-\w\w-\w\w\w\w-1\d\w-.*')
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
14 tumor_sample_re = re.compile("TCGA-\w\w-\w\w\w\w-0\d\w-.*")
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
15 #TCGA-A2-A0D2-01A-21R-A034-07
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
16
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
17 normal_samples = []
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
18 tumor_samples = []
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
19 expression_file = open(input_expression_file_name, 'r')
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
20 line_number = 0
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
21 for line in expression_file:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
22 line_elems = line.strip().split("\t")
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
23 if line_number == 0:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
24 #this is the header line, need to figure out what samples are normal and which are tumor
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
25 elem_counter = 1
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
26 for elem in line_elems[1:]:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
27 normal_re_match = normal_sample_re.match(elem)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
28 if normal_re_match:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
29 normal_samples.append(elem)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
30
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
31 tumor_re_match = tumor_sample_re.match(elem)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
32 if tumor_re_match:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
33 tumor_samples.append(elem)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
34
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
35 elem_counter += 1
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
36
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
37 else:
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
38 break
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
39
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
40 line_number += 1
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
41 expression_file.close()
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
42
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
43 output_normal_file = open(output_normal_file_name, 'w')
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
44 print >> output_normal_file, "\n".join(normal_samples)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
45 output_normal_file.close()
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
46
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
47 output_tumor_file = open(output_tumor_file_name, 'w')
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
48 print >> output_tumor_file, "\n".join(tumor_samples)
72b0123a8587 Uploaded
ynewton
parents:
diff changeset
49 output_tumor_file.close()