mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-04 21:54:27 +08:00
45 lines
857 B
Python
Executable File
45 lines
857 B
Python
Executable File
import cPickle,time
|
|
from Numeric import *
|
|
import RandomArray
|
|
from DataStructs import BitRank
|
|
nBits = 100
|
|
weights = RandomArray.random(nBits)
|
|
wSum = sum(weights)
|
|
weights /= wSum
|
|
#print 'weights:',weights
|
|
nData = 100
|
|
thresh = .50
|
|
#thresh = .2
|
|
|
|
dataFile = open('screen.pkl','wb+')
|
|
|
|
print 'generating data'
|
|
d = [None]*nData
|
|
acts = zeros(nData,Int)
|
|
|
|
for i in xrange(nData):
|
|
tmp = RandomArray.randint(0,2,nBits)
|
|
d[i] = tmp
|
|
bitSum = sum(weights*tmp)
|
|
if bitSum > thresh:
|
|
acts[i] = 1
|
|
|
|
#d = array(d)
|
|
#print 'd:'
|
|
#print d
|
|
#print 'acts:'
|
|
#print acts
|
|
print 'numActives: %d/%d'%(sum(acts),len(acts))
|
|
print 'dumping'
|
|
cPickle.dump(d,dataFile)
|
|
cPickle.dump(acts,dataFile)
|
|
|
|
print 'ranking'
|
|
t1 = time.time()
|
|
bitOrder,infoGains = BitRank.RankBits(d,acts)
|
|
t2 = time.time()
|
|
print '\t that took %f seconds'%(t2-t1)
|
|
#print 'order:',bitOrder
|
|
#print 'gains:',infoGains
|
|
|