Example #1
0
    def handle(self, **options):
        seq_starter = (LibrarySequencing.objects.select_related(
            'source_stock', 'source_stock__intended_clone'))

        # Categorize all sequences by blat results and intended clone
        seqs = seq_starter.all()
        seqs_blat = categorize_sequences_by_blat_results(seqs)
        self.print_categories('ALL SEQUENCES', seqs_blat)

        # Categorize sequences that have any SUP score
        any_suppression = get_positives_any_worm('SUP', 2,
                                                 shows_any_suppression)
        seqs_any_sup = seq_starter.filter(source_stock__in=any_suppression)
        seqs_any_sup_blat = categorize_sequences_by_blat_results(seqs_any_sup)
        self.print_categories('SEQUENCES CORRESPONDING TO ANY SUP '
                              'SCORES', seqs_any_sup_blat)

        # Categorize sequences for SUP percentage-criteria positives
        positives = get_positives_any_worm('SUP', 2,
                                           passes_sup_secondary_percent)
        seqs_pos = seq_starter.filter(source_stock__in=positives)
        seqs_pos_blat = categorize_sequences_by_blat_results(seqs_pos)
        self.print_categories(
            'SEQUENCES CORRESPONDING TO SUP SECONDARY '
            'PERCENT POSITIVES ONLY', seqs_pos_blat)

        # Categorize sequences for SUP high-confidence positives
        high_conf = get_positives_any_worm('SUP', 2,
                                           passes_sup_secondary_stringent)
        seqs_high = seq_starter.filter(source_stock__in=high_conf)
        seqs_high_blat = categorize_sequences_by_blat_results(seqs_high)
        self.print_categories(
            'SEQUENCES CORRESPONDING TO SUP SECONDARY '
            'STRINGENT POSITIVES ONLY', seqs_high_blat)
    def handle(self, **options):
        seq_starter = LibrarySequencing.objects.select_related("source_stock", "source_stock__intended_clone")

        # Categorize all sequences by blat results and intended clone
        seqs = seq_starter.all()
        seqs_blat = categorize_sequences_by_blat_results(seqs)
        self.print_categories("ALL SEQUENCES", seqs_blat)

        # Categorize sequences that have any SUP score
        any_suppression = get_positives_any_worm("SUP", 2, shows_any_suppression)
        seqs_any_sup = seq_starter.filter(source_stock__in=any_suppression)
        seqs_any_sup_blat = categorize_sequences_by_blat_results(seqs_any_sup)
        self.print_categories("SEQUENCES CORRESPONDING TO ANY SUP " "SCORES", seqs_any_sup_blat)

        # Categorize sequences for SUP percentage-criteria positives
        positives = get_positives_any_worm("SUP", 2, passes_sup_secondary_percent)
        seqs_pos = seq_starter.filter(source_stock__in=positives)
        seqs_pos_blat = categorize_sequences_by_blat_results(seqs_pos)
        self.print_categories("SEQUENCES CORRESPONDING TO SUP SECONDARY " "PERCENT POSITIVES ONLY", seqs_pos_blat)

        # Categorize sequences for SUP high-confidence positives
        high_conf = get_positives_any_worm("SUP", 2, passes_sup_secondary_stringent)
        seqs_high = seq_starter.filter(source_stock__in=high_conf)
        seqs_high_blat = categorize_sequences_by_blat_results(seqs_high)
        self.print_categories("SEQUENCES CORRESPONDING TO SUP SECONDARY " "STRINGENT POSITIVES ONLY", seqs_high_blat)
Example #3
0
    def handle(self, **options):
        positives = get_positives_any_worm('SUP', 2, criteria)

        seqs = (LibrarySequencing.objects
                .filter(source_stock__in=positives)
                .select_related('source_stock',
                                'source_stock__intended_clone'))
        categorized_seqs = categorize_sequences_by_blat_results(seqs)

        stocks_to_resequence = []
        for category, values in categorized_seqs.items():
            if _should_be_redone(category):
                stocks_to_resequence.extend(
                    [x.source_stock for x in values])

        stocks_to_resequence = sorted(stocks_to_resequence,
                                      key=lambda stock: stock.id)

        assigned = assign_to_plates(
            stocks_to_resequence, vertical=True,
            empties_per_plate=options['empties_per_plate'])
        rows = get_plate_assignment_rows(assigned)

        # Write output
        self.stdout.write('source_plate,source_well,'
                          'destination_plate,destination_well')
        for row in rows:
            destination_plate = get_destination_plate(
                row[0], options['first_plate_number'])
            destination_well = row[1]
            source = row[2]

            if hasattr(source, 'plate'):
                source_plate = source.plate
            else:
                source_plate = None

            if hasattr(source, 'well'):
                source_well = source.well
            else:
                source_well = None

            self.stdout.write('{},{},{},{}'.format(
                source_plate, source_well,
                destination_plate, destination_well))