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)
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))