import sys, os import gzip import re from django.conf import settings from lib.utils.io import cd from lib.utils import clogging log = clogging.getColorLogger(__name__) def get_records(pdb_id): pdb_id = pdb_id.lower() if not re.match('^[a-zA-Z0-9]{4}$', pdb_id): log.error('invalid PDB ID: %s' % pdb_id) return with cd(settings.PATH_TO_PDB): pdb_file = os.path.join(pdb_id[1:3], 'pdb' + pdb_id + '.ent.gz') if not os.path.exists(pdb_file): log.error('pdb file does not exist: %s' % pdb_id) return gzip.open(pdb_file, 'r')
import sys import os import csv import datetime from django.core.management.base import BaseCommand, CommandError from django.db import transaction from django.conf import settings from django.utils import timezone from apps.snp.models import Snp from lib.utils.io import get_url_content from lib.utils import clogging log = clogging.getColorLogger(__name__) class Command(BaseCommand): help = "Update SNPs" @transaction.atomic def handle(self, *args, **options): log.info('Fetching latest snps in gwascatalog...') if not os.path.exists(settings.GWASCATALOG_DIR): os.makedirs(settings.GWASCATALOG_DIR) today = timezone.now().strftime('%Y-%m-%d') af_path = os.path.join(settings.GWASCATALOG_DIR, 'gwascatalog_snps_allele_freq_{}.tsv'.format(today)) log.info('Importing snps in gwascatalog...')