예제 #1
0
파일: testRanker.py 프로젝트: abradle/rdkit
 def test2ranker(self):
   nbits = 100
   ninst = 100
   dm = 50
   nact = 10
   nc = 2
   RDRandom.seed(23)
   rn = rdit.InfoBitRanker(nbits, nc, rdit.InfoType.ENTROPY)
   rn.SetMaskBits([63, 70, 15, 25, 10])
   fps = []
   na = 0
   ni = 0
   for i in range(ninst):
     v = DataStructs.SparseBitVect(nbits)
     for j in range(dm):
       v.SetBit(RDRandom.randrange(0, nbits))
     if (RDRandom.randrange(0, ninst) < nact):
       na += 1
       rn.AccumulateVotes(v, 1)
       fps.append((v, 1))
     else:
       ni += 1
       rn.AccumulateVotes(v, 0)
       fps.append((v, 0))
   res = rn.GetTopN(5)
   ids = [int(x[0]) for x in res]
   ids.sort()
   self.assertTrue(ids == [10, 15, 25, 63, 70])
   with self.assertRaisesRegexp(Exception, ""):
     res = rn.GetTopN(10)
예제 #2
0
 def test2ranker(self):
     nbits = 100
     ninst = 100
     dm = 50
     nact = 10
     nc = 2
     RDRandom.seed(23)
     rn = rdit.InfoBitRanker(nbits, nc, rdit.InfoType.ENTROPY)
     rn.SetMaskBits([63, 70, 15, 25, 10])
     fps = []
     na = 0
     ni = 0
     for i in range(ninst):
         v = DataStructs.SparseBitVect(nbits)
         for j in range(dm):
             v.SetBit(RDRandom.randrange(0, nbits))
         if (RDRandom.randrange(0, ninst) < nact):
             na += 1
             rn.AccumulateVotes(v, 1)
             fps.append((v, 1))
         else:
             ni += 1
             rn.AccumulateVotes(v, 0)
             fps.append((v, 0))
     res = rn.GetTopN(5)
     ids = [int(x[0]) for x in res]
     ids.sort()
     self.assertTrue(ids == [10, 15, 25, 63, 70])
     with self.assertRaisesRegexp(Exception, ""):
         res = rn.GetTopN(10)
예제 #3
0
 def testReplacementSelection(self):
     # " use selection with replacement "
     RDRandom.seed(self.randomSeed)
     examples, attrs, nPossibleVals = randomtest.GenRandomExamples(
         nExamples=200, seed=self.randomArraySeed)
     tree, frac = CrossValidate.CrossValidationDriver(
         examples, attrs, nPossibleVals, silent=1, replacementSelection=1)
     self.assertTrue(tree)
     self.assertAlmostEqual(frac, 0.01666, 4)
예제 #4
0
 def testReplacementSelection(self):
   # " use selection with replacement "
   RDRandom.seed(self.randomSeed)
   examples, attrs, nPossibleVals = randomtest.GenRandomExamples(nExamples=200,
                                                                 seed=self.randomArraySeed)
   tree, frac = CrossValidate.CrossValidationDriver(examples, attrs, nPossibleVals, silent=1,
                                                    replacementSelection=1)
   self.assertTrue(tree)
   self.assertAlmostEqual(frac, 0.01666, 4)
예제 #5
0
 def testReplacementSelection(self):
     " use selection with replacement "
     from rdkit.ML.DecTree import randomtest
     from rdkit import RDRandom
     RDRandom.seed(self.randomSeed)
     examples, attrs, nPossibleVals = randomtest.GenRandomExamples(
         nExamples=200, seed=self.randomArraySeed)
     tree, frac = CrossValidate.CrossValidationDriver(
         examples, attrs, nPossibleVals, silent=1, replacementSelection=1)
     assert tree
     assert feq(frac, 0.0833)
