db

class BaseModel(*args, **kwargs)[source]

Bases: peewee.Model

DoesNotExist

alias of BaseModelDoesNotExist

id = <AutoField: BaseModel.id>
class BeaconCounts(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of BeaconCountsDoesNotExist

callcount = <IntegerField: BeaconCounts.callcount>
datasetid = <CharField: BeaconCounts.datasetid>
variantcount = <IntegerField: BeaconCounts.variantcount>
class Collection(*args, **kwargs)[source]

Bases: backend.db.BaseModel

A collection is a source of data which can be sampled into a SampleSet.

DoesNotExist

alias of CollectionDoesNotExist

ethnicity = <CharField: Collection.ethnicity>
id = <AutoField: Collection.id>
name = <CharField: Collection.name>
sample_sets
class Coverage(*args, **kwargs)[source]

Bases: backend.db.BaseModel

Coverage statistics are pre-calculated for each variant for a given dataset.

The fields show the fraction of a population that reaches the mapping coverages given by the variable names.

ex. cov20 = 0.994 means that 99.4% of the population had at a mapping
coverage of at least 20 in this position.
DoesNotExist

alias of CoverageDoesNotExist

chrom = <CharField: Coverage.chrom>
coverage = <ArrayField: Coverage.coverage>
dataset_version = <ForeignKeyField: Coverage.dataset_version>
dataset_version_id = <ForeignKeyField: Coverage.dataset_version>
id = <AutoField: Coverage.id>
mean = <FloatField: Coverage.mean>
median = <FloatField: Coverage.median>
pos = <IntegerField: Coverage.pos>
class Dataset(*args, **kwargs)[source]

Bases: backend.db.BaseModel

A dataset is part of a study, and usually include a certain population.

Most studies only have a single dataset, but multiple are allowed.

DoesNotExist

alias of DatasetDoesNotExist

access
access_current
access_logs
access_pending
avg_seq_depth = <FloatField: Dataset.avg_seq_depth>
beacon_uri = <CharField: Dataset.beacon_uri>
browser_uri = <CharField: Dataset.browser_uri>
current_version
dataset_size = <IntegerField: Dataset.dataset_size>
description = <TextField: Dataset.description>
full_name = <CharField: Dataset.full_name>
has_image()[source]
id = <AutoField: Dataset.id>
sample_sets
seq_center = <CharField: Dataset.seq_center>
seq_tech = <CharField: Dataset.seq_tech>
seq_type = <CharField: Dataset.seq_type>
short_name = <CharField: Dataset.short_name>
study = <ForeignKeyField: Dataset.study>
study_id = <ForeignKeyField: Dataset.study>
versions
class DatasetAccess(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of DatasetAccessDoesNotExist

dataset = <ForeignKeyField: DatasetAccess.dataset>
dataset_id = <ForeignKeyField: DatasetAccess.dataset>
id = <AutoField: DatasetAccess.id>
is_admin = <BooleanField: DatasetAccess.is_admin>
user = <ForeignKeyField: DatasetAccess.user>
user_id = <ForeignKeyField: DatasetAccess.user>
wants_newsletter = <BooleanField: DatasetAccess.wants_newsletter>
class DatasetAccessCurrent(*args, **kwargs)[source]

Bases: backend.db.DatasetAccess

DoesNotExist

alias of DatasetAccessCurrentDoesNotExist

access_requested = <DateTimeField: DatasetAccessCurrent.access_requested>
dataset = <ForeignKeyField: DatasetAccessCurrent.dataset>
dataset_id = <ForeignKeyField: DatasetAccessCurrent.dataset>
has_access = <IntegerField: DatasetAccessCurrent.has_access>
id = <AutoField: DatasetAccessCurrent.id>
is_admin = <BooleanField: DatasetAccessCurrent.is_admin>
user = <ForeignKeyField: DatasetAccessCurrent.user>
user_id = <ForeignKeyField: DatasetAccessCurrent.user>
wants_newsletter = <BooleanField: DatasetAccessCurrent.wants_newsletter>
class DatasetAccessPending(*args, **kwargs)[source]

Bases: backend.db.DatasetAccess

DoesNotExist

alias of DatasetAccessPendingDoesNotExist

access_requested = <DateTimeField: DatasetAccessPending.access_requested>
dataset = <ForeignKeyField: DatasetAccessPending.dataset>
dataset_id = <ForeignKeyField: DatasetAccessPending.dataset>
has_access = <IntegerField: DatasetAccessPending.has_access>
id = <AutoField: DatasetAccessPending.id>
is_admin = <BooleanField: DatasetAccessPending.is_admin>
user = <ForeignKeyField: DatasetAccessPending.user>
user_id = <ForeignKeyField: DatasetAccessPending.user>
wants_newsletter = <BooleanField: DatasetAccessPending.wants_newsletter>
class DatasetFile(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of DatasetFileDoesNotExist

dataset_version = <ForeignKeyField: DatasetFile.dataset_version>
dataset_version_id = <ForeignKeyField: DatasetFile.dataset_version>
download_logs
file_size = <IntegerField: DatasetFile.file_size>
id = <AutoField: DatasetFile.id>
name = <CharField: DatasetFile.name>
uri = <CharField: DatasetFile.uri>

Bases: backend.db.BaseModel

DoesNotExist

alias of DatasetLogoDoesNotExist

data = <BlobField: DatasetLogo.data>
dataset = <ForeignKeyField: DatasetLogo.dataset>
dataset_id = <ForeignKeyField: DatasetLogo.dataset>
id = <AutoField: DatasetLogo.id>
mimetype = <CharField: DatasetLogo.mimetype>
class DatasetVersion(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of DatasetVersionDoesNotExist

available_from = <DateTimeField: DatasetVersion.available_from>
beacon_access = <EnumField: DatasetVersion.beacon_access>
consent_logs
coverage_levels = <ArrayField: DatasetVersion.coverage_levels>
coverage_set
data_contact_name = <CharField: DatasetVersion.data_contact_name>
dataset = <ForeignKeyField: DatasetVersion.dataset>
dataset_id = <ForeignKeyField: DatasetVersion.dataset>
description = <TextField: DatasetVersion.description>
file_access = <EnumField: DatasetVersion.file_access>
files
id = <AutoField: DatasetVersion.id>
mate
metrics_set
num_variants = <IntegerField: DatasetVersion.num_variants>
portal_avail = <BooleanField: DatasetVersion.portal_avail>
ref_doi = <CharField: DatasetVersion.ref_doi>
reference_set = <ForeignKeyField: DatasetVersion.reference_set>
reference_set_id = <ForeignKeyField: DatasetVersion.reference_set>
terms = <TextField: DatasetVersion.terms>
variants
version = <CharField: DatasetVersion.version>
class DatasetVersionCurrent(*args, **kwargs)[source]

Bases: backend.db.DatasetVersion

DoesNotExist

alias of DatasetVersionCurrentDoesNotExist

available_from = <DateTimeField: DatasetVersionCurrent.available_from>
beacon_access = <EnumField: DatasetVersionCurrent.beacon_access>
coverage_levels = <ArrayField: DatasetVersionCurrent.coverage_levels>
data_contact_name = <CharField: DatasetVersionCurrent.data_contact_name>
dataset = <ForeignKeyField: DatasetVersionCurrent.dataset>
dataset_id = <ForeignKeyField: DatasetVersionCurrent.dataset>
description = <TextField: DatasetVersionCurrent.description>
file_access = <EnumField: DatasetVersionCurrent.file_access>
id = <AutoField: DatasetVersionCurrent.id>
num_variants = <IntegerField: DatasetVersionCurrent.num_variants>
portal_avail = <BooleanField: DatasetVersionCurrent.portal_avail>
ref_doi = <CharField: DatasetVersionCurrent.ref_doi>
reference_set = <ForeignKeyField: DatasetVersionCurrent.reference_set>
reference_set_id = <ForeignKeyField: DatasetVersionCurrent.reference_set>
terms = <TextField: DatasetVersionCurrent.terms>
version = <CharField: DatasetVersionCurrent.version>
class EnumField(choices=None, *args, **kwargs)[source]

Bases: peewee.Field

db_field = 'string'
db_value(value)[source]
python_value(value)[source]
class Feature(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of FeatureDoesNotExist

chrom = <CharField: Feature.chrom>
feature_type = <CharField: Feature.feature_type>
gene = <ForeignKeyField: Feature.gene>
gene_id = <ForeignKeyField: Feature.gene>
id = <AutoField: Feature.id>
start = <IntegerField: Feature.start>
stop = <IntegerField: Feature.stop>
strand = <EnumField: Feature.strand>
transcript = <ForeignKeyField: Feature.transcript>
transcript_id = <ForeignKeyField: Feature.transcript>
class Gene(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of GeneDoesNotExist

canonical_transcript = <CharField: Gene.canonical_transcript>
chrom = <CharField: Gene.chrom>
exons
full_name = <CharField: Gene.full_name>
gene_id = <CharField: Gene.gene_id>
id = <AutoField: Gene.id>
name = <CharField: Gene.name>
other_names
reference_set = <ForeignKeyField: Gene.reference_set>
reference_set_id = <ForeignKeyField: Gene.reference_set>
start = <IntegerField: Gene.start>
stop = <IntegerField: Gene.stop>
strand = <EnumField: Gene.strand>
transcripts
variants
class GeneOtherNames(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of GeneOtherNamesDoesNotExist

gene = <ForeignKeyField: GeneOtherNames.gene>
gene_id = <ForeignKeyField: GeneOtherNames.gene>
id = <AutoField: GeneOtherNames.id>
name = <CharField: GeneOtherNames.name>
class Linkhash(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of LinkhashDoesNotExist

dataset_version = <ForeignKeyField: Linkhash.dataset_version>
dataset_version_id = <ForeignKeyField: Linkhash.dataset_version>
expires_on = <DateTimeField: Linkhash.expires_on>
hash = <CharField: Linkhash.hash>
id = <AutoField: Linkhash.id>
user = <ForeignKeyField: Linkhash.user>
user_id = <ForeignKeyField: Linkhash.user>
class Metrics(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of MetricsDoesNotExist

dataset_version = <ForeignKeyField: Metrics.dataset_version>
dataset_version_id = <ForeignKeyField: Metrics.dataset_version>
hist = <ArrayField: Metrics.hist>
id = <AutoField: Metrics.id>
metric = <CharField: Metrics.metric>
mids = <ArrayField: Metrics.mids>
class ReferenceSet(*args, **kwargs)[source]

Bases: backend.db.BaseModel

The gencode, ensembl, dbNSFP and omim data are combined to fill out the Gene, Transcript and Feature tables. DbSNP data is separate, and may be shared between reference sets, so it uses a foreign key instead.

DoesNotExist

alias of ReferenceSetDoesNotExist

current_version
dataset_versions
dbnsfp_version = <CharField: ReferenceSet.dbnsfp_version>
ensembl_version = <CharField: ReferenceSet.ensembl_version>
gencode_version = <CharField: ReferenceSet.gencode_version>
genes
id = <AutoField: ReferenceSet.id>
name = <CharField: ReferenceSet.name>
reference_build = <CharField: ReferenceSet.reference_build>
class SFTPUser(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of SFTPUserDoesNotExist

account_expires = <DateTimeField: SFTPUser.account_expires>
id = <AutoField: SFTPUser.id>
password_hash = <CharField: SFTPUser.password_hash>
user = <ForeignKeyField: SFTPUser.user>
user_id = <ForeignKeyField: SFTPUser.user>
user_name = <CharField: SFTPUser.user_name>
user_uid = <IntegerField: SFTPUser.user_uid>
class SampleSet(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of SampleSetDoesNotExist

collection = <ForeignKeyField: SampleSet.collection>
collection_id = <ForeignKeyField: SampleSet.collection>
dataset = <ForeignKeyField: SampleSet.dataset>
dataset_id = <ForeignKeyField: SampleSet.dataset>
id = <AutoField: SampleSet.id>
phenotype = <CharField: SampleSet.phenotype>
sample_size = <IntegerField: SampleSet.sample_size>
class Study(*args, **kwargs)[source]

Bases: backend.db.BaseModel

A study is a scientific study with a PI and a description, and may include one or more datasets.

DoesNotExist

alias of StudyDoesNotExist

contact_email = <CharField: Study.contact_email>
contact_name = <CharField: Study.contact_name>
datasets
description = <TextField: Study.description>
id = <AutoField: Study.id>
pi_email = <CharField: Study.pi_email>
pi_name = <CharField: Study.pi_name>
publication_date = <DateTimeField: Study.publication_date>
ref_doi = <CharField: Study.ref_doi>
title = <CharField: Study.title>
class Transcript(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of TranscriptDoesNotExist

chrom = <CharField: Transcript.chrom>
gene = <ForeignKeyField: Transcript.gene>
gene_id = <ForeignKeyField: Transcript.gene>
id = <AutoField: Transcript.id>
mim_annotation = <CharField: Transcript.mim_annotation>
mim_gene_accession = <IntegerField: Transcript.mim_gene_accession>
start = <IntegerField: Transcript.start>
stop = <IntegerField: Transcript.stop>
strand = <EnumField: Transcript.strand>
transcript_id = <CharField: Transcript.transcript_id>
transcripts
variants
class User(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of UserDoesNotExist

access_current
access_logs
access_pending
affiliation = <CharField: User.affiliation>
consent_logs
country = <CharField: User.country>
dataset_access
download_logs
email = <CharField: User.email>
has_access(dataset, ds_version=None)[source]

Check whether user has permission to access a dataset

Parameters:
  • dataset (Database) – peewee Database object
  • ds_version (str) – the dataset version
Returns:

allowed to access

Return type:

bool

has_requested_access(dataset)[source]
id = <AutoField: User.id>
identity = <CharField: User.identity>
identity_type = <EnumField: User.identity_type>
is_admin(dataset)[source]
name = <CharField: User.name>
sftp_user
class UserAccessLog(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of UserAccessLogDoesNotExist

action = <EnumField: UserAccessLog.action>
dataset = <ForeignKeyField: UserAccessLog.dataset>
dataset_id = <ForeignKeyField: UserAccessLog.dataset>
id = <AutoField: UserAccessLog.id>
ts = <DateTimeField: UserAccessLog.ts>
user = <ForeignKeyField: UserAccessLog.user>
user_id = <ForeignKeyField: UserAccessLog.user>
class UserConsentLog(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of UserConsentLogDoesNotExist

dataset_version = <ForeignKeyField: UserConsentLog.dataset_version>
dataset_version_id = <ForeignKeyField: UserConsentLog.dataset_version>
id = <AutoField: UserConsentLog.id>
ts = <DateTimeField: UserConsentLog.ts>
user = <ForeignKeyField: UserConsentLog.user>
user_id = <ForeignKeyField: UserConsentLog.user>
class UserDownloadLog(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of UserDownloadLogDoesNotExist

dataset_file = <ForeignKeyField: UserDownloadLog.dataset_file>
dataset_file_id = <ForeignKeyField: UserDownloadLog.dataset_file>
id = <AutoField: UserDownloadLog.id>
ts = <DateTimeField: UserDownloadLog.ts>
user = <ForeignKeyField: UserDownloadLog.user>
user_id = <ForeignKeyField: UserDownloadLog.user>
class Variant(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of VariantDoesNotExist

allele_count = <IntegerField: Variant.allele_count>
allele_freq = <FloatField: Variant.allele_freq>
allele_num = <IntegerField: Variant.allele_num>
alt = <CharField: Variant.alt>
chrom = <CharField: Variant.chrom>
dataset_version = <ForeignKeyField: Variant.dataset_version>
dataset_version_id = <ForeignKeyField: Variant.dataset_version>
filter_string = <CharField: Variant.filter_string>
genes
hom_count = <IntegerField: Variant.hom_count>
id = <AutoField: Variant.id>
orig_alt_alleles = <ArrayField: Variant.orig_alt_alleles>
pos = <IntegerField: Variant.pos>
quality_metrics = <BinaryJSONField: Variant.quality_metrics>
ref = <CharField: Variant.ref>
rsid = <IntegerField: Variant.rsid>
site_quality = <FloatField: Variant.site_quality>
transcripts
variant_id = <CharField: Variant.variant_id>
vep_annotations = <BinaryJSONField: Variant.vep_annotations>
class VariantGenes(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of VariantGenesDoesNotExist

gene = <ForeignKeyField: VariantGenes.gene>
gene_id = <ForeignKeyField: VariantGenes.gene>
id = <AutoField: VariantGenes.id>
variant = <ForeignKeyField: VariantGenes.variant>
variant_id = <ForeignKeyField: VariantGenes.variant>
class VariantMate(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of VariantMateDoesNotExist

allele_count = <IntegerField: VariantMate.allele_count>
allele_freq = <FloatField: VariantMate.allele_freq>
allele_num = <IntegerField: VariantMate.allele_num>
alt = <CharField: VariantMate.alt>
chrom = <CharField: VariantMate.chrom>
chrom_id = <CharField: VariantMate.chrom_id>
dataset_version = <ForeignKeyField: VariantMate.dataset_version>
dataset_version_id = <ForeignKeyField: VariantMate.dataset_version>
id = <AutoField: VariantMate.id>
mate_chrom = <CharField: VariantMate.mate_chrom>
mate_id = <CharField: VariantMate.mate_id>
mate_start = <IntegerField: VariantMate.mate_start>
pos = <IntegerField: VariantMate.pos>
ref = <CharField: VariantMate.ref>
variant_id = <CharField: VariantMate.variant_id>
class VariantTranscripts(*args, **kwargs)[source]

Bases: backend.db.BaseModel

DoesNotExist

alias of VariantTranscriptsDoesNotExist

id = <AutoField: VariantTranscripts.id>
transcript = <ForeignKeyField: VariantTranscripts.transcript>
transcript_id = <ForeignKeyField: VariantTranscripts.transcript>
variant = <ForeignKeyField: VariantTranscripts.variant>
variant_id = <ForeignKeyField: VariantTranscripts.variant>
build_dict_from_row(row)[source]
get_admin_datasets(user)[source]

Get a list of datasets where user is admin

Parameters:user (User) – Peewee User object for the user of interest
Returns:
Return type:DataSetAccess
get_dataset(dataset: str)[source]

Given dataset name get Dataset

Parameters:dataset (str) – short name of the dataset
Returns:the corresponding DatasetVersion entry
Return type:Dataset
get_dataset_version(dataset: str, version: str = None)[source]

Given dataset get DatasetVersion

Parameters:dataset (str) – short name of the dataset
Returns:the corresponding DatasetVersion entry
Return type:DatasetVersion
get_next_free_uid()[source]

Get the next free uid >= 10000 and > than the current uids from the sftp_user table in the db.

Returns:the next free uid
Return type:int