From 8854db2c7f2989f88285ff69c259445dfe0ead83 Mon Sep 17 00:00:00 2001 From: Rami Rauch Date: Tue, 6 May 2008 23:40:31 +0000 Subject: [PATCH] Added 3 Reference Tables (Antibody, Cellline, Condition). Modified Library to link with FKs to these Ref tables. Flowcell Admin features modified: list_display, Added Lanes function to print all 8 lanes in one column. --- gaworkflow/frontend/fctracker/models.py | 56 +++++++++++++------------ 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/gaworkflow/frontend/fctracker/models.py b/gaworkflow/frontend/fctracker/models.py index 87afc9e..86046e4 100644 --- a/gaworkflow/frontend/fctracker/models.py +++ b/gaworkflow/frontend/fctracker/models.py @@ -2,27 +2,31 @@ from django.db import models from gaworkflow.frontend import settings class Antibody(models.Model): - - antibody_name = models.CharField(max_length=100, unique=True, db_index=True, core=True) + antigene = models.CharField(max_length=500, db_index=True) + catalog = models.CharField(max_length=50, unique=True, db_index=True) + antibodies = models.CharField(max_length=500, db_index=True) + source = models.CharField(max_length=500, blank=True, db_index=True) + biology = models.TextField(blank=True) notes = models.TextField(blank=True) def __str__(self): - return self.antibody_name + return '%s - %s (%s)' % (self.antigene, self.antibodies, self.catalog) class Meta: verbose_name_plural = "antibodies" - ordering = ["antibody_name"] + ordering = ["antigene"] class Admin: + list_display = ('antigene','antibodies','catalog','source','biology','notes') + list_filter = ('antibodies','source') fields = ( (None, { - 'fields': (('antibody_name','notes'),) + 'fields': (('antigene','antibodies'),('catalog','source'),('biology'),('notes')) }), ) class Cellline(models.Model): - - cellline_name = models.CharField(max_length=100, unique=True, db_index=True, core=True) + cellline_name = models.CharField(max_length=100, unique=True, db_index=True) notes = models.TextField(blank=True) def __str__(self): - return self.cellline_name + return '%s' % (self.cellline_name) class Meta: ordering = ["cellline_name"] @@ -30,16 +34,15 @@ class Cellline(models.Model): class Admin: fields = ( (None, { - 'fields': (('cellline_name','notes'),) + 'fields': (('cellline_name'),('notes'),) }), ) class Condition(models.Model): - - condition_name = models.CharField(max_length=2000, unique=True, db_index=True, core=True) + condition_name = models.CharField(max_length=2000, unique=True, db_index=True) notes = models.TextField(blank=True) def __str__(self): - return self.condition_name + return '%s' % (self.condition_name) class Meta: ordering = ["condition_name"] @@ -47,12 +50,11 @@ class Condition(models.Model): class Admin: fields = ( (None, { - 'fields': (('condition_name','notes'),) + 'fields': (('condition_name'),('notes'),) }), ) class Species(models.Model): - scientific_name = models.CharField(max_length=256, unique=False, db_index=True, core=True) common_name = models.CharField(max_length=256, blank=True) use_genome_build = models.CharField(max_length=100, blank=True) #blank=False, null=False) @@ -72,15 +74,12 @@ class Species(models.Model): ) class Library(models.Model): - library_id = models.CharField(max_length=30, unique=True, db_index=True, core=True) library_name = models.CharField(max_length=100, unique=True, core=True) library_species = models.ForeignKey(Species, core=True) - #use_genome_build = models.CharField(max_length=100, blank=False, null=False) - #RNAseq = models.BooleanField() - cell_line = models.ForeignKey(Cellline, blank=True, core=True) - condition = models.ForeignKey(Condition,blank=True,core=True) - antibody = models.ForeignKey(Antibody,blank=True,core=True) + cell_line = models.ForeignKey(Cellline,core=True) + condition = models.ForeignKey(Condition,core=True) + antibody = models.ForeignKey(Antibody,blank=True,null=True,core=True) EXPERIMENT_TYPES = ( ('INPUT_RXLCh','INPUT_RXLCh'), @@ -116,7 +115,7 @@ class Library(models.Model): notes = models.TextField(blank=True) def __str__(self): - return '#%s: %s' % (self.library_id, self.library_name) + return '%s: %s' % (self.library_id, self.library_name) class Meta: verbose_name_plural = "libraries" @@ -132,7 +131,7 @@ class Library(models.Model): list_filter = ('stopping_point', 'ten_nM_dilution', 'library_species', 'made_for', 'made_by') fields = ( (None, { - 'fields': (('library_id', 'library_name'), ('library_species'),) + 'fields': (('library_id', 'library_name'),('library_species'),('experiment_type'),('cell_line','condition','antibody'),) }), ('Creation Information:', { 'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('avg_lib_size','undiluted_concentration', 'ten_nM_dilution', 'successful_pM'), 'notes',) @@ -188,25 +187,30 @@ class FlowCell(models.Model): ('Britney','Britney'), ) - #kit_id = models.CharField(max_length=50, blank=True) cluster_mac_id = models.CharField(max_length=50, choices=CLUSTER_MAC, default='M304') - seq_mac_id = models.CharField(max_length=50, choices=SEQ_MAC, default='EAS149') + seq_mac_id = models.CharField(max_length=50, choices=SEQ_MAC, verbose_name = 'Sequencer', default='EAS149') notes = models.TextField(blank=True) def __str__(self): #return '%s (%s)' % (self.flowcell_id, self.run_date) return '%s' % (self.flowcell_id) + + + def Lanes(self): + return '
1)%s2)%s3)%s4)%s5)%s6)%s7)%s8)%s
' % (self.lane_1_library,self.lane_2_library,self.lane_3_library,self.lane_4_library,self.lane_5_library,self.lane_6_library,self.lane_7_library,self.lane_8_library) + Lanes.allow_tags = True class Meta: - ordering = ["run_date"] + ordering = ["-run_date"] class Admin: save_on_top = True date_hierarchy = "run_date" save_on_top = True search_fields = ['lane_1_library', 'lane_2_library', 'lane_3_library', 'lane_4_library', 'lane_5_library', 'lane_6_library', 'lane_7_library', 'lane_8_library'] - list_display = ('flowcell_id', 'run_date', 'lane_1_library', 'lane_2_library', 'lane_3_library', 'lane_4_library', 'lane_5_library', 'lane_6_library', 'lane_7_library', 'lane_8_library') + list_display = ('flowcell_id','seq_mac_id','run_date', 'Lanes') + list_filter = ('seq_mac_id',) fields = ( (None, { 'fields': ('run_date', ('flowcell_id','cluster_mac_id','seq_mac_id'), ('read_length'),) -- 2.30.2