Added 3 Reference Tables (Antibody, Cellline, Condition). Modified Library to link...
authorRami Rauch <rrauch@stanford.edu>
Tue, 6 May 2008 23:40:31 +0000 (23:40 +0000)
committerRami Rauch <rrauch@stanford.edu>
Tue, 6 May 2008 23:40:31 +0000 (23:40 +0000)
gaworkflow/frontend/fctracker/models.py

index 87afc9ee8b3107a1d5cbf317f4df0586a9c24085..86046e49997445f62f61be1359bca1e688ffb35a 100644 (file)
@@ -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 '<div><span style="margin-right:10px">1)%s</span><span style="margin-right:10px">2)%s</span><span style="margin-right:10px">3)%s</span><span style="margin-right:10px">4)%s</span><span style="margin-right:10px">5)%s</span><span style="margin-right:10px">6)%s</span><span style="margin-right:10px">7)%s</span><span style="margin-right:10px">8)%s</span></div>' % (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'),)