Esempio n. 1
0
def db_add(
    domain_id,
    astral_id,
    astral_sid,
    domain_start,
    domain_stop,
    astral_start,
    astral_stop,
    pdb_id,
    chain,
    overlap,
    session=None,
):
    # Create a domain_to_astral ORM object and push it to the DB. Create a scoped session for push.
    # Raise exception if push fails
    # If session not given, create scoped session for the DB push
    if not session:
        print "db_add:: No session provided. Creating scoped session"
        session = ScopedSession()

    if astral_start == None or astral_stop == None:
        dtoa_obj = DomainAstralOverlap(
            domain_id=domain_id,
            astral_id=astral_id,
            astral_sid=astral_sid,
            domain_start=domain_start,
            domain_stop=domain_stop,
            pdb_id=pdb_id,
            chain=chain,
            overlap=overlap,
        )
    else:
        dtoa_obj = DomainAstralOverlap(
            domain_id=domain_id,
            astral_id=astral_id,
            astral_sid=astral_sid,
            domain_start=domain_start,
            domain_stop=domain_stop,
            astral_start=int(astral_start),
            astral_stop=int(astral_stop),
            pdb_id=pdb_id,
            chain=chain,
            overlap=overlap,
        )
    session.add(dtoa_obj)
    try:
        session.flush()
    except IntegrityError:
        print "DomainToAstral {0} object already in database. Skipping".format(dtoa_obj)
        session.rollback()
    except Exception as e:
        print "Error in pushing DomainToAstral object {0} to database".format(dtoa_obj)
        raise
    return dtoa_obj
Esempio n. 2
0
def output_db(list):
# Takes a list of HomologComparisonProteinPair objects to store in the DB,
# table hpf.homolog_structure_allvall[...] 
    session = ScopedSession()
    for pair in list:
        hsa_obj = HomologStructAllVAll(source_id=pair.source.query_id, target_id=pair.target.query_id, score=pair.similarity)
        session.add(hsa_obj)
        try:
            session.flush()
        except IntegrityError:
            print "Object {0} already in database. Rolling back and skipping..".format(hsa_obj)
            session.rollback()
            continue
        except:
            print "Could not add protein comparison object {0} to DB".format(hsa_obj)
            raise