本文整理汇总了Python中app.model.DBSession.chirality方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.chirality方法的具体用法?Python DBSession.chirality怎么用?Python DBSession.chirality使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app.model.DBSession
的用法示例。
在下文中一共展示了DBSession.chirality方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DBSession
# 需要导入模块: from app.model import DBSession [as 别名]
# 或者: from app.model.DBSession import chirality [as 别名]
mol = DBSession().query(ReagentMol).options(eagerload('lots')).get(mol_id)
if mol is None:
continue
obmol=OBMol()
conv.ReadString(obmol, mol_struct)
chirality = 'R' # Default to relative if there is stereochemistry
if not obmol.IsChiral():
chirality = 'A'
if getChiralFlag(mol_struct):
chirality = 'A'
# before assigning structure to this mol, check if we'll violate
# unique constraint on inchi...
mol_inchi = toInchi(mol_struct)
DBSession().flush()
mi = DBSession().query(ReagentMol).options(eagerload('lots')).filter(ReagentMol.mol_inchi == mol_inchi).first()
mol.chirality = chirality
if mi:
# Corner case: If a chemical (say mol_id 123) was in our sd
# file, and there is another molecule (say 456) with a different
# name for that structure, and 456 has a CAS but didn't get a
# struct, then 123's lots will get moved over to 456. Later on
# when we hit 456 in the sd file we should just skip over it--it'll
# get retrieved by the DBSession().get(..) query as well as the
# InCHI query. We can tell this happened since
# mi.mol_id == mol.mol_id
if mi.mol_id == mol.mol_id:
continue
if mi.mol_cas_no != mol.mol_cas_no and mi.mol_cas_no and mol.mol_cas_no:
print "Collision--CAS disagrees, existing struct %d : %d, new %d : %d" % (mi.mol_id, len(mi.lots), int(mol_id), len(mol.lots))
if mi not in merge: