Convert experiments modules to use factories instead of fixtures.
authorDiane Trout <diane@ghic.org>
Sat, 10 Jan 2015 00:28:26 +0000 (16:28 -0800)
committerDiane Trout <diane@ghic.org>
Sat, 10 Jan 2015 00:28:26 +0000 (16:28 -0800)
And then propogate those changes throughout the test cases

experiments/experiments_factory.py [new file with mode: 0644]
experiments/fixtures/initial_data.json [deleted file]
experiments/fixtures/test_flowcells.json [deleted file]
experiments/fixtures/woldlab.json [deleted file]
experiments/test_experiments.py

diff --git a/experiments/experiments_factory.py b/experiments/experiments_factory.py
new file mode 100644 (file)
index 0000000..49421ee
--- /dev/null
@@ -0,0 +1,85 @@
+import datetime
+
+import factory
+from factory.django import DjangoModelFactory
+from . import models
+from samples.samples_factory import LibraryFactory
+
+
+class ClusterStationFactory(DjangoModelFactory):
+    class Meta:
+        model = models.ClusterStation
+
+    name = factory.Sequence(lambda x: 'cluster station %d' % (x,))
+    isdefault = True
+
+
+class SequencerFactory(DjangoModelFactory):
+    class Meta:
+        model = models.Sequencer
+
+    name = factory.Sequence(lambda x: 'sequencer %d' % (x,))
+    instrument_name = factory.Sequence(lambda x: 'instrument name %d' % (x,))
+    serial_number = factory.Sequence(lambda x: 'squencer serial number %d' % (x,))
+    model = 'HiSeq 1'
+    active = True
+    isdefault = True
+    comment = 'example sequencer'
+
+
+class FlowCellFactory(DjangoModelFactory):
+    class Meta:
+        model = models.FlowCell
+
+    flowcell_id = '1234AAAAXX'
+    run_date = datetime.datetime.now()
+    advanced_run = False
+    paired_end = True
+    read_length = 100
+    control_lane = 0
+    cluster_station = factory.SubFactory(ClusterStationFactory)
+    sequencer = factory.SubFactory(SequencerFactory)
+    notes = 'flowcell notes'
+
+
+class LaneFactory(DjangoModelFactory):
+    class Meta:
+        model = models.Lane
+
+    flowcell = factory.SubFactory(FlowCellFactory)
+    lane_number = 1
+    library = factory.SubFactory(LibraryFactory)
+    pM = 1.2
+    cluster_estimate = 12345
+    status = 2
+    comment = 'lane comment'
+
+
+class DataRunFactory(DjangoModelFactory):
+    class Meta:
+        model = models.DataRun
+
+    flowcell = factory.SubFactory(FlowCellFactory)
+    runfolder_name = '102030_UAW-EAS22_1234AAAAXX'
+    result_dir = runfolder_name + '/Unaligned'
+    run_start_time = datetime.datetime.now()
+    cycle_start = 1
+    cycle_stop = 101
+    run_status = 2
+    image_software = 'RTA'
+    image_version = '1.1'
+    basecall_software = 'RTA'
+    basecall_version = '2.2'
+    alignment_software = 'eland'
+    alignment_version = '2.2'
+    comment = 'comment'
+
+
+class FileTypeFactory(DjangoModelFactory):
+    class Meta:
+        model = models.FileType
+
+    name = 'file type'
+    mimetype = 'application/file'
+    regex = '.file$'
+
diff --git a/experiments/fixtures/initial_data.json b/experiments/fixtures/initial_data.json
deleted file mode 100644 (file)
index f364502..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-[
-  { "model": "experiments.FileType",
-    "pk": 1,
-    "fields": {
-      "name": "run_xml",
-      "mimetype": "application/vnd.htsworkflow-run-xml",
-      "regex": "run.*\\.xml\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 2,
-    "fields": {
-      "name": "Summary.htm",
-      "mimetype": "text/html",
-      "regex": "Summary\\.htm\\Z(?ms)"
-    }
-  },
-
-  { "model": "experiments.FileType",
-    "pk": 3,
-    "fields": {
-      "name": "IVC All",
-      "mimetype": "image/png",
-      "regex": "s_(?P<lane>[0-9])_all\\.png\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 4,
-    "fields": {
-      "name": "IVC Call",
-      "mimetype": "image/png",
-      "regex": "s_(?P<lane>[0-9])_call\\.png\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 5,
-    "fields": {
-      "name": "IVC Percent All",
-      "mimetype": "image/png",
-      "regex": "s_(?P<lane>[0-9])_percent_all\\.png\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 6,
-    "fields": {
-      "name": "IVC Percent Base",
-      "mimetype": "image/png",
-      "regex": "s_(?P<lane>[0-9])_percent_base\\.png\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 7,
-    "fields": {
-      "name": "IVC Percent Call",
-      "mimetype": "image/png",
-      "regex": "s_(?P<lane>[0-9])_percent_call\\.png\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 8,
-    "fields": {
-      "name": "GERALD Scores",
-      "regex": "scores\\.tar\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 9,
-    "fields": {
-      "name": "ELAND Result",
-      "mimetype": "chemical/seq-na-eland",
-      "regex": "s_(?P<lane>[0-9])((?P<end>[1-4])_)?_eland_result\\.txt\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 10,
-    "fields": {
-      "name": "ELAND Multi",
-      "mimetype": "chemical/seq-na-eland",
-      "regex": "s_(?P<lane>[0-9])((?P<end>[1-4])_)?_eland_multi\\.txt\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 11,
-    "fields": {
-      "name": "ELAND Extended",
-      "mimetype": "chemical/seq-na-eland",
-      "regex": "s_(?P<lane>[0-9])((?P<end>[1-4])_)?_eland_extended\\.txt\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 12,
-    "fields": {
-      "name": "ELAND Export",
-      "mimetype": "chemical/seq-na-eland",
-      "regex": "s_(?P<lane>[0-9])((?P<end>[1-4])_)?_export\\.txt\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 13,
-    "fields": {
-      "name": "SRF",
-      "mimetype": "chemical/seq-na-srf",
-      "regex": ".*_(?P<lane>[1-8])\\.srf\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 14,
-    "fields": {
-      "name": "QSEQ tarfile",
-      "mimetype": "chemical/seq-na-qseq",
-      "regex": ".*_l(?P<lane>[1-8])_r(?P<end>[1-4])\\.tar\\.bz2\\Z(?ms)"
-    }
-  },
-  { "model": "experiments.FileType",
-    "pk": 15,
-    "fields": {
-      "name": "HiSeq Fastq",
-      "mimetype": "chemical/seq-na-fastq",
-      "regex": "(?P<library>[0-9]+)_(NoIndex|[AGCT]+)_L(?P<lane>[0-9]+)_R(?P<end>[12])_(?P<split>[0-9]+)\\.fastq\\.gz"
-    }
-  }
-]
diff --git a/experiments/fixtures/test_flowcells.json b/experiments/fixtures/test_flowcells.json
deleted file mode 100644 (file)
index 15d00c6..0000000
+++ /dev/null
@@ -1,1273 +0,0 @@
-[
-    {"pk": 5, "model": "auth.user",
-   "fields": {
-       "username": "test",
-       "first_name": "",
-       "last_name": "",
-       "is_active": true,
-       "is_superuser": false,
-       "is_staff": false,
-       "last_login": "2009-01-01T00:00:01-0800",
-       "groups": [],
-       "user_permissions": [],
-       "password": "sha1$foo$5e4eefec1144a04becfb7da79244f07c487fc345",
-       "email": "",
-       "date_joined": "2009-01-01T00:01:01-0800"
-       }
-   },
-   {"pk": 5, "model": "samples.htsuser",
-    "fields" : {}
-   },
-   {"pk": 6, "model": "auth.user",
-   "fields": {
-       "username": "admintest",
-       "first_name": "",
-       "last_name": "",
-       "is_active": true,
-       "is_superuser": false,
-       "is_staff": true,
-       "last_login": "2009-01-01T00:00:01-0800",
-       "groups": [],
-       "user_permissions": [],
-       "password": "sha1$foo$5e4eefec1144a04becfb7da79244f07c487fc345",
-       "email": "",
-       "date_joined": "2009-01-01T00:01:01-0800"
-       }
-   },
-   {"pk": 6, "model": "samples.htsuser",
-    "fields" : {}
-   },
-   {"pk": 7, "model": "auth.user",
-   "fields": {
-       "username": "supertest",
-       "first_name": "",
-       "last_name": "",
-       "is_active": true,
-       "is_superuser": true,
-       "is_staff": true,
-       "last_login": "2009-01-01T00:00:01-0800",
-       "groups": [],
-       "user_permissions": [],
-       "password": "sha1$foo$5e4eefec1144a04becfb7da79244f07c487fc345",
-       "email": "",
-       "date_joined": "2009-01-01T00:01:01-0800"
-       }
-   },
-   {"pk": 7, "model": "samples.htsuser",
-    "fields" : {}
-   },
-   {"pk": 1, "model": "samples.affiliation",
-     "fields": {
-         "users": [5],
-         "contact": "group 1",
-         "name": "affiliation 1",
-         "email": "pk1@example.com"
-         }
-     },
-    {"pk": 2, "model": "samples.affiliation",
-     "fields": {
-         "users": [6],
-         "contact": "group 2",
-         "name": "affiliation 2",
-         "email": "pk2@example.com"
-         }
-     },
-    {"pk": 3, "model": "samples.affiliation",
-     "fields": {
-         "users": [],
-         "contact": "group 3",
-         "name": "affiliation 3",
-         "email": "pk3@example.com"
-         }
-     },
-    {"pk": 4, "model": "samples.affiliation",
-     "fields": {
-         "users": [],
-         "contact": "group 4",
-         "name": "affiliation 4",
-         "email": "pk1@example.com"
-         }
-     },
-    {"pk": 5, "model": "samples.affiliation",
-     "fields": {
-         "users": [],
-         "contact": "group 5",
-         "name": "affiliation 5",
-         "email": "pk5@example.com"
-         }
-     },
- {"pk": 1, "model": "experiments.clusterstation",
-  "fields": {"name": "old", "isdefault": false}},
- {"pk": 2, "model": "experiments.clusterstation",
-  "fields": {"name": "loaner", "isdefault": true}},
- {"pk": 3, "model": "experiments.clusterstation",
-  "fields": {"name": "new", "isdefault": false}},
- {"pk": 1, "model": "experiments.sequencer",
-  "fields": { "name": "Rotifer (HWI-EAS229)",
-              "model": "Illumina Genome Analyzer I",
-              "active": false,
-              "isdefault": false }},
- {"pk": 2, "model": "experiments.sequencer",
-  "fields": {"name": "Tardigrade",
-             "instrument_name": "ILLUMINA-EC5D15",
-             "model": "Illumina Genome Analyzer IIx",
-             "active": true,
-             "isdefault": true}
- },
- {"pk": 3, "model": "experiments.sequencer",
-  "fields": {"name": "Sequenced somewhere else.",
-             "model": "Unknown",
-             "active": true,
-             "isdefault": false}},
- {"pk": 153, "model": "experiments.flowcell",
-  "fields": {
-      "paired_end": true,
-      "run_date": "2007-09-27T22:12:13-0800",
-      "read_length": 36,
-      "notes": "",
-      "advanced_run": false,
-      "control_lane": 2,
-      "cluster_station": 3,
-      "sequencer": 2,
-      "flowcell_id": "FC12150"
-      }
-  },
-  {"pk": 1193, "model": "experiments.lane",
-   "fields": {
-       "comment": "No change in cluster numbers, despite slight increase in pM",
-       "library": "10981",
-       "cluster_estimate": 129000,
-       "flowcell": 153,
-       "lane_number": 1,
-       "pM": "8"
-       }
-   },
-   {"pk": 1192, "model": "experiments.lane",
-    "fields": {
-        "comment": "Other library",
-        "library": "11070",
-        "cluster_estimate": 132000,
-        "flowcell": 153,
-        "lane_number": 1,
-        "pM": "7"
-        }
-    },
-
-  {"pk": "10981", "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 400,
-            "library_name": "Paired End Multiplexed Sp-BAC",
-            "creation_date": "2009-07-21",
-            "cell_line": 1,
-            "library_species": 10,
-            "library_type": null,
-            "made_by": "Igor",
-            "affiliations": [
-                1,2
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "Done",
-            "tags": [],
-            "made_for": "Andy Cameron",
-            "amplified_from_sample": null,
-            "notes": "Combined 10957-10968",
-            "undiluted_concentration": "5.1",
-            "successful_pM": null,
-            "experiment_type": 10,
-            "antibody": null
-        }
-    },
-  {"pk": 1194, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11016",
-       "cluster_estimate": 152000,
-       "flowcell": 153,
-       "lane_number": 2,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11006",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 325,
-            "library_name": "Paired End Pfl #3 MP 7/24/9",
-            "creation_date": "2009-08-05",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Lorian",
-            "affiliations": [
-                3
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": true,
-            "stopping_point": "1A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "7/31/2009 16:08:22\tColor: Blue",
-            "undiluted_concentration": null,
-            "successful_pM": null,
-            "experiment_type": 8,
-            "antibody": null
-        }
-    },
-    {
-        "pk": "11016",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 325,
-            "library_name": "Paired End Pfl #3 MP 7/24/9 a",
-            "creation_date": "2009-08-06",
-            "cell_line": 1,
-            "library_species": 2,
-            "library_type": 2,
-            "made_by": "Lorian",
-            "affiliations": [
-                2
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": 11006,
-            "notes": "7/31/2009 16:08:22\tColor: Blue",
-            "undiluted_concentration": "35.5",
-            "successful_pM": null,
-            "experiment_type": 8,
-            "antibody": null
-        }
-    },
-  {"pk": 1195, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "SL039",
-       "cluster_estimate": 162000,
-       "flowcell": 153,
-       "lane_number": 3,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "SL039",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 99 GM12892",
-            "creation_date": "2009-08-25",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                3,4
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": 11006,
-            "notes": "fragment size = 300 bp, Amicon filtered\r\nnanodrop: 56.3",
-            "undiluted_concentration": "28.7",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1196, "model": "experiments.lane",
-   "fields": {
-       "comment": "This lane's library had the second lowest concentration of all the libraries built at the same time (2.05ng/ul)",
-       "library": "11060",
-       "cluster_estimate": 24000,
-       "flowcell": 153,
-       "lane_number": 4,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11060",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 100 VC_CN_4_M_MBB1185_s1",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                5
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": 11006,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 24.2",
-            "undiluted_concentration": "2.05",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1197, "model": "experiments.lane",
-   "fields": {
-       "comment": "stuff",
-       "library": "11061",
-       "cluster_estimate": 140000,
-       "flowcell": 153,
-       "lane_number": 5,
-       "pM": "7",
-       "status": 2
-       }
-   },
-    {
-        "pk": "11061",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 101 VC_CN_4_M_MBB1185_s2",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                2,4
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 33.1",
-            "undiluted_concentration": "12.9",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1198, "model": "experiments.lane",
-   "fields": {
-       "comment": "This lane's library had the lowest concentration of all the libraries built at the same time (1.2ng/ul)",
-       "library": "11062",
-       "cluster_estimate": 2000,
-       "flowcell": 153,
-       "lane_number": 6,
-       "pM": "7",
-       "status": 0
-       }
-   },
-    {
-        "pk": "11062",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 102 VC_AU_8_M_MBB4721_s1",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                4,5
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 13.9",
-            "undiluted_concentration": "1.2",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1199, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11063",
-       "cluster_estimate": 120000,
-       "flowcell": 153,
-       "lane_number": 7,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11063",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 103 VC_AU_8_M_MBB4721_s2",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                1,3
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 46.9",
-            "undiluted_concentration": "24.5",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1200, "model": "experiments.lane",
-   "fields": {
-       "comment": "This lane's library had the third lowest concentration of all the libraries built at the same time (5.21ng/ul), but gave perfectly normal cluster numbers",
-       "library": "11064",
-       "cluster_estimate": 157000,
-       "flowcell": 153,
-       "lane_number": 8,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11064",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 104 VC_CN_7_M_MBB4898_s1",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 8,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                3,5
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 20.4",
-            "undiluted_concentration": "5.21",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-   {"pk": 152, "model": "experiments.flowcell",
-   "fields": {
-       "paired_end": false,
-       "run_date": "2009-09-10T18:30:15-0800",
-       "read_length": 38,
-       "notes": "328461 4897273 RGT-0248815\r\n328479 4897265 RGT-0249274\r\n330421 4822845 SR-0005496",
-       "advanced_run": false,
-       "control_lane": 4,
-       "cluster_station": 3,
-       "sequencer": 1,
-       "flowcell_id": "42JTNAAXX"
-       }
-   },
-  {"pk": 1185, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11035",
-       "cluster_estimate": 174000,
-       "flowcell": 152,
-       "lane_number": 1,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11035",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 95 Gilberto_d3_control_LTA",
-            "creation_date": "2009-08-25",
-            "cell_line": 1,
-            "library_species": 9,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                3
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "fragment size = 300 bp, Amicon filtered\r\nnanodrop: 67.1",
-            "undiluted_concentration": "28.5",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1186, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11037",
-       "cluster_estimate": 173000,
-       "flowcell": 152,
-       "lane_number": 2,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11037",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 97 Kuntz_PDHT",
-            "creation_date": "2009-08-25",
-            "cell_line": 1,
-            "library_species": 3,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                4
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "fragment size = 300 bp, Amicon filtered\r\nnanodrop: 52.7",
-            "undiluted_concentration": "25.5",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1187, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11045",
-       "cluster_estimate": 198000,
-       "flowcell": 152,
-       "lane_number": 3,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11045",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 250,
-            "library_name": "FLDN1 8/3/9 anti-AcH3 chip B6 a",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                5
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Yellow",
-            "undiluted_concentration": "20.5",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1188, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11046",
-       "cluster_estimate": 212000,
-       "flowcell": 152,
-       "lane_number": 4,
-       "pM": "7"}
-   },
-    {
-        "pk": "11046",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 250,
-            "library_name": "FLDN1 7/8/9 anti-DiMeH3K4 chip B6 a",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                4
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Blue",
-            "undiluted_concentration": "23.9",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1189, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11054",
-       "cluster_estimate": 49000,
-       "flowcell": 152,
-       "lane_number": 5,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11054",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "HNDHT HLH hnd-1 strain HT115 fed anti-hlh-1 2% fix plate a",
-            "creation_date": "2009-08-31",
-            "cell_line": null,
-            "library_species": 3,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                1
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/26/2009 14:46:56\tColor: Purple",
-            "undiluted_concentration": "1.47",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1190, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11056",
-       "cluster_estimate": 48000,
-       "flowcell": 152,
-       "lane_number": 6,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11056",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "HNDM3 HLH hnd-1 strain mex-3 fed anti-hlh-1 2% fix plate a",
-            "creation_date": "2009-08-31",
-            "cell_line": null,
-            "library_species": 3,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                2
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/26/2009 14:46:56\tColor: Black",
-            "undiluted_concentration": "1.42",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1191, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11057",
-       "cluster_estimate": 4000,
-       "flowcell": 152,
-       "lane_number": 7,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11057",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "HNDM3 4H8 hnd-1 strain mex-3 fed 4H8 2% fix plate a",
-            "creation_date": "2009-08-31",
-            "cell_line": null,
-            "library_species": 3,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                3
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/26/2009 14:46:56\tColor: Orange.",
-            "undiluted_concentration": "1.3",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1192, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11065",
-       "cluster_estimate": 5000,
-       "flowcell": 152,
-       "lane_number": 8,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11065",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 105 Kuntz PDM3",
-            "creation_date": "2009-09-01",
-            "cell_line": 1,
-            "library_species": 3,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                4
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "300 bp gel fragment, Amicon filtered\r\nnanodrop: 30.5",
-            "undiluted_concentration": "2.47",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 151, "model": "experiments.flowcell",
-   "fields": {
-       "paired_end": false,
-       "run_date": "2009-09-08T15:39:28-0800",
-       "read_length": 38,
-       "notes": "Rebuild of broken flowcell\r\n\r\n328461 4820241 RGT-0215719\r\n328479 4897265 RGT-0249510\r\n330421 4822845 SR-0005402\r\n",
-       "advanced_run": false,
-       "control_lane": 5,
-       "cluster_station": 3,
-       "sequencer": 2,
-       "flowcell_id": "42JU1AAXX"
-       }
-   },
-  {"pk": 1177, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11034",
-       "cluster_estimate": 177000,
-       "flowcell": 151,
-       "lane_number": 1,
-       "pM": "7"
-       }
-   },
-  {"pk": 1178, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11036",
-       "cluster_estimate": 169000,
-       "flowcell": 151,
-       "lane_number": 2,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11036",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 96 Kuntz_PDE1",
-            "creation_date": "2009-08-25",
-            "cell_line": 1,
-            "library_species": 3,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                5
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "fragment size = 300 bp",
-            "undiluted_concentration": "30.6",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-    {
-        "pk": "11034",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired ends 94 Gilberto_d3_denerv_LTA",
-            "creation_date": "2009-08-25",
-            "cell_line": 1,
-            "library_species": 9,
-            "library_type": 2,
-            "made_by": "Brian Williams",
-            "affiliations": [
-                1
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "Brian Williams",
-            "amplified_from_sample": null,
-            "notes": "fragment size = 300 bp",
-            "undiluted_concentration": "27",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-    {
-        "pk": "12044",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "Pooled Indexed Test",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 5,
-            "multiplex_id": "1,2,3",
-            "made_by": "Lorian",
-            "affiliations": [
-                2
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Orange",
-            "undiluted_concentration": "22.4",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-    {
-        "pk": "13044",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "Dual Indexed Test",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 9,
-            "multiplex_id": "N701-N501",
-            "made_by": "Lorian",
-            "affiliations": [
-                2
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Orange",
-            "undiluted_concentration": "22.4",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-    {
-        "pk": "11045",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "Simple Indexed Test",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 5,
-            "multiplex_id": "1",
-            "made_by": "Lorian",
-            "affiliations": [
-                2
-            ],
-            "replicate": 2,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Orange",
-            "undiluted_concentration": "22.4",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1179,
-   "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "12044",
-       "cluster_estimate": 196000,
-       "flowcell": 151,
-       "lane_number": 3,
-       "pM": "7"
-       }
-   },
-  {"pk": 1279,
-   "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11045",
-       "cluster_estimate": 196000,
-       "flowcell": 151,
-       "lane_number": 3,
-       "pM": "7"
-       }
-   },
-  {"pk": 1379,
-   "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "13044",
-       "cluster_estimate": 196000,
-       "flowcell": 151,
-       "lane_number": 4,
-       "pM": "7"
-       }
-   },
-
-    {
-        "pk": "11044",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "p300 60h C2 FA KF 12/22/8 a",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                3
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Orange.",
-            "undiluted_concentration": "22.4",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1180, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11047",
-       "cluster_estimate": 200000,
-       "flowcell": 151,
-       "lane_number": 4,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11047",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 250,
-            "library_name": "FLDN1 7/8/9 anti-TriMeH3K27 chip B6 a",
-            "creation_date": "2009-08-26",
-            "cell_line": null,
-            "library_species": 9,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                4
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "2A",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/21/2009 11:57:54\tColor: Green",
-            "undiluted_concentration": "24.9",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1181, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11055",
-       "cluster_estimate": 104000,
-       "flowcell": 151,
-       "lane_number": 5,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11055",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 225,
-            "library_name": "HNDHT 4H8 hnd-1 strain HT115 fed 4H8 2% fix plate a",
-            "creation_date": "2009-08-31",
-            "cell_line": null,
-            "library_species": 3,
-            "library_type": 1,
-            "made_by": "Lorian",
-            "affiliations": [
-                5
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "1Aa",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "8/26/2009 14:46:56\tColor: White.",
-            "undiluted_concentration": "2.17",
-            "successful_pM": null,
-            "experiment_type": 2,
-            "antibody": null
-        }
-    },
-  {"pk": 1182, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11067",
-       "cluster_estimate": 168000,
-       "flowcell": 151,
-       "lane_number": 6,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11067",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 325,
-            "library_name": "Paired End SP-BAC Barcoding test 250-300 bp",
-            "creation_date": "2009-09-03",
-            "cell_line": 1,
-            "library_species": 10,
-            "library_type": 2,
-            "made_by": "Igor",
-            "affiliations": [
-                1
-            ],
-            "replicate": 1,
-            "condition": 1,
-            "hidden": false,
-            "stopping_point": "Done",
-            "tags": [],
-            "made_for": "Andy Cameron",
-            "amplified_from_sample": null,
-            "notes": "12 SP BACs",
-            "undiluted_concentration": "1.45",
-            "successful_pM": null,
-            "experiment_type": 8,
-            "antibody": null
-        }
-    },
-  {"pk": 1183, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11069",
-       "cluster_estimate": 184000,
-       "flowcell": 151,
-       "lane_number": 7,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11069",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired End AG-3d-1 AG domain of floral meristem day 3, rep 1",
-            "creation_date": "2009-09-02",
-            "cell_line": null,
-            "library_species": 6,
-            "library_type": 2,
-            "made_by": "Yuling Jiao",
-            "affiliations": [
-                2
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "Done",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "nanodrop: Xng/ul.",
-            "undiluted_concentration": "18.3",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-    },
-  {"pk": 1184, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11070",
-       "cluster_estimate": 182000,
-       "flowcell": 151,
-       "lane_number": 8,
-       "pM": "7"
-       }
-   },
-    {
-        "pk": "11070",
-        "model": "samples.library",
-        "fields": {
-            "ten_nM_dilution": false,
-            "gel_cut_size": 300,
-            "library_name": "Paired End AG-5d-1 AG domain of floral meristem day 5, rep 1",
-            "creation_date": "2009-09-02",
-            "cell_line": null,
-            "library_species": 6,
-            "library_type": 2,
-            "made_by": "Yuling Jiao",
-            "affiliations": [
-                3
-            ],
-            "replicate": 1,
-            "condition": null,
-            "hidden": false,
-            "stopping_point": "Done",
-            "tags": [],
-            "made_for": "",
-            "amplified_from_sample": null,
-            "notes": "nanodrop: 40ng/ul\r\nCalibrated qbit with standards.\r\nMeasured 2ul library with qbit using HS kit.\r\n",
-            "undiluted_concentration": "20.3",
-            "successful_pM": null,
-            "experiment_type": 4,
-            "antibody": null
-        }
-     },
- {"pk": 200, "model": "experiments.flowcell",
-  "fields": {
-      "paired_end": true,
-      "run_date": "2007-09-27T22:12:13-0800",
-      "read_length": 36,
-      "notes": "",
-      "advanced_run": false,
-      "control_lane": 2,
-      "cluster_station": 3,
-      "sequencer": 2,
-      "flowcell_id": "30012AAXX (failed)"
-      }
-  },
-  {"pk": 201, "model": "experiments.lane",
-   "fields": {
-       "comment": "",
-       "library": "11070",
-       "cluster_estimate": 182000,
-       "flowcell": 200,
-       "lane_number": 8,
-       "pM": "7"
-       }
-   }
-]
diff --git a/experiments/fixtures/woldlab.json b/experiments/fixtures/woldlab.json
deleted file mode 100644 (file)
index b058925..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-[ { "model": "experiments.Sequencer",
-    "pk": 1,
-    "fields": {
-      "name": "Rotifer",
-      "instrument_name": "ILLUMINA-33A494",
-      "serial_number": "",
-      "model": "Illumina Genome Analyzer II",
-      "active": false,
-      "isdefault": false,
-      "comment": "after 2010 pipeline name, was exchanged for hiseq"
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 2,
-    "fields": {
-      "name": "Tardigrade",
-      "instrument_name": "ILLUMINA-EC5D15",
-      "serial_number": "",
-      "model": "Illumina Genome Analyzer IIx",
-      "active": true,
-      "isdefault": false,
-      "comment": "after 2010 pipeline name"
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 3,
-    "fields": {
-      "name": "Elsewhere",
-      "instrument_name": "",
-      "serial_number": "",
-      "model": "Unknown",
-      "active": false,
-      "isdefault": false,
-      "comment": "Sequenced somewhere else"
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 4,
-    "fields": {
-      "name": "Volvox",
-      "instrument_name": "HWI-ST0787",
-      "serial_number": "",
-      "model": "Illumina HiSeq 2000",
-      "active": true,
-      "isdefault": true,
-      "comment": ""
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 5,
-    "fields": {
-      "name": "Tardigrade (older)",
-      "instrument_name": "HWUSI-EAS627",
-      "serial_number": "",
-      "model": "Illumina Genome Analyzer II",
-      "active": false,
-      "isdefault": false,
-      "comment": "earlier version of tardigrade"
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 6,
-    "fields": {
-      "name": "Rotifer (older)",
-      "instrument_name": "HWUSI-EAS229",
-      "serial_number": "",
-      "model": "Illumina Genome Analyzer II",
-      "active": false,
-      "isdefault": false,
-      "comment": "earlier rotifer name"
-    }
-  },
-  { "model": "experiments.Sequencer",
-    "pk": 7,
-    "fields": {
-      "name": "First sequencer",
-      "instrument_name": "USI-EAS44",
-      "serial_number": "",
-      "model": "Illumina Genome Analyzer I",
-      "active": false,
-      "isdefault": false,
-      "comment": "our first sequencer"
-    }
-  },
-  { "model": "experiments.ClusterStation",
-    "pk": 3,
-    "fields": { "name": "new", "isdefault": false }
-  }
-]
index ba27db4706bb18da6a58639321fd517d897fdbd1..f0c36104de1ec00376e2eaba4da1022c8229bddb 100644 (file)
@@ -20,9 +20,14 @@ from django.test.utils import setup_test_environment, teardown_test_environment
 from django.db import connection
 from django.conf import settings
 
 from django.db import connection
 from django.conf import settings
 
-from .models import ClusterStation, DataRun, Sequencer, FlowCell, FileType, \
+from .models import ClusterStation, cluster_station_default, \
+    DataRun, Sequencer, FlowCell, FileType, \
     find_file_type_metadata_from_filename
     find_file_type_metadata_from_filename
+from samples.models import HTSUser
 from .experiments import flowcell_information, lanes_for
 from .experiments import flowcell_information, lanes_for
+from .experiments_factory import ClusterStationFactory, FlowCellFactory, LaneFactory
+from samples.samples_factory import AffiliationFactory, HTSUserFactory, \
+    LibraryFactory, LibraryTypeFactory, MultiplexIndexFactory
 from htsworkflow.auth import apidata
 from htsworkflow.util.ethelp import validate_xhtml
 
 from htsworkflow.auth import apidata
 from htsworkflow.util.ethelp import validate_xhtml
 
@@ -36,14 +41,23 @@ from django.db import connection
 
 
 class ExperimentsTestCases(TestCase):
 
 
 class ExperimentsTestCases(TestCase):
-    fixtures = ['initial_data.json',
-                'test_flowcells.json',
-                ]
-
     def setUp(self):
     def setUp(self):
+        # Generate at least one fleshed out example flowcell
         self.tempdir = tempfile.mkdtemp(prefix='htsw-test-experiments-')
         settings.RESULT_HOME_DIR = self.tempdir
 
         self.tempdir = tempfile.mkdtemp(prefix='htsw-test-experiments-')
         settings.RESULT_HOME_DIR = self.tempdir
 
+        self.password = 'password'
+        self.user_odd = HTSUserFactory(username='user-odd')
+        self.user_odd.set_password(self.password)
+        self.affiliation_odd = AffiliationFactory(name='affiliation-odd', users=[self.user_odd])
+        self.user_even = HTSUserFactory(username='user-even')
+        self.user_even.set_password(self.password)
+        self.affiliation_even = AffiliationFactory(name='affiliation-even', users=[self.user_even])
+        self.admin = HTSUserFactory.create(username='admin', is_staff=True, is_superuser=True)
+        self.admin.set_password(self.password)
+        self.admin.save()
+
+        self.fc12150 = FlowCellFactory(flowcell_id='FC12150')
         self.fc1_id = 'FC12150'
         self.fc1_root = os.path.join(self.tempdir, self.fc1_id)
         os.mkdir(self.fc1_root)
         self.fc1_id = 'FC12150'
         self.fc1_root = os.path.join(self.tempdir, self.fc1_id)
         os.mkdir(self.fc1_root)
@@ -53,12 +67,30 @@ class ExperimentsTestCases(TestCase):
         shutil.copy(os.path.join(TESTDATA_DIR, runxml),
                     os.path.join(self.fc1_dir, runxml))
         for i in range(1,9):
         shutil.copy(os.path.join(TESTDATA_DIR, runxml),
                     os.path.join(self.fc1_dir, runxml))
         for i in range(1,9):
+            affiliation = self.affiliation_odd if i % 2 == 1 else self.affiliation_even
+            library = LibraryFactory(id="1215" + str(i))
+            library.affiliations.add(affiliation)
+            lane = LaneFactory(flowcell=self.fc12150, lane_number=i, library=library)
             shutil.copy(
                 os.path.join(TESTDATA_DIR,
                              'woldlab_070829_USI-EAS44_0017_FC11055_1.srf'),
                 os.path.join(self.fc1_dir,
                              'woldlab_070829_SERIAL_FC12150_%d.srf' %(i,))
                 )
             shutil.copy(
                 os.path.join(TESTDATA_DIR,
                              'woldlab_070829_USI-EAS44_0017_FC11055_1.srf'),
                 os.path.join(self.fc1_dir,
                              'woldlab_070829_SERIAL_FC12150_%d.srf' %(i,))
                 )
+        self.fc12150.save()
+
+        self.fc42jtn = FlowCellFactory(flowcell_id='42JTNAAXX')
+        self.fc42jtn_lanes = []
+        for i in range(1,9):
+            affiliation = self.affiliation_odd if i % 2 == 1 else self.affiliation_even
+            library_type = LibraryTypeFactory(can_multiplex=True)
+            multiplex_index = MultiplexIndexFactory(adapter_type=library_type)
+            library = LibraryFactory(id="1300" + str(i),
+                                     library_type=library_type,
+                                     multiplex_id=multiplex_index.multiplex_id)
+            library.affiliations.add(affiliation)
+            lane = LaneFactory(flowcell=self.fc42jtn, lane_number=(i % 2) + 1, library=library)
+            self.fc42jtn_lanes.append(lane)
 
         self.fc2_dir = os.path.join(self.tempdir, '42JTNAAXX')
         os.mkdir(self.fc2_dir)
 
         self.fc2_dir = os.path.join(self.tempdir, '42JTNAAXX')
         os.mkdir(self.fc2_dir)
@@ -73,6 +105,10 @@ class ExperimentsTestCases(TestCase):
         """
         Check the code that packs the django objects into simple types.
         """
         """
         Check the code that packs the django objects into simple types.
         """
+        fc12150 = self.fc12150
+        fc42jtn = self.fc42jtn
+        fc42ju1 = FlowCellFactory(flowcell_id='42JU1AAXX')
+
         for fc_id in [u'FC12150', u"42JTNAAXX", "42JU1AAXX"]:
             fc_dict = flowcell_information(fc_id)
             fc_django = FlowCell.objects.get(flowcell_id=fc_id)
         for fc_id in [u'FC12150', u"42JTNAAXX", "42JU1AAXX"]:
             fc_dict = flowcell_information(fc_id)
             fc_django = FlowCell.objects.get(flowcell_id=fc_id)
@@ -142,15 +178,16 @@ class ExperimentsTestCases(TestCase):
         self.assertEqual(response.status_code, 200)
         flowcell = json.loads(response.content)['result']
 
         self.assertEqual(response.status_code, 200)
         flowcell = json.loads(response.content)['result']
 
+        # library id is 12150 + lane number (1-8), so 12153
         lane_contents = flowcell['lane_set']['3']
         lane_library = lane_contents[0]
         lane_contents = flowcell['lane_set']['3']
         lane_library = lane_contents[0]
-        self.assertEqual(lane_library['library_id'], 'SL039')
+        self.assertEqual(lane_library['library_id'], '12153')
 
 
-        response = self.client.get('/samples/library/SL039/json', apidata)
+        response = self.client.get('/samples/library/12153/json', apidata)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
-        library_sl039 = json.loads(response.content)['result']
+        library_12153 = json.loads(response.content)['result']
 
 
-        self.assertEqual(library_sl039['library_id'], 'SL039')
+        self.assertEqual(library_12153['library_id'], '12153')
 
     def test_raw_id_field(self):
         """
 
     def test_raw_id_field(self):
         """
@@ -164,10 +201,9 @@ class ExperimentsTestCases(TestCase):
         This tests to make sure that the value entered in the raw library id field matches
         the library id looked up.
         """
         This tests to make sure that the value entered in the raw library id field matches
         the library id looked up.
         """
-        expected_ids = [u'10981',u'11016',u'SL039',u'11060',
-                        u'11061',u'11062',u'11063',u'11064']
-        self.client.login(username='supertest', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/admin/experiments/flowcell/153/')
+        expected_ids = [ u'1215{}'.format(i) for i in range(1,9) ]
+        self.assertTrue(self.client.login(username=self.admin.username, password=self.password))
+        response = self.client.get('/admin/experiments/flowcell/{}/'.format(self.fc12150.id))
 
         tree = fromstring(response.content)
         for i in range(0,8):
 
         tree = fromstring(response.content)
         for i in range(0,8):
@@ -185,8 +221,8 @@ class ExperimentsTestCases(TestCase):
         Make sure the library page includes links to the flowcell pages.
         That work with flowcell IDs that have parenthetical comments.
         """
         Make sure the library page includes links to the flowcell pages.
         That work with flowcell IDs that have parenthetical comments.
         """
-        self.client.login(username='supertest', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/library/11070/')
+        self.assertTrue(self.client.login(username=self.admin.username, password=self.password))
+        response = self.client.get('/library/12151/')
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
@@ -194,45 +230,41 @@ class ExperimentsTestCases(TestCase):
         tree = fromstring(response.content)
         flowcell_spans = tree.xpath('//span[@property="libns:flowcell_id"]',
                                     namespaces=NSMAP)
         tree = fromstring(response.content)
         flowcell_spans = tree.xpath('//span[@property="libns:flowcell_id"]',
                                     namespaces=NSMAP)
-        self.assertEqual(flowcell_spans[1].text, '30012AAXX (failed)')
+        self.assertEqual(flowcell_spans[1].text, 'FC12150')
         failed_fc_span = flowcell_spans[1]
         failed_fc_a = failed_fc_span.getparent()
         # make sure some of our RDF made it.
         self.assertEqual(failed_fc_a.get('typeof'), 'libns:IlluminaFlowcell')
         failed_fc_span = flowcell_spans[1]
         failed_fc_a = failed_fc_span.getparent()
         # make sure some of our RDF made it.
         self.assertEqual(failed_fc_a.get('typeof'), 'libns:IlluminaFlowcell')
-        self.assertEqual(failed_fc_a.get('href'), '/flowcell/30012AAXX/')
+        self.assertEqual(failed_fc_a.get('href'), '/flowcell/FC12150/')
         fc_response = self.client.get(failed_fc_a.get('href'))
         self.assertEqual(fc_response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
 
         fc_response = self.client.get(failed_fc_a.get('href'))
         self.assertEqual(fc_response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
 
-        fc_lane_response = self.client.get('/flowcell/30012AAXX/8/')
+        fc_lane_response = self.client.get('/flowcell/FC12150/8/')
         self.assertEqual(fc_lane_response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
 
         self.assertEqual(fc_lane_response.status_code, 200)
         status = validate_xhtml(response.content)
         if status is not None: self.assertTrue(status)
 
-
     def test_pooled_multiplex_id(self):
     def test_pooled_multiplex_id(self):
-        fc_dict = flowcell_information('42JU1AAXX')
-        lane_contents = fc_dict['lane_set'][3]
-        self.assertEqual(len(lane_contents), 2)
-        lane_dict = multi_lane_to_dict(lane_contents)
-
-        self.assertEqual(lane_dict['12044']['index_sequence'],
-                         {u'1': u'ATCACG',
-                          u'2': u'CGATGT',
-                          u'3': u'TTAGGC'})
-        self.assertEqual(lane_dict['11045']['index_sequence'],
-                         {u'1': u'ATCACG'})
+        fc_dict = flowcell_information(self.fc42jtn.flowcell_id)
 
 
+        lane_contents = fc_dict['lane_set'][2]
+        self.assertEqual(len(lane_contents), len(self.fc42jtn_lanes) / 2)
+        lane_dict = multi_lane_to_dict(lane_contents)
 
 
+        self.assertTrue(self.fc42jtn_lanes[0].library.multiplex_id in \
+                        lane_dict['13001']['index_sequence'])
+        self.assertTrue(self.fc42jtn_lanes[2].library.multiplex_id in \
+                        lane_dict['13003']['index_sequence'])
 
     def test_lanes_for(self):
         """
         Check the code that packs the django objects into simple types.
         """
 
     def test_lanes_for(self):
         """
         Check the code that packs the django objects into simple types.
         """
-        user = 'test'
+        user = self.user_odd.username
         lanes = lanes_for(user)
         lanes = lanes_for(user)
-        self.assertEqual(len(lanes), 5)
+        self.assertEqual(len(lanes), 8)
 
         response = self.client.get('/experiments/lanes_for/%s/json' % (user,), apidata)
         lanes_json = json.loads(response.content)['result']
 
         response = self.client.get('/experiments/lanes_for/%s/json' % (user,), apidata)
         lanes_json = json.loads(response.content)['result']
@@ -247,12 +279,12 @@ class ExperimentsTestCases(TestCase):
         """
         Do we get something meaningful back when the user isn't attached to anything?
         """
         """
         Do we get something meaningful back when the user isn't attached to anything?
         """
-        user = 'supertest'
-        lanes = lanes_for(user)
+        user = HTSUserFactory.create(username='supertest')
+        lanes = lanes_for(user.username)
         self.assertEqual(len(lanes), 0)
 
         response = self.client.get('/experiments/lanes_for/%s/json' % (user,), apidata)
         self.assertEqual(len(lanes), 0)
 
         response = self.client.get('/experiments/lanes_for/%s/json' % (user,), apidata)
-        lanes_json = json.loads(response.content)
+        self.assertEqual(response.status_code, 404)
 
     def test_lanes_for_no_user(self):
         """
 
     def test_lanes_for_no_user(self):
         """
@@ -291,11 +323,11 @@ class ExperimentsTestCases(TestCase):
 
         srf4 = result_dict['FC12150/C1-37/woldlab_070829_SERIAL_FC12150_4.srf']
         self.assertEqual(srf4.file_type, srf_file_type)
 
         srf4 = result_dict['FC12150/C1-37/woldlab_070829_SERIAL_FC12150_4.srf']
         self.assertEqual(srf4.file_type, srf_file_type)
-        self.assertEqual(srf4.library_id, '11060')
+        self.assertEqual(srf4.library_id, '12154')
         self.assertEqual(srf4.data_run.flowcell.flowcell_id, 'FC12150')
         self.assertEqual(
             srf4.data_run.flowcell.lane_set.get(lane_number=4).library_id,
         self.assertEqual(srf4.data_run.flowcell.flowcell_id, 'FC12150')
         self.assertEqual(
             srf4.data_run.flowcell.lane_set.get(lane_number=4).library_id,
-            '11060')
+            '12154')
         self.assertEqual(
             srf4.pathname,
             os.path.join(settings.RESULT_HOME_DIR, srf4.relative_pathname))
         self.assertEqual(
             srf4.pathname,
             os.path.join(settings.RESULT_HOME_DIR, srf4.relative_pathname))
@@ -346,15 +378,15 @@ class ExperimentsTestCases(TestCase):
 
         model = get_model()
 
 
         model = get_model()
 
-        expected = {'1': ['11034'],
-                    '2': ['11036'],
-                    '3': ['12044','11045'],
-                    '4': ['11047','13044'],
-                    '5': ['11055'],
-                    '6': ['11067'],
-                    '7': ['11069'],
-                    '8': ['11070']}
-        url = '/flowcell/42JU1AAXX/'
+        expected = {'1': ['12151'],
+                    '2': ['12152'],
+                    '3': ['12153'],
+                    '4': ['12154'],
+                    '5': ['12155'],
+                    '6': ['12156'],
+                    '7': ['12157'],
+                    '8': ['12158']}
+        url = '/flowcell/{}/'.format(self.fc12150.flowcell_id)
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)
@@ -378,18 +410,14 @@ class ExperimentsTestCases(TestCase):
         count = 0
         for r in query.execute(model):
             count += 1
         count = 0
         for r in query.execute(model):
             count += 1
-            self.assertEqual(fromTypedNode(r['flowcell_id']), u'42JU1AAXX')
+            self.assertEqual(fromTypedNode(r['flowcell_id']), u'FC12150')
             lane_id = fromTypedNode(r['lane_id'])
             library_id = fromTypedNode(r['library_id'])
             self.assertTrue(library_id in expected[lane_id])
             lane_id = fromTypedNode(r['lane_id'])
             library_id = fromTypedNode(r['library_id'])
             self.assertTrue(library_id in expected[lane_id])
-        self.assertEqual(count, 10)
+        self.assertEqual(count, 8)
 
 
 class TestFileType(TestCase):
 
 
 class TestFileType(TestCase):
-    fixtures = ['initial_data.json',
-                'test_flowcells.json',
-                ]
-
     def test_file_type_unicode(self):
         file_type_objects = FileType.objects
         name = 'QSEQ tarfile'
     def test_file_type_unicode(self):
         file_type_objects = FileType.objects
         name = 'QSEQ tarfile'
@@ -448,34 +476,56 @@ class TestFileType(TestCase):
             self.assertEqual(result.get('end', None), end)
 
 class TestEmailNotify(TestCase):
             self.assertEqual(result.get('end', None), end)
 
 class TestEmailNotify(TestCase):
-    fixtures = ['initial_data.json',
-                'test_flowcells.json']
+    def setUp(self):
+        self.password = 'foo27'
+        self.user = HTSUserFactory.create(username='test')
+        self.user.set_password(self.password)
+        self.user.save()
+        self.admin = HTSUserFactory.create(username='admintest', is_staff=True)
+        self.admin.set_password(self.password)
+        self.admin.save()
+        self.super = HTSUserFactory.create(username='supertest', is_staff=True, is_superuser=True)
+        self.super.set_password(self.password)
+        self.super.save()
+
+        self.library = LibraryFactory.create()
+        self.affiliation = AffiliationFactory()
+        self.affiliation.users.add(self.user)
+        self.library.affiliations.add(self.affiliation)
+        self.fc = FlowCellFactory.create()
+        self.lane = LaneFactory(flowcell=self.fc, lane_number=1, library=self.library)
+
+        self.url = '/experiments/started/{}/'.format(self.fc.id)
 
     def test_started_email_not_logged_in(self):
 
     def test_started_email_not_logged_in(self):
-        response = self.client.get('/experiments/started/153/')
+        response = self.client.get(self.url)
         self.assertEqual(response.status_code, 302)
 
     def test_started_email_logged_in_user(self):
         self.assertEqual(response.status_code, 302)
 
     def test_started_email_logged_in_user(self):
-        self.client.login(username='test', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/experiments/started/153/')
+        self.assertTrue(self.client.login(username=self.user.username, password=self.password))
+        response = self.client.get(self.url)
         self.assertEqual(response.status_code, 302)
 
     def test_started_email_logged_in_staff(self):
         self.assertEqual(response.status_code, 302)
 
     def test_started_email_logged_in_staff(self):
-        self.client.login(username='admintest', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/experiments/started/153/')
+        self.assertTrue(self.admin.is_staff)
+        admin = HTSUser.objects.get(username=self.admin.username)
+        self.assertTrue(admin.is_staff)
+        self.assertTrue(admin.check_password(self.password))
+        self.assertTrue(self.client.login(username=self.admin.username, password=self.password))
+        response = self.client.get(self.url)
         self.assertEqual(response.status_code, 200)
 
     def test_started_email_send(self):
         self.assertEqual(response.status_code, 200)
 
     def test_started_email_send(self):
-        self.client.login(username='admintest', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/experiments/started/153/')
+        self.assertTrue(self.client.login(username=self.admin.username, password=self.password))
+        response = self.client.get(self.url)
         self.assertEqual(response.status_code, 200)
 
         self.assertEqual(response.status_code, 200)
 
-        self.assertTrue('pk1@example.com' in response.content)
-        self.assertTrue('Lane #8 : (11064) Paired ends 104' in response.content)
+        self.assertTrue(self.affiliation.email in response.content)
+        self.assertTrue(self.library.library_name in response.content)
 
 
-        response = self.client.get('/experiments/started/153/', {'send':'1','bcc':'on'})
+        response = self.client.get(self.url, {'send':'1','bcc':'on'})
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
-        self.assertEqual(len(mail.outbox), 4)
+        self.assertEqual(len(mail.outbox), 2)
         bcc = set(settings.NOTIFICATION_BCC).copy()
         bcc.update(set(settings.MANAGERS))
         for m in mail.outbox:
         bcc = set(settings.NOTIFICATION_BCC).copy()
         bcc.update(set(settings.MANAGERS))
         for m in mail.outbox:
@@ -486,12 +536,14 @@ class TestEmailNotify(TestCase):
         """
         Can we navigate between the flowcell and email forms properly?
         """
         """
         Can we navigate between the flowcell and email forms properly?
         """
-        self.client.login(username='supertest', password='BJOKL5kAj6aFZ6A5')
-        response = self.client.get('/experiments/started/153/')
+        admin_url = '/admin/experiments/flowcell/{}/'.format(self.fc.id)
+        self.client.login(username=self.admin.username, password=self.password)
+        response = self.client.get(self.url)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
-        self.assertTrue(re.search('Flowcell FC12150', response.content))
+        #print("email navigation content:", response.content)
+        self.assertTrue(re.search(self.fc.flowcell_id, response.content))
         # require that navigation back to the admin page exists
         # require that navigation back to the admin page exists
-        self.assertTrue(re.search('<a href="/admin/experiments/flowcell/153/">[^<]+</a>', response.content))
+        self.assertTrue(re.search('<a href="{}">[^<]+</a>'.format(admin_url), response.content))
 
 def multi_lane_to_dict(lane):
     """Convert a list of lane entries into a dictionary indexed by library ID
 
 def multi_lane_to_dict(lane):
     """Convert a list of lane entries into a dictionary indexed by library ID
@@ -499,9 +551,10 @@ def multi_lane_to_dict(lane):
     return dict( ((x['library_id'],x) for x in lane) )
 
 class TestSequencer(TestCase):
     return dict( ((x['library_id'],x) for x in lane) )
 
 class TestSequencer(TestCase):
-    fixtures = ['initial_data.json',
-                'test_flowcells.json',
-                ]
+    def setUp(self):
+        self.fc12150 = FlowCellFactory(flowcell_id='FC12150')
+        self.library = LibraryFactory(id="12150")
+        self.lane = LaneFactory(flowcell=self.fc12150, lane_number=1, library=self.library)
 
     def test_name_generation(self):
         seq = Sequencer()
 
     def test_name_generation(self):
         seq = Sequencer()
@@ -512,11 +565,9 @@ class TestSequencer(TestCase):
         self.assertEqual(unicode(seq), "Seq1 (HWI-SEQ1)")
 
     def test_lookup(self):
         self.assertEqual(unicode(seq), "Seq1 (HWI-SEQ1)")
 
     def test_lookup(self):
-        fc = FlowCell.objects.get(pk=153)
-        self.assertEqual(fc.sequencer.model,
-                             "Illumina Genome Analyzer IIx")
-        self.assertEqual(fc.sequencer.instrument_name,
-                             "ILLUMINA-EC5D15")
+        fc = self.fc12150
+        self.assertEqual(fc.sequencer.model, 'HiSeq 1')
+        self.assertTrue(fc.sequencer.instrument_name.startswith('instrument name')),
         # well actually we let the browser tack on the host name
         url = fc.get_absolute_url()
         self.assertEqual(url, '/flowcell/FC12150/')
         # well actually we let the browser tack on the host name
         url = fc.get_absolute_url()
         self.assertEqual(url, '/flowcell/FC12150/')
@@ -530,20 +581,21 @@ class TestSequencer(TestCase):
         self.assertEqual(seq_by[0].attrib['rel'], 'libns:sequenced_by')
         seq = seq_by[0].getchildren()
         self.assertEqual(len(seq), 1)
         self.assertEqual(seq_by[0].attrib['rel'], 'libns:sequenced_by')
         seq = seq_by[0].getchildren()
         self.assertEqual(len(seq), 1)
-        self.assertEqual(seq[0].attrib['about'], '/sequencer/2')
+        sequencer = '/sequencer/' + str(self.fc12150.sequencer.id)
+        self.assertEqual(seq[0].attrib['about'], sequencer)
         self.assertEqual(seq[0].attrib['typeof'], 'libns:Sequencer')
 
         name = seq[0].xpath('./span[@property="libns:sequencer_name"]')
         self.assertEqual(len(name), 1)
         self.assertEqual(seq[0].attrib['typeof'], 'libns:Sequencer')
 
         name = seq[0].xpath('./span[@property="libns:sequencer_name"]')
         self.assertEqual(len(name), 1)
-        self.assertEqual(name[0].text, 'Tardigrade')
+        self.assertTrue(name[0].text.startswith('sequencer '))
         instrument = seq[0].xpath(
             './span[@property="libns:sequencer_instrument"]')
         self.assertEqual(len(instrument), 1)
         instrument = seq[0].xpath(
             './span[@property="libns:sequencer_instrument"]')
         self.assertEqual(len(instrument), 1)
-        self.assertEqual(instrument[0].text, 'ILLUMINA-EC5D15')
+        self.assertTrue(instrument[0].text.startswith('instrument name'))
         model = seq[0].xpath(
             './span[@property="libns:sequencer_model"]')
         self.assertEqual(len(model), 1)
         model = seq[0].xpath(
             './span[@property="libns:sequencer_model"]')
         self.assertEqual(len(model), 1)
-        self.assertEqual(model[0].text, 'Illumina Genome Analyzer IIx')
+        self.assertEqual(model[0].text, 'HiSeq 1')
 
     def test_flowcell_with_rdf_validation(self):
         from htsworkflow.util.rdfhelp import add_default_schemas, \
 
     def test_flowcell_with_rdf_validation(self):
         from htsworkflow.util.rdfhelp import add_default_schemas, \
@@ -578,7 +630,7 @@ class TestSequencer(TestCase):
         add_default_schemas(model)
         inference = Infer(model)
 
         add_default_schemas(model)
         inference = Infer(model)
 
-        url = '/lane/1193'
+        url = '/lane/{}'.format(self.lane.id)
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
         status = validate_xhtml(response.content)