예제 #6
0
 def testReplacementSelection(self):
   " use selection with replacement "
   from rdkit.ML.DecTree import randomtest
   from rdkit import RDRandom
   RDRandom.seed(self.randomSeed)
   examples,attrs,nPossibleVals = randomtest.GenRandomExamples(nExamples = 200,
                                                               seed=self.randomArraySeed)
   tree,frac = CrossValidate.CrossValidationDriver(examples,attrs,
                                                   nPossibleVals,silent=1,
                                                   replacementSelection=1)
   assert tree
   assert feq(frac,0.0833)
예제 #7
0
  def testResults(self):
    # " test the results of CrossValidation "
    RDRandom.seed(self.randomSeed)
    examples, attrs, nPossibleVals = randomtest.GenRandomExamples(nExamples=200,
                                                                  seed=self.randomArraySeed)
    tree, frac = CrossValidate.CrossValidationDriver(examples, attrs, nPossibleVals, silent=1)
    self.assertGreater(frac, 0)

    with open(self.origTreeName, 'r') as inTFile:
      buf = inTFile.read().replace('\r\n', '\n').encode('utf-8')
      inTFile.close()
    inFile = BytesIO(buf)
    oTree = cPickle.load(inFile)

    assert oTree == tree, 'Random CrossValidation test failed'
예제 #8
0
def InitRandomNumbers(seed):
  """ Seeds the random number generators

    **Arguments**

      - seed: a 2-tuple containing integers to be used as the random number seeds

    **Notes**

      this seeds both the RDRandom generator and the one in the standard
      Python _random_ module

  """
  from rdkit import RDRandom
  RDRandom.seed(seed[0])
  random.seed(seed[0])
예제 #9
0
def InitRandomNumbers(seed):
    """ Seeds the random number generators

    **Arguments**

      - seed: a 2-tuple containing integers to be used as the random number seeds

    **Notes**

      this seeds both the RDRandom generator and the one in the standard
      Python _random_ module

  """
    from rdkit import RDRandom
    RDRandom.seed(seed[0])
    random.seed(seed[0])
예제 #10
0
  def testResults(self):
    " test the results of CrossValidation "
    from rdkit.ML.DecTree import randomtest
    from rdkit import RDRandom
    RDRandom.seed(self.randomSeed)
    examples,attrs,nPossibleVals = randomtest.GenRandomExamples(nExamples = 200,
                                                                seed=self.randomArraySeed)
    tree,frac = CrossValidate.CrossValidationDriver(examples,attrs,
                                                    nPossibleVals,silent=1)

    from rdkit.six.moves import cPickle
    #cPickle.dump(tree,open(self.origTreeName,'w+'))
    with open(self.origTreeName,'rb') as inFile:
      oTree = cPickle.load(inFile)

    assert oTree==tree,'Random CrossValidation test failed'
예제 #11
0
    def testResults(self):
        " test the results of CrossValidation "
        from rdkit.ML.DecTree import randomtest
        from rdkit import RDRandom
        RDRandom.seed(self.randomSeed)
        examples, attrs, nPossibleVals = randomtest.GenRandomExamples(
            nExamples=200, seed=self.randomArraySeed)
        tree, frac = CrossValidate.CrossValidationDriver(examples,
                                                         attrs,
                                                         nPossibleVals,
                                                         silent=1)

        import cPickle
        #cPickle.dump(tree,file(self.origTreeName,'w+'))
        inFile = open(self.origTreeName, 'r')
        oTree = cPickle.load(inFile)

        assert oTree == tree, 'Random CrossValidation test failed'
예제 #12
0
    def testResults(self):
        # " test the results of CrossValidation "
        RDRandom.seed(self.randomSeed)
        examples, attrs, nPossibleVals = randomtest.GenRandomExamples(
            nExamples=200, seed=self.randomArraySeed)
        tree, frac = CrossValidate.CrossValidationDriver(examples,
                                                         attrs,
                                                         nPossibleVals,
                                                         silent=1)
        self.assertGreater(frac, 0)

        with open(self.origTreeName, 'r') as inTFile:
            buf = inTFile.read().replace('\r\n', '\n').encode('utf-8')
            inTFile.close()
        inFile = BytesIO(buf)
        oTree = pickle.load(inFile)

        assert oTree == tree, 'Random CrossValidation test failed'
