import sys

versionString = '%s: version 1.1' % sys.argv[0]
print versionString

try:
    import psyco
    psyco.full()
except:
    print 'psyco not running'

from som import SOM

if len(sys.argv) < 4:
    print 'usage: python %s somfile datafile scorefile [-verbose] [-startField num] [-IDField num]' % sys.argv[0]
    sys.exit(0)

recField = 0
firstField = 1
doVerbose = False

somfile = sys.argv[1]
datafile = sys.argv[2]
scorefile = sys.argv[3]

if '-verbose' in sys.argv:
    doVerbose = True

if '-startField' in sys.argv:
    firstField = int(sys.argv[sys.argv.index('-startField') + 1])

if '-IDField' in sys.argv:
    recField = int(sys.argv[sys.argv.index('-IDField') + 1])

mysom = SOM(initialFile=somfile)
if doVerbose:
    mysom.describe()
dataDict = mysom.getDataset(datafile, startField=firstField, IDField=recField)
finalScore = mysom.scoreData(dataDict, outfilename=scorefile, printScores=doVerbose)
print 'finalScore = %.3f' % finalScore

