comparison design_matrix_creator.py @ 52:7fc17dc83777 draft

Uploaded
author yhoogstrate
date Wed, 04 Jun 2014 07:08:26 -0400
parents 9e9b98a1cb12
children
comparison
equal deleted inserted replaced
51:ca24a51fa144 52:7fc17dc83777
4 4
5 class sampleContainer: 5 class sampleContainer:
6 def __init__(self): 6 def __init__(self):
7 self.samples = [] 7 self.samples = []
8 self.treatments = {} 8 self.treatments = {}
9 self.treatment_index = []
9 self.treatment_types = {} 10 self.treatment_types = {}
10 11
11 def do_decode(self,encoded_str): 12 def do_decode(self,encoded_str):
12 return encoded_str.decode("base64").strip().replace("\t",'') 13 return encoded_str.decode("base64").strip().replace("\t",'')
13 14
127 128
128 if(self.treatments.has_key(treatment["name"])): 129 if(self.treatments.has_key(treatment["name"])):
129 sys.stderr.write("Error:\n* Treatment was already added: '"+treatment["name"]+"\n") 130 sys.stderr.write("Error:\n* Treatment was already added: '"+treatment["name"]+"\n")
130 else: 131 else:
131 self.treatments[treatment["name"]] = treatment 132 self.treatments[treatment["name"]] = treatment
133 self.treatment_index.append(treatment["name"])
132 self.treatment_types[treatment["name"]] = treatment_type 134 self.treatment_types[treatment["name"]] = treatment_type
133 print " - Treatment \""+treatment["name"]+"\" of type \""+treatment_type+"\" is valid" 135 print " - Treatment \""+treatment["name"]+"\" of type \""+treatment_type+"\" is valid"
134 136
135 def export(self,output): 137 def export(self,output):
136 # Open file stream 138 # Open file stream
138 fh = sys.stdout 140 fh = sys.stdout
139 else: 141 else:
140 fh = open(args.output,"w") 142 fh = open(args.output,"w")
141 143
142 # Write header: 144 # Write header:
143 fh.write("sample-name\t"+"\t".join(self.treatments.keys())+"\n") 145 fh.write("sample-name\t"+"\t".join(self.treatment_index)+"\n")
144 146
145 # Write body: 147 # Write body:
146 for sample in self.samples: 148 for sample in self.samples:
147 fh.write(sample) 149 fh.write(sample)
148 for treatment in self.treatments.keys(): 150 for treatment_id in self.treatment_index:
149 fh.write("\t"+self.treatments[treatment]["sample_index"][sample]) 151 treatment = self.treatments[treatment_id]
152 fh.write("\t"+treatment["sample_index"][sample])
150 fh.write("\n") 153 fh.write("\n")
151 154
152 fh.close() 155 fh.close()
153 156
154 if __name__=="__main__": 157 if __name__=="__main__":