recreate samples initial migration as strings instead of bytestrings
[htsworkflow.git] / samples / migrations / 0001_initial.py
1 # -*- coding: utf-8 -*-
2 from __future__ import unicode_literals
3
4 from django.db import models, migrations
5 from django.conf import settings
6
7
8 class Migration(migrations.Migration):
9
10     dependencies = [
11         ('auth', '0001_initial'),
12     ]
13
14     operations = [
15         migrations.CreateModel(
16             name='Affiliation',
17             fields=[
18                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
19                 ('name', models.CharField(verbose_name='Name', db_index=True, max_length=256)),
20                 ('contact', models.CharField(blank=True, null=True, max_length=256, verbose_name='Lab Name')),
21                 ('email', models.EmailField(max_length=75, null=True, blank=True)),
22             ],
23             options={
24                 'ordering': ['name', 'contact'],
25             },
26             bases=(models.Model,),
27         ),
28         migrations.CreateModel(
29             name='Antibody',
30             fields=[
31                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
32                 ('antigene', models.CharField(max_length=500, db_index=True)),
33                 ('nickname', models.CharField(db_index=True, max_length=20, null=True, blank=True)),
34                 ('catalog', models.CharField(max_length=50, null=True, blank=True)),
35                 ('antibodies', models.CharField(max_length=500, db_index=True)),
36                 ('source', models.CharField(db_index=True, max_length=500, null=True, blank=True)),
37                 ('biology', models.TextField(null=True, blank=True)),
38                 ('notes', models.TextField(null=True, blank=True)),
39             ],
40             options={
41                 'ordering': ['antigene'],
42                 'verbose_name_plural': 'antibodies',
43             },
44             bases=(models.Model,),
45         ),
46         migrations.CreateModel(
47             name='Cellline',
48             fields=[
49                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
50                 ('cellline_name', models.CharField(unique=True, max_length=100, db_index=True)),
51                 ('nickname', models.CharField(db_index=True, max_length=20, null=True, blank=True)),
52                 ('notes', models.TextField(blank=True)),
53             ],
54             options={
55                 'ordering': ['cellline_name'],
56             },
57             bases=(models.Model,),
58         ),
59         migrations.CreateModel(
60             name='Condition',
61             fields=[
62                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
63                 ('condition_name', models.CharField(unique=True, max_length=2000, db_index=True)),
64                 ('nickname', models.CharField(db_index=True, max_length=20, null=True, verbose_name='Short Name', blank=True)),
65                 ('notes', models.TextField(blank=True)),
66             ],
67             options={
68                 'ordering': ['condition_name'],
69             },
70             bases=(models.Model,),
71         ),
72         migrations.CreateModel(
73             name='ExperimentType',
74             fields=[
75                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
76                 ('name', models.CharField(unique=True, max_length=50)),
77             ],
78             options={
79             },
80             bases=(models.Model,),
81         ),
82         migrations.CreateModel(
83             name='HTSUser',
84             fields=[
85                 ('user_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)),
86             ],
87             options={
88                 'ordering': ['first_name', 'last_name', 'username'],
89             },
90             bases=('auth.user',),
91         ),
92         migrations.CreateModel(
93             name='Library',
94             fields=[
95                 ('id', models.CharField(max_length=10, serialize=False, primary_key=True)),
96                 ('library_name', models.CharField(unique=True, max_length=100)),
97                 ('hidden', models.BooleanField(default=False)),
98                 ('account_number', models.CharField(max_length=100, null=True, blank=True)),
99                 ('replicate', models.PositiveSmallIntegerField(blank=True, null=True, choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)])),
100                 ('multiplex_id', models.CharField(max_length=128, null=True, verbose_name='Index ID', blank=True)),
101                 ('creation_date', models.DateField(null=True, blank=True)),
102                 ('made_for', models.CharField(max_length=50, verbose_name='ChIP/DNA/RNA Made By', blank=True)),
103                 ('made_by', models.CharField(default='Lorian', max_length=50, blank=True)),
104                 ('stopping_point', models.CharField(default='Done', max_length=25, choices=[('?', 'Unknown'), ('Sample', 'Raw sample'), ('Progress', 'In progress'), ('1A', 'Ligation, then gel'), ('PCR', 'Ligation, then PCR'), ('1Ab', 'Ligation, PCR, then gel'), ('1Ac', 'Ligation, gel, then 12x PCR'), ('1Aa', 'Ligation, gel, then 18x PCR'), ('2A', 'Ligation, PCR, gel, PCR'), ('Done', 'Completed')])),
105                 ('undiluted_concentration', models.DecimalField(decimal_places=2, max_digits=5, blank=True, help_text='Undiluted concentration (ng/\xb5l)', null=True, verbose_name='Concentration')),
106                 ('successful_pM', models.DecimalField(null=True, max_digits=9, decimal_places=1, blank=True)),
107                 ('ten_nM_dilution', models.BooleanField(default=False)),
108                 ('gel_cut_size', models.IntegerField(default=225, null=True, blank=True)),
109                 ('insert_size', models.IntegerField(null=True, blank=True)),
110                 ('notes', models.TextField(blank=True)),
111                 ('bioanalyzer_summary', models.TextField(default='', blank=True)),
112                 ('bioanalyzer_concentration', models.DecimalField(help_text='(ng/\xb5l)', null=True, max_digits=5, decimal_places=2, blank=True)),
113                 ('bioanalyzer_image_url', models.URLField(default='', blank=True)),
114                 ('affiliations', models.ManyToManyField(related_name='library_affiliations', null=True, to='samples.Affiliation')),
115                 ('amplified_from_sample', models.ForeignKey(related_name='amplified_into_sample', blank=True, to='samples.Library', null=True)),
116                 ('antibody', models.ForeignKey(blank=True, to='samples.Antibody', null=True)),
117                 ('cell_line', models.ForeignKey(verbose_name='Background', blank=True, to='samples.Cellline', null=True)),
118                 ('condition', models.ForeignKey(blank=True, to='samples.Condition', null=True)),
119                 ('experiment_type', models.ForeignKey(to='samples.ExperimentType')),
120             ],
121             options={
122                 'ordering': ['-id'],
123                 'verbose_name_plural': 'libraries',
124             },
125             bases=(models.Model,),
126         ),
127         migrations.CreateModel(
128             name='LibraryType',
129             fields=[
130                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
131                 ('name', models.CharField(unique=True, max_length=255, verbose_name='Adapter Type')),
132                 ('is_paired_end', models.BooleanField(default=True, help_text='can you do a paired end run with this adapter')),
133                 ('can_multiplex', models.BooleanField(default=True, help_text='Does this adapter provide multiplexing?')),
134             ],
135             options={
136                 'ordering': ['-id'],
137             },
138             bases=(models.Model,),
139         ),
140         migrations.CreateModel(
141             name='MultiplexIndex',
142             fields=[
143                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
144                 ('multiplex_id', models.CharField(max_length=6)),
145                 ('sequence', models.CharField(max_length=12, null=True, blank=True)),
146                 ('adapter_type', models.ForeignKey(to='samples.LibraryType')),
147             ],
148             options={
149                 'verbose_name_plural': 'multiplex indicies',
150             },
151             bases=(models.Model,),
152         ),
153         migrations.CreateModel(
154             name='Species',
155             fields=[
156                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
157                 ('scientific_name', models.CharField(max_length=256, db_index=True)),
158                 ('common_name', models.CharField(max_length=256, blank=True)),
159             ],
160             options={
161                 'ordering': ['scientific_name'],
162                 'verbose_name_plural': 'species',
163             },
164             bases=(models.Model,),
165         ),
166         migrations.CreateModel(
167             name='Tag',
168             fields=[
169                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
170                 ('tag_name', models.CharField(max_length=100, db_index=True)),
171                 ('context', models.CharField(default='Library', max_length=50, choices=[('Library', 'Library'), ('ANY', 'ANY')])),
172             ],
173             options={
174                 'ordering': ['context', 'tag_name'],
175             },
176             bases=(models.Model,),
177         ),
178         migrations.AlterUniqueTogether(
179             name='multiplexindex',
180             unique_together=set([('adapter_type', 'multiplex_id')]),
181         ),
182         migrations.AddField(
183             model_name='library',
184             name='library_species',
185             field=models.ForeignKey(to='samples.Species'),
186             preserve_default=True,
187         ),
188         migrations.AddField(
189             model_name='library',
190             name='library_type',
191             field=models.ForeignKey(verbose_name='Adapter Type', blank=True, to='samples.LibraryType', null=True),
192             preserve_default=True,
193         ),
194         migrations.AddField(
195             model_name='library',
196             name='tags',
197             field=models.ManyToManyField(related_name='library_tags', null=True, to='samples.Tag', blank=True),
198             preserve_default=True,
199         ),
200         migrations.AddField(
201             model_name='affiliation',
202             name='users',
203             field=models.ManyToManyField(to='samples.HTSUser', null=True, blank=True),
204             preserve_default=True,
205         ),
206         migrations.AlterUniqueTogether(
207             name='affiliation',
208             unique_together=set([('name', 'contact')]),
209         ),
210     ]