import os
import sys

allSystems  = ['1m48', '1m49', '1pw6', '1py2', '1qvn']
allQuerySystems = ['1m48_withQuery', '1m49_withQuery', '1pw6_withQuery', '1py2_withQuery', '1qvn_withQuery']


deleteFileList = ['Ocker.out',\
                  'OckerConsensusMMFFDocked.oeb',\
                  'checkpoint',\
                  'ScoreData.log',\
                  'conformers.mol2',\
                  'OckerConsensus.out',\
                  'OckerMMFF.out',\
                  'dockedLigand.mol2',\
                  'OckerConsensusMMFF.out',\
                  'OckerOptDockedPoise.mol2',\
                  'dockedLigand_opt.mol2' ]


print ' STD DOCKING '
for x in allSystems:
    os.chdir(x)
    print 'Doing %s' % x
    for y in deleteFileList:
        try:
            os.unlink(y)
        except OSError:
            print " can't delete %s " % y
    #build command
    command = "python ~/Ocker/trunk/ocker.py"
    param = " --param ../../docking_setup/freeEnergy/flexible.param" 
    proteinpdbFilename = " --proteinpdbFilename ../../docking_setup/freeEnergy/ockerReceptor.pdb" 
    ligandMol2Filename = " --ligandmol2Filename  ../../ligands/%s/%s_ligand_h_am1bcc.oeb" % (x,x)
    preBuiltConformers = " --preBuiltConformers "
    referenceFilename = " --referenceFilename  ../../ligands/%s/%s_ligand_h_am1bcc.mol2" % (x,x)
    waterFilename = " --waterFilename ../../docking_setup/freeEnergy/water.pdb" 
    sphereFilename =  " --sphereFilename  ../../docking_setup/freeEnergy/ocker.sph" 
    log = " > ocker.log "
    
    tmp = command + param + proteinpdbFilename + ligandMol2Filename + preBuiltConformers + referenceFilename + waterFilename + sphereFilename + log
    #print tmp
    os.system(tmp)
    os.chdir('../')
    
print ' QUERY DOCKING '  
for x in allQuerySystems:
    os.chdir(x)
    print "doing %s " % x
    x = x.split('_')
    x = x[0]
    for y in deleteFileList:
        try:
            os.unlink(y)
        except OSError:
            print " can't delete %s " % y
    #build command
    command = "python ~/Ocker/trunk/ocker.py"
    param = " --param ../../docking_setup/freeEnergy/flexible.param" 
    jobtype = " --jobtype shapeFlexibleDocking " 
    queryFilename = "  --queryFilename ../../docking_setup/freeEnergy/queryAtomsNoBackBone_h.mol2  "
    proteinpdbFilename = " --proteinpdbFilename ../../docking_setup/freeEnergy/ockerReceptor.pdb"
    ligandMol2Filename = " --ligandmol2Filename  ../../ligands/%s/%s_ligand_h_am1bcc.oeb" % (x,x)
    preBuiltConformers = " --preBuiltConformers "
    referenceFilename = " --referenceFilename  ../../ligands/%s/%s_ligand_h_am1bcc.mol2" % (x,x)
    waterFilename = " --waterFilename ../../docking_setup/freeEnergy/water.pdb" 
    sphereFilename =  " --sphereFilename  ../../docking_setup/freeEnergy/ocker.sph" 
    log = " > ocker.log "
    tmp = command + param + jobtype + queryFilename + proteinpdbFilename + ligandMol2Filename + preBuiltConformers + referenceFilename + waterFilename + sphereFilename + log
    #print tmp
    os.system(tmp)
    os.chdir('../')   

    
print " FLEXIBLE OVERLAY DOCKING "  
for x in allSystems:
    working = x + '_flexibleOverlay'
    print 'Doing %s ' % x
    os.chdir(working)
    #x = x.split('_')
    #x = x[0]
    for y in deleteFileList:
        try:
            os.unlink(y)
        except OSError:
            print " can't delete %s " % y
    #build command
    command = "python ~/Ocker/trunk/ocker.py"
    param = " --param ../../docking_setup/freeEnergy/flexible.param" 
    jobtype = " --jobtype  shapeFlexibleOverlayAndOptimize" 
    queryFilename = "  --queryFilename ../../docking_setup/freeEnergy/queryAtomsNoBackBone_h.mol2  "
    proteinpdbFilename = " --proteinpdbFilename ../../docking_setup/freeEnergy/ockerReceptor.pdb"
    ligandMol2Filename = " --ligandmol2Filename  ../../ligands/%s/%s_ligand_h_am1bcc.oeb" % (x,x)
    preBuiltConformers = " --preBuiltConformers "
    referenceFilename = " --referenceFilename  ../../ligands/%s/%s_ligand_h_am1bcc.mol2" % (x,x)
    waterFilename = " --waterFilename ../../docking_setup/freeEnergy/water.pdb" 
    sphereFilename =  " --sphereFilename  ../../docking_setup/freeEnergy/ocker.sph" 
    log = " > ocker.log "
    tmp = command + param + jobtype + queryFilename + proteinpdbFilename + ligandMol2Filename + preBuiltConformers + referenceFilename + waterFilename + sphereFilename + log
    #print tmp
    os.system(tmp)
    os.chdir('../')    
