示例#1
0
    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")