def process_location(self): source = UCSCSequenceSource() left_padding = 1000 right_padding = 1000 sequence = source.sequence_around_loc( self.form_result["chromosome"], self.form_result["location"], self.form_result["width"], left_padding, right_padding, ) # TODO: better selective update method c.chromosome = self.form_result["chromosome"] c.location = self.form_result["location"] c.width = self.form_result["width"] c.left_padding = left_padding c.right_padding = right_padding c.sequence = sequence c.sequences = [sequence] for seq in c.sequences: seq.snps = self._get_snps(seq.chromosome, seq.start, seq.end) seq.positive_display_sequence = seq.amplicon.positive_strand_sequence.lower() seq.negative_display_sequence = seq.amplicon.negative_strand_sequence.lower() assayutil.set_amplicon_snps(c.sequences) c.assay_form = h.LiteralForm() return render("/assay/location_output.html")