Skip to content
Snippets Groups Projects
Commit 312290b0 authored by Rafal Gumienny's avatar Rafal Gumienny
Browse files

Merge branch 'develop' into dockerize

parents 9c0f7a4b 3ab0c16a
Branches
Tags
No related merge requests found
:mod:`conop.cleanup <ost.conop.cleanup>` -- Sanitize structures
================================================================================
.. module:: ost.conop.ceanup
.. module:: ost.conop.cleanup
:synopsis: Contains functions to sanitize (cleanup) structures by using
information from the compound library.
......
......@@ -195,17 +195,18 @@ void ChemdictParser::InitTypeMap()
tm_["DNA LINKING"]=mol::ChemClass(mol::ChemClass::DNA_LINKING);
tm_["RNA LINKING"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["L-DNA LINKING"]=mol::ChemClass(mol::ChemClass::DNA_LINKING);
tm_["L-RNA LINKING"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["L-RNA LINKING"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["R-DNA LINKING"]=mol::ChemClass(mol::ChemClass::DNA_LINKING);
tm_["R-RNA LINKING"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["R-RNA LINKING"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["DNA OH 3 PRIME TERMINUS"]=mol::ChemClass(mol::ChemClass::DNA_LINKING);
tm_["DNA OH 5 PRIME TERMINUS"]=mol::ChemClass(mol::ChemClass::DNA_LINKING);
tm_["PEPTIDE-LIKE"]=mol::ChemClass(mol::ChemClass::PEPTIDE_LINKING);
tm_["PEPTIDE LINKING"]=mol::ChemClass(mol::ChemClass::PEPTIDE_LINKING);
tm_["PEPTIDE-LINKING"]=mol::ChemClass(mol::ChemClass::PEPTIDE_LINKING);
tm_["PEPTIDE-LINKING"]=mol::ChemClass(mol::ChemClass::PEPTIDE_LINKING);
tm_["NON-POLYMER"]=mol::ChemClass(mol::ChemClass::NON_POLYMER);
tm_["RNA OH 3 PRIME TERMINUS"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["RNA OH 5 PRIME TERMINUS"]=mol::ChemClass(mol::ChemClass::RNA_LINKING);
tm_["?"]=mol::ChemClass(mol::ChemClass::UNKNOWN);
tm_["?"]=mol::ChemClass(mol::ChemClass::UNKNOWN);
tm_["WATER"]=mol::ChemClass(mol::ChemClass::WATER);
}
......
......@@ -56,6 +56,8 @@ class QSscorer:
qs_scorer = qsscoring.QSscorer(ent_1, ent_2)
ost.LogScript('QSscore:', str(qs_scorer.global_score))
ost.LogScript('Chain mapping used:', str(qs_scorer.chain_mapping))
# commonly you want the QS global score as output
qs_score = qs_scorer.global_score
except qsscoring.QSscoreError as ex:
# default handling: report failure and set score to 0
ost.LogError('QSscore failed:', str(ex))
......
......@@ -17,7 +17,7 @@ set(OST_MOL_BASE_UNIT_TESTS
)
if (USE_NUMPY)
set(OST_MOST_BASE_UNIT_TESTS "${OST_MOST_BASE_UNIT_TESTS}" test_numpy.py)
list(APPEND OST_MOL_BASE_UNIT_TESTS test_numpy.py)
endif (USE_NUMPY)
ost_unittest(MODULE mol SOURCES "${OST_MOL_BASE_UNIT_TESTS}")
......
......@@ -5,6 +5,7 @@ if __name__== '__main__':
sys.path.insert(0,"../../../../stage/lib/openstructure/")
import ost
from ost import geom, mol
if ost.WITH_NUMPY:
has_numpy=True
......@@ -16,10 +17,10 @@ else:
has_numpy=False
def v2v(v):
return ost.geom.Vec3(float(v[0]),float(v[1]),float(v[2]))
return geom.Vec3(float(v[0]),float(v[1]),float(v[2]))
def dd(v1,v2):
return ost.geom.Distance(v1,v2)<1e-8
return geom.Distance(v1,v2)<1e-8
class TestNumpy(unittest.TestCase):
def setUp(self):
......@@ -28,46 +29,46 @@ class TestNumpy(unittest.TestCase):
def test_(self):
if not has_numpy:
return
entity=ost.mol.CreateEntity()
entity=mol.CreateEntity()
ed=entity.EditXCS()
ch=ed.InsertChain("X")
re=ed.AppendResidue(ch,"ALA")
a0=ed.InsertAtom(re,"A",ost.geom.Vec3(0,0,0))
a0=ed.InsertAtom(re,"A",geom.Vec3(0,0,0))
self.assertEqual(a0.GetIndex(),0)
a1=ed.InsertAtom(re,"B",ost.geom.Vec3(1,0,0))
a1=ed.InsertAtom(re,"B",geom.Vec3(1,0,0))
self.assertEqual(a1.GetIndex(),1)
a2=ed.InsertAtom(re,"C",ost.geom.Vec3(2,0,0))
a2=ed.InsertAtom(re,"C",geom.Vec3(2,0,0))
self.assertEqual(a2.GetIndex(),2)
a3=ed.InsertAtom(re,"D",ost.geom.Vec3(3,0,0))
a3=ed.InsertAtom(re,"D",geom.Vec3(3,0,0))
self.assertEqual(a3.GetIndex(),3)
self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,0,0)))
self.assertTrue(dd(a1.pos,ost.geom.Vec3(1,0,0)))
self.assertTrue(dd(a2.pos,ost.geom.Vec3(2,0,0)))
self.assertTrue(dd(a3.pos,ost.geom.Vec3(3,0,0)))
self.assertTrue(dd(a0.pos,geom.Vec3(0,0,0)))
self.assertTrue(dd(a1.pos,geom.Vec3(1,0,0)))
self.assertTrue(dd(a2.pos,geom.Vec3(2,0,0)))
self.assertTrue(dd(a3.pos,geom.Vec3(3,0,0)))
ed.SetAtomTransformedPos(entity.GetAtomList(),
numpy.array([[0,1,0],[0,2,0],[0,3,0],[0,4,0]], dtype=numpy.float32))
self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,1,0)))
self.assertTrue(dd(a1.pos,ost.geom.Vec3(0,2,0)))
self.assertTrue(dd(a2.pos,ost.geom.Vec3(0,3,0)))
self.assertTrue(dd(a3.pos,ost.geom.Vec3(0,4,0)))
self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0)))
self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0)))
self.assertTrue(dd(a2.pos,geom.Vec3(0,3,0)))
self.assertTrue(dd(a3.pos,geom.Vec3(0,4,0)))
na=entity.positions
self.assertTrue(dd(v2v(na[0]),ost.geom.Vec3(0,1,0)))
self.assertTrue(dd(v2v(na[1]),ost.geom.Vec3(0,2,0)))
self.assertTrue(dd(v2v(na[2]),ost.geom.Vec3(0,3,0)))
self.assertTrue(dd(v2v(na[3]),ost.geom.Vec3(0,4,0)))
self.assertTrue(dd(v2v(na[0]),geom.Vec3(0,1,0)))
self.assertTrue(dd(v2v(na[1]),geom.Vec3(0,2,0)))
self.assertTrue(dd(v2v(na[2]),geom.Vec3(0,3,0)))
self.assertTrue(dd(v2v(na[3]),geom.Vec3(0,4,0)))
ed.SetAtomTransformedPos([3,99,2],
numpy.array([[0,0,-3],[-1,-1,-1],[0,0,-2]], dtype=numpy.float32))
self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,1,0)))
self.assertTrue(dd(a1.pos,ost.geom.Vec3(0,2,0)))
self.assertTrue(dd(a2.pos,ost.geom.Vec3(0,0,-2)))
self.assertTrue(dd(a3.pos,ost.geom.Vec3(0,0,-3)))
self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0)))
self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0)))
self.assertTrue(dd(a2.pos,geom.Vec3(0,0,-2)))
self.assertTrue(dd(a3.pos,geom.Vec3(0,0,-3)))
if __name__== '__main__':
unittest.main()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment