search_fields = ('flowcell_id',
'sequencer__name',
'cluster_station__name',
- '=lane_1_library__library_id',
- '=lane_2_library__library_id',
- '=lane_3_library__library_id',
- '=lane_4_library__library_id',
- '=lane_5_library__library_id',
- '=lane_6_library__library_id',
- '=lane_7_library__library_id',
- '=lane_8_library__library_id',
- 'lane_1_library__library_name',
- 'lane_2_library__library_name',
- 'lane_3_library__library_name',
- 'lane_4_library__library_name',
- 'lane_5_library__library_name',
- 'lane_6_library__library_name',
- 'lane_7_library__library_name',
- 'lane_8_library__library_name')
+ '=lane__library__library_id',
+ 'lane__library__library_name')
list_display = ('flowcell_id','run_date','Lanes')
list_filter = ('sequencer','cluster_station')
fieldsets = (
(None, {
'fields': ('run_date', ('flowcell_id','cluster_station','sequencer'), ('read_length', 'paired_end'),)
}),
- ('Lanes:', {
- 'fields' : (('lane_1_library', 'lane_1_pM', 'lane_1_cluster_estimate'), ('lane_2_library', 'lane_2_pM', 'lane_2_cluster_estimate'), ('lane_3_library', 'lane_3_pM', 'lane_3_cluster_estimate'), ('lane_4_library', 'lane_4_pM', 'lane_4_cluster_estimate'), ('lane_5_library', 'lane_5_pM', 'lane_5_cluster_estimate'), ('lane_6_library', 'lane_6_pM', 'lane_6_cluster_estimate'), ('lane_7_library', 'lane_7_pM', 'lane_7_cluster_estimate'), ('lane_8_library', 'lane_8_pM', 'lane_8_cluster_estimate'),)
- }),
+ #('Lanes:', {
+ # 'fields' : (('lane__library__library_id', 'lane__pM', 'lane__cluster_estimate'),)
+ #}),
('Notes:', { 'fields': ('notes',),}),
)
inlines = [
advanced_run = models.BooleanField(default=False)
paired_end = models.BooleanField(default=False)
read_length = models.IntegerField(default=32) #Stanford is currenlty 25
-
- lane_1_library = models.ForeignKey(Library, related_name="lane_1_library")
- lane_2_library = models.ForeignKey(Library, related_name="lane_2_library")
- lane_3_library = models.ForeignKey(Library, related_name="lane_3_library")
- lane_4_library = models.ForeignKey(Library, related_name="lane_4_library")
- lane_5_library = models.ForeignKey(Library, related_name="lane_5_library")
- lane_6_library = models.ForeignKey(Library, related_name="lane_6_library")
- lane_7_library = models.ForeignKey(Library, related_name="lane_7_library")
- lane_8_library = models.ForeignKey(Library, related_name="lane_8_library")
-
- lane_1_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_2_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_3_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_4_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_5_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_6_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_7_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
- lane_8_pM = models.DecimalField(max_digits=5, decimal_places=2,blank=False, null=False,default=default_pM)
-
- lane_1_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_2_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_3_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_4_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_5_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_6_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_7_cluster_estimate = models.IntegerField(blank=True, null=True)
- lane_8_cluster_estimate = models.IntegerField(blank=True, null=True)
-
- # lane_1_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_1_primer")
- # lane_2_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_2_primer")
- # lane_3_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_3_primer")
- # lane_4_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_4_primer")
- # lane_5_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_5_primer")
- # lane_6_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_6_primer")
- # lane_7_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_7_primer")
- # lane_8_primer = models.ForeignKey(Primer,blank=True,null=True,related_name="lane_8_primer")
cluster_station = models.ForeignKey(ClusterStation, default=3)
sequencer = models.ForeignKey(Sequencer, default=1)
def Lanes(self):
library_url = '/admin/samples/library/%s'
html = ['<table>']
- for i in range(1,9):
- cluster_estimate = getattr(self, 'lane_%d_cluster_estimate' % (i,))
+ #for i in range(1,9):
+ for lane in self.lane_set.all():
+ cluster_estimate = lane.cluster_estimate
if cluster_estimate is not None:
cluster_estimate = "%s k" % ((int(cluster_estimate)/1000), )
else:
cluster_estimate = 'None'
- library_id = getattr(self, 'lane_%d_library_id' % (i,))
- library = getattr(self, 'lane_%d_library' % i)
- element = '<tr><td>%d</td><td><a href="%s">%s</a></td><td>%s</td></tr>'
+ library_id = lane.library_id
+ library = lane.library
+ element = '<tr><td>%d</td><td><a href="%s">%s</a></td><td>%s</td></tr>'
expanded_library_url = library_url %(library_id,)
- html.append(element % (i, expanded_library_url, library, cluster_estimate))
+ html.append(element % (lane.lane_number, expanded_library_url, library, cluster_estimate))
html.append('</table>')
return "\n".join(html)
Lanes.allow_tags = True
--- /dev/null
+BEGIN TRANSACTION;
+CREATE TEMPORARY TABLE experiments_flowcell_temp (
+ "id" integer NOT NULL PRIMARY KEY,
+ "flowcell_id" varchar(20) NOT NULL UNIQUE,
+ "run_date" datetime NOT NULL,
+ "advanced_run" bool NOT NULL,
+ "paired_end" bool NOT NULL,
+ "read_length" integer NOT NULL,
+ "lane_1_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_2_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_3_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_4_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_5_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_6_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_7_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_8_library_id" integer NOT NULL REFERENCES "samples_library" ("id"),
+ "lane_1_pM" decimal NOT NULL,
+ "lane_2_pM" decimal NOT NULL,
+ "lane_3_pM" decimal NOT NULL,
+ "lane_4_pM" decimal NOT NULL,
+ "lane_5_pM" decimal NOT NULL,
+ "lane_6_pM" decimal NOT NULL,
+ "lane_7_pM" decimal NOT NULL,
+ "lane_8_pM" decimal NOT NULL,
+ "lane_1_cluster_estimate" integer NULL,
+ "lane_2_cluster_estimate" integer NULL,
+ "lane_3_cluster_estimate" integer NULL,
+ "lane_4_cluster_estimate" integer NULL,
+ "lane_5_cluster_estimate" integer NULL,
+ "lane_6_cluster_estimate" integer NULL,
+ "lane_7_cluster_estimate" integer NULL,
+ "lane_8_cluster_estimate" integer NULL,
+ "cluster_station_id" integer NOT NULL REFERENCES "experiments_clusterstation" ("id"),
+ "sequencer_id" integer NOT NULL REFERENCES "experiments_sequencer" ("id"),
+ "notes" text NOT NULL
+);
+INSERT INTO experiments_flowcell_temp SELECT id,flowcell_id,run_date,advanced_run,paired_end,read_length,lane_1_library_id,lane_2_library_id,lane_3_library_id,lane_4_library_id,lane_5_library_id,lane_6_library_id,lane_7_library_id,lane_8_library_id,lane_1_pM,lane_2_pM,lane_3_pM,lane_4_pM,lane_5_pM,lane_6_pM,lane_7_pM,lane_8_pM,lane_1_cluster_estimate,lane_2_cluster_estimate,lane_3_cluster_estimate,lane_4_cluster_estimate,lane_5_cluster_estimate,lane_6_cluster_estimate,lane_7_cluster_estimate,lane_8_cluster_estimate,cluster_station_id,sequencer_id,notes FROM experiments_flowcell;
+DROP TABLE experiments_flowcell;
+CREATE TABLE experiments_flowcell (
+ "id" integer NOT NULL PRIMARY KEY,
+ "flowcell_id" varchar(20) NOT NULL UNIQUE,
+ "run_date" datetime NOT NULL,
+ "advanced_run" bool NOT NULL,
+ "paired_end" bool NOT NULL,
+ "read_length" integer NOT NULL,
+ "cluster_station_id" integer NOT NULL REFERENCES "experiments_clusterstation" ("id"),
+ "sequencer_id" integer NOT NULL REFERENCES "experiments_sequencer" ("id"),
+ "notes" text NOT NULL
+);
+INSERT INTO experiments_flowcell SELECT id,flowcell_id,run_date,advanced_run,paired_end,read_length,cluster_station_id,sequencer_id,notes FROM experiments_flowcell_temp;
+DROP TABLE experiments_flowcell_temp;
+COMMIT;
python manage.py syncdb
cd ../..
./scripts/migrate_to_lane_table.py
-
+echo "Droping lanes..."
+sqlite3 fctracker.db < scripts/drop_lanes_from_flowcell.sql
+echo "Done."