Newer
Older
from nedrex.static import get_metadata, get_license
LICENSE_FILE = "./data/license.txt"
def get_ppi_string():
dataset, _ = models.PPIDataset.objects.get_or_create(
name='STRING',
link='https://string-db.org/',
version='11.0',
licenced=False
def get_ppi_apid():
dataset, _ = models.PPIDataset.objects.get_or_create(
name='APID',
link='http://cicblade.dep.usal.es:8080/APID/',
version='January 2019',
licenced=False
def get_ppi_biogrid():
dataset, _ = models.PPIDataset.objects.get_or_create(
name='BioGRID',
link='https://thebiogrid.org/',
version='4.0',
licenced=False
)
return dataset
def get_nedrex_version():
real_version = get_metadata()['version']
if real_version != "0.0.0":
version = real_version
return version
def get_nedrex_source_version(source):
metadata = get_metadata()['source_databases']
# TODO remove once fixed in nedrex db
if 'drug_central' in metadata:
metadata['drugcentral'] = metadata['drug_central']
return metadata[source]['date']
def get_drug_target_nedrex(url, licenced):
dataset, _ = models.PDIDataset.objects.get_or_create(
name='NeDRex',
version=get_nedrex_version(),
licenced=licenced
)
return dataset
def get_ppi_nedrex(url, licenced):
dataset, _ = models.PPIDataset.objects.get_or_create(
name='NeDRex',
link=url,
version=get_nedrex_version(),
licenced=licenced
def get_protein_disorder_nedrex(url, licenced):
dataset, _ = models.PDisDataset.objects.get_or_create(
version=get_nedrex_version(),
licenced=licenced
def get_drug_disorder_nedrex(url, licenced):
dataset, _ = models.DrDiDataset.objects.get_or_create(
version=get_nedrex_version(),
licenced=licenced
with open(LICENSE_FILE, 'w') as fh:
fh.write(text)
def update_license():
try:
license = get_license()
write_license(license)
return license
except RetryError:
print(f'License could not be retreived.')
return ""
def import_license():
try:
license = ""
with open(LICENSE_FILE, 'r') as fh:
for line in fh:
license += line
return license
except FileNotFoundError:
print(f'No license doc there yet! Make sure to run an update first!')
def get_drug_target_chembl():
dataset, _ = models.PDIDataset.objects.get_or_create(
name='ChEMBL',
link='https://www.ebi.ac.uk/chembl/',
version='27',
licenced=False
def get_drug_target_dgidb():
dataset, _ = models.PDIDataset.objects.get_or_create(
name='DGIdb',
link='https://www.dgidb.org/',
version='4.2.0',
licenced=False
def get_drug_target_drugbank():
dataset, _ = models.PDIDataset.objects.get_or_create(
name='DrugBank',
link='https://go.drugbank.com/',
version='5.1.7',
licenced=True
def get_disorder_protein_disgenet():
dataset, _ = models.PDisDataset.objects.get_or_create(
name='DisGeNET',
link='https://www.disgenet.org/home/',
version='6.0',
licenced=False
)
return dataset
def get_drug_disorder_drugbank():
dataset, _ = models.DrDiDataset.objects.get_or_create(
name='DrugBank',
link='https://go.drugbank.com/',
version='5.1.8',
licenced=False
def get_today_version():
import datetime
now = datetime.date.today()
version = f'{now.year}-{now.month}-{now.day}_temp'
return version
def get_ppi_nedrex_dataset(url, licenced, source):
version = get_nedrex_source_version(source)
dataset, _ = models.PPIDataset.objects.get_or_create(
name=source,
version=version,
licenced=licenced
)
return dataset
def get_pdi_nedrex_dataset(url, licenced, source):
version = get_nedrex_source_version(source)
dataset, _ = models.PDIDataset.objects.get_or_create(
name=source,
version=version,
licenced=licenced
)
return dataset
def get_pdis_nedrex_dataset(url, licenced, source):
version = get_nedrex_source_version(source)
dataset, _ = models.PDisDataset.objects.get_or_create(
name=source,
version=version,
licenced=licenced
)
return dataset
def get_drdi_nedrex_dataset(url, licenced, source):
version = get_nedrex_source_version(source)
dataset, _ = models.DrDiDataset.objects.get_or_create(
name=source,
version=version,
licenced=licenced
)
return dataset
def is_licenced_ppi_source(source):
version = get_nedrex_source_version(source)
try:
models.PPIDataset.objects.get(name=source, version=version, licenced=False).link
except:
return True
return False
def is_licenced_pdi_source(source):
version = get_nedrex_source_version(source)
try:
models.PDIDataset.objects.get(name=source, version=version, licenced=False).link
except:
return True
return False
def is_licenced_pdis_source(source):
version = get_today_version()
try:
version = get_nedrex_source_version(source)
except RetryError:
pass
try:
models.PDisDataset.objects.get(name=source, version=version, licenced=False).link
except:
return True
return False
def is_licenced_drdi_source(source):
version = get_today_version()
try:
version = get_nedrex_source_version(source)
except RetryError:
pass
try:
models.DrDiDataset.objects.get(name=source, version=version, licenced=False).link
except:
return True
return False
def remove_old_pdi_data(new_datasets, licenced):
for dataset in new_datasets:
AndiMajore
committed
print("Deleting all except "+str(dataset))
try:
for d in models.PDIDataset.objects.filter(name=dataset.name, licenced=licenced):
AndiMajore
committed
print("Testing: "+str(d))
AndiMajore
committed
print("Deleting: "+str(d))
AndiMajore
committed
except Exception as e:
print("Error when trying to delete old datasets")
print(e)
continue
def remove_old_ppi_data(new_datasets, licenced):
for dataset in new_datasets:
AndiMajore
committed
print("Deleting all except " + str(dataset))
try:
for d in models.PPIDataset.objects.filter(name=dataset.name, licenced=licenced):
AndiMajore
committed
print("Testing: " + str(d))
AndiMajore
committed
print("Deleting: " + str(d))
AndiMajore
committed
except Exception as e:
print("Error when trying to delete old datasets")
print(e)
continue
def remove_old_pdis_data(new_datasets, licenced):
for dataset in new_datasets:
AndiMajore
committed
print("Deleting all except " + str(dataset))
try:
for d in models.PDisDataset.objects.filter(name=dataset.name, licenced=licenced):
AndiMajore
committed
print("Testing: " + str(d))
AndiMajore
committed
print("Deleting: " + str(d))
AndiMajore
committed
except Exception as e:
print("Error when trying to delete old datasets")
print(e)
continue
def remove_old_drdi_data(new_datasets, licenced):
for dataset in new_datasets:
AndiMajore
committed
print("Deleting all except " + str(dataset))
try:
for d in models.DrDiDataset.objects.filter(name=dataset.name, licenced=licenced):
AndiMajore
committed
print("Testing: " + str(d))
AndiMajore
committed
print("Deleting: " + str(d))
AndiMajore
committed
except Exception as e:
print("Error when trying to delete old datasets")
print(e)