def main(): # Create up the database session dbi = DatabaseInterface(can_email = True) tsession = dbi.get_session() # Create a map from usernames to the database IDs (typically initials) user_map = {} for u in tsession.query(Users): user_map[u.lab_username] = u.ID # Read the import path from the database colortext.message('\nPrimers import script') colortext.pcyan('Database admin contacts: {0}'.format(', '.join(dbi.get_admin_contacts()))) colortext.warning('Registered users: {0}\n'.format(', '.join( ['{0} ({1})'.format(v, k) for k, v in sorted(user_map.iteritems(), key = lambda x: x[1])]))) errors = [] import_path = tsession.query(DBConstants).filter(DBConstants.Parameter == u'import_path').one().Value import_path_folders = sorted([d for d in os.listdir(import_path) if os.path.isdir(os.path.join(import_path,d))]) for ipf in import_path_folders: if ipf in user_map: user_folder = os.path.join(import_path, ipf) user_id = user_map[ipf] primers_file = os.path.join(user_folder, 'primers.tsv') if os.path.exists(primers_file): case_errors = [] try: parse(dbi, primers_file, user_id, case_errors) if case_errors: errors.append("Errors occurred processing '{0}':\n\t{1}".format(primers_file, '\n\t'.join(case_errors))) colortext.warning(errors[-1]) except Exception, e: errors.append("Errors occurred processing '{0}': {1}\n\t{2}\n{3}".format(primers_file, str(e), '\n\t'.join(case_errors), traceback.format_exc())) colortext.warning('Error: {0}\n{1}'.format(str(e), traceback.format_exc()))
#!/usr/bin/python # encoding: utf-8 """ ligand.py test code. Created by Shane O'Connor 2016 """ import sys import os sys.path.insert(0, os.path.join('..', '..')) from klab.bio.ligand import Ligand, PDBLigand from klab import colortext l = Ligand.retrieve_data_from_rcsb('NAG', pdb_id = '1WCO', silent = True, cached_dir = '/tmp') colortext.warning(l) l = Ligand.retrieve_data_from_rcsb('GDP', silent = True, cached_dir = '/tmp') colortext.pcyan(l) l = PDBLigand.instantiate_from_ligand(l, 'A', ' 124B') colortext.porange(l) l = PDBLigand.retrieve_data_from_rcsb('GOL', '1BXO', 'A', ' 12B', pdb_ligand_code='TST', silent = True, cached_dir = '/tmp') colortext.ppurple(l)
c += 1 colortext.message('\n{0}/{1}: {2}'.format(c, len(pdb_ids), pdb_id)) hits = b.by_pdb(pdb_id) if hits: colortext.warning('{0} hits: {1}'.format(len(hits), ','.join(hits))) else: colortext.warning('No hits') except Exception, e: colortext.error('FAILED') failed_cases.append((pdb_id, str(e), traceback.format_exc())) if failed_cases: colortext.warning('*** These cases failed ***') for p in failed_cases: print('') colortext.pcyan(p[0]) colortext.error(p[1]) print(p[2]) print('') def test_sequences(b, sequences): failed_cases = [] c = 0 for sequence in sequences: try: c += 1 colortext.message('\n{0}/{1}: {2}'.format(c, len(sequences), sequence)) hits = b.by_sequence(sequence) if hits: colortext.warning('{0} hits: {1}'.format(len(hits), ','.join(hits)))