[project @ Basic Library Table]
[htsworkflow.git] / elandifier / fctracker / models.py
1 from django.db import models
2 from elandifier import settings
3
4 # Create your models here.
5
6
7 class Specie(models.Model):
8   
9   class Admin: pass
10   
11   scientific_name = models.CharField(maxlength=256, unique=True, db_index=True)
12
13
14   def __str__(self):
15     return self.scientific_name
16
17 #class BedFilePack(models.Model):
18
19 class Library(models.Model):
20   class Admin: pass
21   
22   library_id = models.IntegerField(unique=True, db_index=True)
23   library_name = models.CharField(maxlength=100, unique=True)
24   library_species = models.ForeignKey(Specie)
25   
26   made_from_sample = models.ForeignKey('self', blank=True)
27   
28   made_by = models.CharField(maxlength=50, blank=True)
29   creation_date = models.DateField(blank=True, null=True)
30   notes = models.TextField(blank=True)
31   
32   def __str__(self):
33     return self.library_name
34
35
36 class FlowCell(models.Model):
37   
38   class Admin: pass
39   
40   flowcell_id = models.CharField(maxlength=20, unique=True, db_index=True)
41   
42   run_date = models.DateTimeField()
43   
44   lane1_sample = models.CharField(maxlength=500)
45   lane1_species = models.ForeignKey(Specie, related_name="lane1_species")
46   lane2_sample = models.CharField(maxlength=500)
47   lane2_species = models.ForeignKey(Specie, related_name="lane2_species")
48   lane3_sample = models.CharField(maxlength=500)
49   lane3_species = models.ForeignKey(Specie, related_name="lane3_species")
50   lane4_sample = models.CharField(maxlength=500)
51   lane4_species = models.ForeignKey(Specie, related_name="lane4_species")
52   
53   lane5_sample = models.CharField(maxlength=500)
54   lane5_species = models.ForeignKey(Specie, related_name="lane5_species")
55   lane6_sample = models.CharField(maxlength=500)
56   lane6_species = models.ForeignKey(Specie, related_name="lane6_species")
57   lane7_sample = models.CharField(maxlength=500)
58   lane7_species = models.ForeignKey(Specie, related_name="lane7_species")
59   lane8_sample = models.CharField(maxlength=500)
60   lane8_species = models.ForeignKey(Specie, related_name="lane8_species")
61   
62   notes = models.TextField(blank=True)
63
64   def __str__(self):
65     return self.flowcell_id
66
67
68 class ElandResult(models.Model):
69   
70   class Admin: pass
71   
72   flow_cell = models.ForeignKey(FlowCell)
73   config_file = models.FileField(upload_to=settings.UPLOADTO_CONFIG_FILE)
74   eland_result_pack = models.FileField(upload_to=settings.UPLOADTO_ELAND_RESULT_PACKS)
75   bed_file_pack = models.FileField(upload_to=settings.UPLOADTO_BED_PACKS)
76   
77   notes = models.TextField(blank=True)