class Meta:
ordering = ["condition_name"]
+class ExperimentType(models.Model):
+ name = models.CharField(max_length=50, unique=True)
+
+ def __unicode__(self):
+ return unicode(self.name)
+
class Tag(models.Model):
tag_name = models.CharField(max_length=100, db_index=True,blank=False,null=False)
TAG_CONTEXT = (
ordering = ["scientific_name"]
class Affiliation(models.Model):
- name = models.CharField(max_length=256, db_index=True, verbose_name='Group Name')
- contact = models.CharField(max_length=256, null=True, blank=True,verbose_name='Contact Name')
+ name = models.CharField(max_length=256, db_index=True, verbose_name='Name')
+ contact = models.CharField(max_length=256, null=True, blank=True,verbose_name='Lab Name')
email = models.EmailField(null=True,blank=True)
def __unicode__(self):
ordering = ["name","contact"]
unique_together = (("name", "contact"),)
+class LibraryType(models.Model):
+ name = models.CharField(max_length=255, unique=True)
+
+ def __unicode__(self):
+ return unicode(self.name)
+
class Library(models.Model):
id = models.AutoField(primary_key=True)
- library_id = models.CharField(max_length=30, db_index=True)
+ library_id = models.CharField(max_length=30, db_index=True, unique=True)
library_name = models.CharField(max_length=100, unique=True)
library_species = models.ForeignKey(Species)
- cell_line = models.ForeignKey(Cellline)
- condition = models.ForeignKey(Condition)
+ # new field 2008 Mar 5, alter table samples_library add column "hidden" NOT NULL default 0;
+ hidden = models.BooleanField()
+ cell_line = models.ForeignKey(Cellline, blank=True, null=True, verbose_name="Background")
+ condition = models.ForeignKey(Condition, blank=True, null=True)
antibody = models.ForeignKey(Antibody,blank=True,null=True)
# New field Aug/25/08. SQL: alter table fctracker_library add column "lib_affiliation" varchar(256) NULL;
affiliations = models.ManyToManyField(Affiliation,related_name='library_affiliations',null=True)
# SQL to add column: alter table fctracker_library add column "replicate" smallint unsigned NULL;
REPLICATE_NUM = ((1,1),(2,2),(3,3),(4,4))
replicate = models.PositiveSmallIntegerField(choices=REPLICATE_NUM,default=1)
-
- EXPERIMENT_TYPES = (
- ('INPUT_RXLCh','INPUT_RXLCh'),
- ('ChIP-seq', 'ChIP-seq'),
- ('Sheared', 'Sheared'),
- ('RNA-seq', 'RNA-seq'),
- ('Methyl-seq', 'Methyl-seq'),
- ('DIP-seq', 'DIP-seq'),
- )
- experiment_type = models.CharField(max_length=50, choices=EXPERIMENT_TYPES,
- default='RNA-seq')
-
+ experiment_type = models.ForeignKey(ExperimentType)
+ library_type = models.ForeignKey(LibraryType, null=True)
creation_date = models.DateField(blank=True, null=True)
made_for = models.CharField(max_length=50, blank=True,
verbose_name='ChIP/DNA/RNA Made By')
('Done', 'Completed'),
)
stopping_point = models.CharField(max_length=25, choices=PROTOCOL_END_POINTS, default='Done')
- amplified_from_sample = models.ForeignKey('self', blank=True, null=True)
+ amplified_from_sample = models.ForeignKey('self', blank=True, null=True, related_name='amplified_into_sample')
undiluted_concentration = models.DecimalField("Concentration",
- max_digits=5, decimal_places=2, default=0, blank=True, null=True,
+ max_digits=5, decimal_places=2, blank=True, null=True,
help_text=u"Undiluted concentration (ng/\u00b5l)")
# note \u00b5 is the micro symbol in unicode
successful_pM = models.DecimalField(max_digits=9, decimal_places=1, blank=True, null=True)
class Meta:
verbose_name_plural = "libraries"
- ordering = ["-creation_date"] #["-library_id"]
+ #ordering = ["-creation_date"]
+ ordering = ["-library_id"]
def antibody_name(self):
str ='<a target=_self href="/admin/samples/antibody/'+self.antibody.id.__str__()+'/" title="'+self.antibody.__str__()+'">'+self.antibody.nickname+'</a>'
for t in affs:
ar.append(t.__unicode__())
return '%s' % (", ".join(ar))
+
+ def is_archived(self):
+ """
+ returns True if archived else False
+ """
+ if self.longtermstorage_set.count() > 0:
+ return True
+ else:
+ return False
def libtags(self):
affs = self.tags.all().order_by('tag_name')
def public(self):
SITE_ROOT = '/'
- summary_url = urlparse.urljoin(SITE_ROOT, 'library/%s' % (self.library_id))
+ summary_url = self.get_absolute_url()
return '<a href="%s">S</a>' % (summary_url,)
public.allow_tags = True
+
+ @models.permalink
+ def get_absolute_url(self):
+ return ('htsworkflow.frontend.samples.views.library_to_flowcells', [str(self.library_id)])