Mercurial > repos > yhoogstrate > edger_with_design_matrix
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__": |
