RegMaxS.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import sys
  2. from regmaxsn.core.iterativeRegistration import IterativeRegistration
  3. from regmaxsn.core.misc import parFileCheck
  4. import os
  5. import pathlib as pl
  6. def runRegMaxS(parFile, parNames):
  7. parsList = parFileCheck(parFile, parNames)
  8. for pars in parsList:
  9. print('Current Parameters:')
  10. for parN, parV in pars.items():
  11. print(('{}: {}'.format(parN, parV)))
  12. resFile = pars['resFile']
  13. refSWC = pars['refSWC']
  14. testSWC = pars['testSWC']
  15. res_filepath = pl.Path(resFile)
  16. if res_filepath.is_file():
  17. ch = input('File exists: ' + resFile + '\nDelete(y/n)?')
  18. if ch == 'y':
  19. res_filepath.unlink()
  20. else:
  21. quit()
  22. res_filepath.parent.mkdir(exist_ok=True)
  23. assert pl.Path(refSWC).is_file(), 'Could not find {}'.format(refSWC)
  24. assert pl.Path(testSWC).is_file(), 'Could not find {}'.format(testSWC)
  25. iterReg = IterativeRegistration(refSWC=pars['refSWC'],
  26. gridSizes=pars['gridSizes'],
  27. rotBounds=pars['rotBounds'],
  28. transBounds=pars['transBounds'],
  29. transMinRes=pars['transMinRes'],
  30. scaleMinRes=pars['minScaleStepSize'],
  31. rotMinRes=pars['rotMinRes'],
  32. nCPU=pars['nCPU'])
  33. iterReg.performReg(SWC2Align=pars['testSWC'],
  34. resFile=pars['resFile'],
  35. scaleBounds=pars['scaleBounds'],
  36. inPartsDir=pars['inPartsDir'],
  37. outPartsDir=pars['outPartsDir'],
  38. retainTempFiles=pars['retainTempFiles'])
  39. if __name__ == '__main__':
  40. from regmaxsn.core.RegMaxSPars import RegMaxSParNames
  41. assert len(sys.argv) == 2, 'Improper usage! Please use as \'python RegMaxS.py parFile\''
  42. parFile = sys.argv[1]
  43. runRegMaxS(parFile, RegMaxSParNames)