def add_sweeps(self, items): items_with_sweeps = [] for item in items: items_with_sweeps.append(item) if not item.is_blank(): items_with_sweeps.append(RunSample.create_sweep(self.run)) return items_with_sweeps
def apply_method_rules(self, sample_block): number_of_methods = self.run.number_of_methods or 1 if number_of_methods <= 1: return sample_block for sample in sample_block: sample.method_number = 1 sample.save() extended_sample_block = [] if self.run.is_method_type_individual_vial(): extended_sample_block = sample_block[:] for method_number in range(2, number_of_methods+1): for sample in sample_block: extended_sample_block.append(RunSample.create_copy(sample, method_number)) else: for sample in sample_block: extended_sample_block.append(sample) for method_number in range(2, number_of_methods+1): extended_sample_block.append(RunSample.create_copy(sample, method_number)) return extended_sample_block
def forwards(self, orm): "Sanitize filenames for the incomplete samples of incomplete runs." incomplete = orm.RunSample.objects.filter(complete=False).exclude(run__state=RUN_STATES.COMPLETE[0]) checked = 0 changed = 0 for sample in incomplete: old = sample.filename sample.filename = RunSample.sanitize_filename(old) if old != sample.filename: sample.save() changed += 1 checked += 1 print "Checked filenames of %d samples, changed %d." % (checked, changed)
def create_insertion_map(self, samples, rules): '''Returns a dict: keys are positions in the sample_list, values an array of items to insert at that position''' insertion_map = {} for rule in rules: sample_count = rule.sample_count start_idxs = range(0, len(samples), sample_count) end_idxs = range(sample_count, len(samples), sample_count) + [len(samples)] for start,end in zip(start_idxs, end_idxs): position = end if rule.in_random_position: position = random.randint(start+1, end) arr = insertion_map.setdefault(position, []) for i in range(rule.count): arr.append(RunSample.create(self.run, rule.component)) return insertion_map
def apply_method_rules(self, sample_block): number_of_methods = self.run.number_of_methods or 1 if number_of_methods <= 1: return sample_block for sample in sample_block: sample.method_number = 1 sample.save() extended_sample_block = [] if self.run.is_method_type_individual_vial(): extended_sample_block = sample_block[:] for method_number in range(2, number_of_methods + 1): for sample in sample_block: extended_sample_block.append( RunSample.create_copy(sample, method_number)) else: for sample in sample_block: extended_sample_block.append(sample) for method_number in range(2, number_of_methods + 1): extended_sample_block.append( RunSample.create_copy(sample, method_number)) return extended_sample_block
def create_insertion_map(self, samples, rules): '''Returns a dict: keys are positions in the sample_list, values an array of items to insert at that position''' insertion_map = {} for rule in rules: sample_count = rule.sample_count start_idxs = range(0, len(samples), sample_count) end_idxs = range(sample_count, len(samples), sample_count) + [len(samples)] for start, end in zip(start_idxs, end_idxs): position = end if rule.in_random_position: position = random.randint(start + 1, end) arr = insertion_map.setdefault(position, []) for i in range(rule.count): arr.append(RunSample.create(self.run, rule.component)) return insertion_map
def create_end_block(self): end_block = [] for rule in self.run.rule_generator.end_block_rules: for i in range(rule.count): end_block.append(RunSample.create(self.run, rule.component)) return end_block