예제 #13
0
    def testResults(self):
        " test the results of CrossValidation "
        from rdkit.ML.DecTree import randomtest
        from rdkit import RDRandom

        RDRandom.seed(self.randomSeed)
        examples, attrs, nPossibleVals = randomtest.GenRandomExamples(nExamples=200, seed=self.randomArraySeed)
        tree, frac = CrossValidate.CrossValidationDriver(examples, attrs, nPossibleVals, silent=1)

        from rdkit.six.moves import cPickle

        # cPickle.dump(tree,open(self.origTreeName,'w+'))
        with open(self.origTreeName, "r") as inTFile:
            buf = inTFile.read().replace("\r\n", "\n").encode("utf-8")
            inTFile.close()
        with io.BytesIO(buf) as inFile:
            oTree = cPickle.load(inFile)

        assert oTree == tree, "Random CrossValidation test failed"
예제 #14
0
  def testResults(self):
    " test the results of CrossValidation "
    from rdkit.ML.DecTree import randomtest
    from rdkit import RDRandom
    RDRandom.seed(self.randomSeed)
    examples,attrs,nPossibleVals = randomtest.GenRandomExamples(nExamples = 200,
                                                                seed=self.randomArraySeed)
    tree,frac = CrossValidate.CrossValidationDriver(examples,attrs,
                                                    nPossibleVals,silent=1)

    from rdkit.six.moves import cPickle
    #cPickle.dump(tree,open(self.origTreeName,'w+'))
    with open(self.origTreeName,'r') as inTFile:
      buf = inTFile.read().replace('\r\n', '\n').encode('utf-8')
      inTFile.close()
    with io.BytesIO(buf) as inFile:
      oTree = cPickle.load(inFile)

    assert oTree==tree,'Random CrossValidation test failed'
예제 #15
0
 def setUp(self):
     RDRandom.seed(25)
예제 #16
0
from rdkit.SimDivFilters import rdSimDivPickers as rdsimdiv
import numpy
from rdkit import RDRandom
RDRandom.seed(23)

pkr = rdsimdiv.MaxMinPicker()

n = 1000
m = 80
dataPts = []
for i in range(n):
    pt = numpy.zeros(2, 'd')
    pt[0] = 10. * RDRandom.random()
    pt[1] = 10. * RDRandom.random()
    dataPts.append(pt)

# compute the distance matrix
distMat = numpy.zeros(n * (n - 1) / 2, 'd')
for i in range(n - 1):
    itab = n * i - ((i + 1) * (i + 2)) / 2
    pt1 = dataPts[i]
    for j in range(i + 1, n):
        id = itab + j
        pt2 = dataPts[j]
        diff = pt2 - pt1

        dist = numpy.sqrt(numpy.dot(diff, diff))
        distMat[id] = dist

    # now do the picking
res = pkr.Pick(distMat, n, m)
예제 #17
0
 def setUp(self):
   RDRandom.seed(25)
예제 #18
0
파일: testMaxMin.py 프로젝트: CKannas/rdkit
from rdkit.SimDivFilters import rdSimDivPickers as rdsimdiv
import numpy
from rdkit import RDRandom
RDRandom.seed(23)


pkr = rdsimdiv.MaxMinPicker()

n = 1000
m = 80
dataPts = []
for i in range(n) :
    pt = numpy.zeros(2, 'd')
    pt[0] = 10.*RDRandom.random()
    pt[1] = 10.*RDRandom.random()
    dataPts.append(pt)

# compute the distance matrix
distMat = numpy.zeros(n*(n-1)/2, 'd')
for i in range(n-1) :
    itab = n*i - ((i+1)*(i+2))/2
    pt1 = dataPts[i]
    for j in range(i+1, n) :
        id = itab + j
        pt2 = dataPts[j]
        diff = pt2 - pt1
        
        dist = numpy.sqrt(numpy.dot(diff, diff))
        distMat[id] = dist