from __future__ import unicode_literals
from django.db import models
from s3direct.fields import S3DirectField
from django.contrib.auth.models import User
## Possible field in db models
#owner = models.ForeignKey(User)
[docs]class Aspect(models.Model):
#aspectkey = models.IntegerField(db_column='AspectKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Aspect'
[docs]class Bodypart(models.Model):
#bodypartkey = models.IntegerField(db_column='BodyPartKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
startskeletonindex = models.FloatField(db_column='StartSkeletonIndex', blank=True, null=True)
endskeletonindex = models.FloatField(db_column='EndSkeletonIndex', blank=True, null=True)
startskeletonindexdeprecated = models.FloatField(db_column='StartSkeletonIndexDEPRECATED', blank=True, null=True)
endskeletonindexdeprecated = models.FloatField(db_column='EndSkeletonIndexDEPRECATED', blank=True, null=True)
class Meta:
db_table = 'BodyPart'
[docs]class Category(models.Model):
#categorykey = models.IntegerField(db_column='CategoryKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Category'
[docs]class Computervisionalgorithm(models.Model):
#cvalgorithmkey = models.IntegerField(db_column='CVAlgorithmKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
framebyframe = models.CharField(db_column='FrameByFrame', max_length=1)
author = models.CharField(db_column='Author', max_length=20, blank=True)
academicpaper = models.CharField(db_column='AcademicPaper', max_length=20, blank=True)
code = models.CharField(db_column='Code', max_length=100)
class Meta:
db_table = 'ComputerVisionAlgorithm'
[docs]class Direction(models.Model):
# directionkey = models.IntegerField(db_column='DirectionKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=20, blank=True)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Direction'
[docs]class Experimenter(models.Model):
#experimenterkey = models.IntegerField(db_column='ExperimenterKey', primary_key=True)
labkey = models.ForeignKey('Lab', db_column='LabKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Experimenter'
[docs]class Featuresperplatewireframe(models.Model):
#featuresperplatewireframe = models.IntegerField(db_column='FeaturesPerPlateWireframe', primary_key=True)
platefeaturekey = models.ForeignKey('Platefeature', db_column='PlateFeatureKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
value = models.TextField(db_column='Value', blank=True)
platewireframevideokey = models.ForeignKey('Platewireframevideo', db_column='PlateWireframeVideoKey')
class Meta:
db_table = 'FeaturesPerPlateWireframe'
[docs]class Featuresperwormwireframe(models.Model):
#featuresperwormwireframekey = models.IntegerField(db_column='FeaturesPerWormWireframeKey', primary_key=True)
wormfeaturekey = models.ForeignKey('Wormfeature', db_column='WormFeatureKey')
wormwireframekey = models.ForeignKey('Wormwireframevideo', db_column='WormWireframeKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
value = models.TextField(db_column='Value', blank=True)
class Meta:
db_table = 'FeaturesPerWormWireframe'
[docs]class Histogramsperplatewireframe(models.Model):
#histogramsperplatewireframekey = models.IntegerField(db_column='HistogramsPerPlateWireframeKey', primary_key=True)
platewireframevideokey = models.ForeignKey('Platewireframevideo', db_column='PlateWireframeVideoKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
bins = models.TextField(db_column='Bins', blank=True)
counts = models.TextField(db_column='Counts', blank=True)
class Meta:
db_table = 'HistogramsPerPlateWireframe'
[docs]class Histogramsperwormwireframe(models.Model):
#histogramsperwormwireframekey = models.IntegerField(db_column='HistogramsPerWormWireframeKey', primary_key=True)
eventdirectionkey = models.ForeignKey('Direction', db_column='EventDirectionKey')
wormfeaturekey = models.ForeignKey('Wormfeature', db_column='WormFeatureKey')
wormwireframekey = models.ForeignKey('Wormwireframevideo', db_column='WormWireframeKey')
signkey = models.ForeignKey('Sign', db_column='SignKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
bins = models.TextField(db_column='Bins', blank=True)
counts = models.TextField(db_column='Counts', blank=True)
class Meta:
db_table = 'HistogramsPerWormWireframe'
[docs]class Lab(models.Model):
#labkey = models.IntegerField(db_column='LabKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
address = models.CharField(db_column='Address', max_length=20, blank=True)
class Meta:
db_table = 'Lab'
[docs]class Measurementsperwormwireframe(models.Model):
#measurementsperwormwireframe = models.IntegerField(db_column='MeasurementsPerWormWireframe', primary_key=True)
wormmeasurementkey = models.ForeignKey('Wormmeasurement', db_column='WormMeasurementKey')
wormwireframekey = models.ForeignKey('Wormwireframevideo', db_column='WormWireframeKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
value = models.TextField(db_column='Value', blank=True)
class Meta:
db_table = 'MeasurementsPerWormWireframe'
[docs]class Plate(models.Model):
#platekey = models.IntegerField(db_column='PlateKey', primary_key=True)
experimenterkey = models.ForeignKey(Experimenter, db_column='ExperimenterKey')
wormlistkey = models.ForeignKey('Wormlist', db_column='WormListKey')
def get_subclass_name(self):
return self.__class__.__name__
name = models.CharField(db_column='Name', max_length=100)
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
sampletype = models.CharField(db_column='SampleType', max_length=18, blank=True)
startdatetime = models.DateTimeField(db_column='StartDateTime', blank=True, null=True)
copyright = models.CharField(db_column='Copyright', max_length=20, blank=True)
vulvaorientation = models.CharField(db_column='VulvaOrientation', max_length=20, blank=True)
annotation = models.CharField(db_column='Annotation', max_length=20, blank=True)
chemicals = models.CharField(db_column='Chemicals', max_length=20, blank=True)
food = models.CharField(db_column='Food', max_length=20, blank=True)
illumination = models.CharField(db_column='Illumination', max_length=20, blank=True)
temperature = models.IntegerField(db_column='Temperature', blank=True, null=True)
tracker = models.CharField(db_column='Tracker', max_length=20, blank=True)
agarside = models.CharField(db_column='AgarSide', max_length=20, blank=True)
gasconcentration = models.TextField(db_column='GasConcentration', blank=True)
class Meta:
db_table = 'Plate'
[docs]class Platefeature(models.Model):
#platefeaturekey = models.IntegerField(db_column='PlateFeatureKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
title = models.CharField(db_column='Title', max_length=20, blank=True)
shorttitle = models.CharField(db_column='ShortTitle', max_length=20, blank=True)
class Meta:
db_table = 'PlateFeature'
[docs]class Platerawvideo(models.Model):
#platerawvideokey = models.IntegerField(db_column='PlateRawVideoKey', primary_key=True)
platekey = models.ForeignKey(Plate, db_column='PlateKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
title = models.CharField(db_column='Title', max_length=20, blank=True)
shorttitle = models.CharField(db_column='ShortTitle', max_length=20, blank=True)
videofileurl = models.URLField(db_column='VideoFileURL', max_length=200)
fps = models.IntegerField(db_column='FPS', blank=True, null=True)
numframes = models.FloatField(db_column='NumFrames', blank=True, null=True)
width = models.IntegerField(db_column='Width', blank=True, null=True)
height = models.IntegerField(db_column='Height', blank=True, null=True)
micronsperpixel = models.IntegerField(db_column='MicronsPerPixel', blank=True, null=True)
class Meta:
db_table = 'PlateRawVideo'
[docs]class Platewireframevideo(models.Model):
#platewireframevideokey = models.IntegerField(db_column='PlateWireframeVideoKey', primary_key=True)
platerawvideokey = models.ForeignKey(Platerawvideo, db_column='PlateRawVideoKey')
cvalgorithmkey = models.ForeignKey(Computervisionalgorithm, db_column='CVAlgorithmKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
wireframevideo = models.TextField(db_column='WireframeVideo', blank=True)
droppedframeinfo = models.TextField(db_column='DroppedFrameInfo', blank=True)
class Meta:
db_table = 'PlateWireframeVideo'
[docs]class Sign(models.Model):
#signkey = models.IntegerField(db_column='SignKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Sign'
[docs]class Strain(models.Model):
#strainkey = models.IntegerField(db_column='StrainKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
gene = models.CharField(db_column='Gene', max_length=20, blank=True)
genotype = models.TextField(db_column='Genotype', blank=True)
allele = models.CharField(db_column='Allele', max_length=20, blank=True)
chromosome = models.CharField(db_column='Chromosome', max_length=20, blank=True)
simulated = models.CharField(db_column='Simulated', max_length=1)
class Meta:
db_table = 'Strain'
[docs]class Type(models.Model):
#typekey = models.IntegerField(db_column='TypeKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'Type'
"""
class User(models.Model):
#userid = models.IntegerField(db_column='UserID', primary_key=True)
name = models.CharField(db_column='Name', max_length=20, blank=True)
accesslevel = models.FloatField(db_column='AccessLevel', blank=True, null=True)
labkey = models.ForeignKey(Lab, db_column='LabKey')
class Meta:
db_table = 'User'
"""
"""
class Videoattributes(models.Model):
#videometadatakey = models.CharField(db_column='VideoMetadataKey', primary_key=True, max_length=18)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
fps = models.IntegerField(db_column='FPS', blank=True, null=True)
numframes = models.FloatField(db_column='NumFrames', blank=True, null=True)
width = models.IntegerField(db_column='Width', blank=True, null=True)
height = models.IntegerField(db_column='Height', blank=True, null=True)
micronsperpixel = models.IntegerField(db_column='MicronsPerPixel', blank=True, null=True)
class Meta:
db_table = 'VideoAttributes'
"""
[docs]class Worm(models.Model):
#wormkey = models.IntegerField(db_column='WormKey', primary_key=True)
strainkey = models.ForeignKey(Strain, db_column='StrainKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
sex = models.CharField(db_column='Sex', max_length=20, blank=True)
thaweddate = models.DateTimeField(db_column='ThawedDate', blank=True, null=True)
generationssincethawing = models.FloatField(db_column='GenerationsSinceThawing', blank=True, null=True)
habituation = models.CharField(db_column='Habituation', max_length=20, blank=True)
class Meta:
db_table = 'Worm'
[docs]class Wormfeature(models.Model):
#wormfeaturekey = models.IntegerField(db_column='WormFeatureKey', primary_key=True)
typekey = models.ForeignKey(Type, db_column='TypeKey')
categorykey = models.ForeignKey(Category, db_column='CategoryKey')
directionkey = models.ForeignKey(Direction, db_column='DirectionKey')
aspectkey = models.ForeignKey(Aspect, db_column='AspectKey')
bodypartkey = models.ForeignKey(Bodypart, db_column='BodyPartKey')
featureindex = models.FloatField(db_column='FeatureIndex', blank=True, null=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
title = models.CharField(db_column='Title', max_length=20, blank=True)
shorttitle = models.CharField(db_column='ShortTitle', max_length=20, blank=True)
description = models.CharField(db_column='Description', max_length=500, blank=True)
bin_width = models.IntegerField(blank=True, null=True)
is_signed = models.CharField(max_length=1)
is_time_series = models.CharField(max_length=1)
is_zero_bin = models.IntegerField()
units = models.CharField(max_length=20, blank=True)
signed_field = models.CharField(max_length=20, blank=True)
remove_partial_events = models.CharField(max_length=1)
make_zero_if_empty = models.CharField(max_length=1)
name = models.CharField(db_column='Name', max_length=100)
class Meta:
db_table = 'WormFeature'
[docs]class Worminteraction(models.Model):
#worminteractionkey = models.CharField(db_column='WormInteractionKey', primary_key=True, max_length=18)
platewireframevideokey = models.ForeignKey(Platewireframevideo, db_column='PlateWireframeVideoKey')
wormlistkey = models.ForeignKey('Wormlist', db_column='WormListKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
framebyframewormparticipation = models.TextField(db_column='FrameByFrameWormParticipation', blank=True)
area = models.TextField(db_column='Area', blank=True)
interactiontype = models.CharField(db_column='InteractionType', max_length=20, blank=True)
startframe = models.FloatField(db_column='StartFrame', blank=True, null=True)
endframe = models.FloatField(db_column='EndFrame', blank=True, null=True)
class Meta:
db_table = 'WormInteraction'
[docs]class Wormlist(models.Model):
#wormlistkey = models.IntegerField(db_column='WormListKey', primary_key=True)
wormkey = models.ForeignKey(Worm, db_column='WormKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
class Meta:
db_table = 'WormList'
[docs]class Wormmeasurement(models.Model):
#wormmeasurementskey = models.IntegerField(db_column='WormMeasurementsKey', primary_key=True)
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
description = models.CharField(db_column='Description', max_length=500, blank=True)
class Meta:
db_table = 'WormMeasurement'
[docs]class Wormwireframevideo(models.Model):
#wormwireframekey = models.IntegerField(db_column='WormWireframeKey', primary_key=True)
platewireframevideokey = models.ForeignKey(Platewireframevideo, db_column='PlateWireframeVideoKey')
def get_subclass_name(self):
return self.__class__.__name__
timestamp = models.DateTimeField(db_column="Timestamp", auto_now_add=True)
name = models.CharField(db_column='Name', max_length=100)
wireframevideo = models.TextField(db_column='WireframeVideo', blank=True)
droppedframeinfo = models.TextField(db_column='DroppedFrameInfo', blank=True)
class Meta:
db_table = 'WormWireframeVideo'