Source code for mbrowse.models.models_libraries
from __future__ import unicode_literals
import os
import datetime
from django.db import models
# def data_msp_file_store(instance, filename):
# now = datetime.now()
# return os.path.join('data', 'library', now.strftime("%Y_%m_%d"), filename)
[docs]class LibrarySpectraSource(models.Model):
name = models.CharField(max_length=100, blank=False, null=False)
description = models.CharField(max_length=100, blank=True, null=True)
# msp_file = models.FileField(upload_to=data_msp_file_store, blank=False, null=False)
def __str__(self): # __unicode__ on Python 2
return self.name
class Meta:
db_table = 'library_spectra_source'
verbose_name_plural = "library spectra references"
[docs]class LibrarySpectraMeta(models.Model):
name = models.TextField(blank=True, null=True)
collision_energy = models.TextField(blank=True, null=True)
ms_level = models.CharField(max_length=400, blank=True, null=True)
accession = models.TextField(blank=False, null=False)
resolution = models.CharField(max_length=400, blank=True, null=True)
polarity = models.CharField(max_length=400, blank=True, null=True)
fragmentation_type = models.CharField(max_length=400, blank=True, null=True)
precursor_mz = models.FloatField(blank=True, null=True)
precursor_type = models.TextField(blank=True, null=True)
instrument_type = models.CharField(max_length=400, blank=True, null=True)
instrument = models.CharField(max_length=400, blank=True, null=True)
copyright = models.TextField(blank=True, null=True)
column = models.TextField(blank=True, null=True)
mass_accuracy = models.FloatField(blank=True, null=True)
mass_error = models.FloatField(blank=True, null=True)
origin = models.TextField(blank=True, null=True)
library_spectra_source = models.ForeignKey('LibrarySpectraSource', on_delete=models.CASCADE, blank=False, null=False)
inchikey = models.ForeignKey('Compound', on_delete=models.CASCADE)
def __str__(self): # __unicode__ on Python 2
return '{} [accession:{}]'.format(self.name, self.accession)
class Meta:
db_table = 'library_spectra_meta'
verbose_name_plural = "library spectra meta"
[docs]class LibrarySpectra(models.Model):
library_spectra_meta = models.ForeignKey('LibrarySpectraMeta', on_delete=models.CASCADE, blank=False, null=False)
mz = models.FloatField(null=True)
i = models.FloatField(null=True)
other = models.CharField(max_length=100, blank=True, null=True)
def __str__(self): # __unicode__ on Python 2
return '{}_{}'.format(self.mz, self.i)
class Meta:
db_table = 'library_spectra'
verbose_name_plural = "Library spectra"