def registerReference(self, guid, reference_set_id, name, length):
"""
Registers a Reference. Most often called by registerReferenceSet.
Requires a Reference name be unique for all references in a reference set
"""
# contig MT is same as contig M, in meta db we will always use M to be
# consistent
if name == 'MT':
name = 'M'
reference = self.session.query(Reference).filter(
and_(Reference.reference_set_id == reference_set_id,Reference.name == name))\
.first()
if reference is None:
try:
reference = Reference(
name=name,
reference_set_id=reference_set_id,
length=length,
guid=guid
)
self.session.add(reference)
self.session.commit()
except exc.DataError as e:
self.session.rollback()
raise ValueError("{0} : {1} ".format(str(e), guid))
return reference
评论列表
文章目录