def get_or_create_dna_sequence(rec, cur, genome_id):
'''Fetch existing dna_sequence entry or create a new one'''
params = {}
params['seq'] = str(rec.seq)
params['md5sum'] = hashlib.md5(params['seq']).hexdigest()
params['accession'] = rec.annotations['accessions'][0]
params['version'] = rec.annotations['sequence_version']
cur.execute("SELECT sequence_id FROM antismash.dna_sequences WHERE md5 = %s", (params['md5sum'],))
ret = cur.fetchone()
if ret is None:
params['genome_id'] = genome_id
cur.execute("INSERT INTO antismash.dna_sequences (dna, md5, acc, version, genome_id)"
"VALUES (%(seq)s, %(md5sum)s, %(accession)s, %(version)s, %(genome_id)s) RETURNING sequence_id;", params)
ret = cur.fetchone()
return ret[0]
评论列表
文章目录