def _run_project_all(self): """Runs project_all """ projectiondir = self._get_projection_dir() if not os.path.isdir(projectiondir): os.makedirs(projectiondir) cmd = ( os.path.join(self._etspecbin, "project_all") + " " + os.path.join(self._get_marker_dir(), self._markermrc) + " " + os.path.join(self._workdir, self._projectionmrc) + " " + str(self._begintilt) + " " + str(self._tiltshift) + " " + str(self._endtilt) + " " + str(self._shrinkage) + " " + str(self._projmaxangle) + " 0 0 0 0" ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, self._cores) if exitcode != 0: raise Exception("Unable to run project_all : " + err)
def _run_volume_marker_position_all(self): """Runs volume_marker_position_all """ trackingdir = self._get_tracking_dir() if not os.path.isdir(trackingdir): os.makedirs(trackingdir) cmd = ( os.path.join(self._etspecbin, "volume_marker_position_all") + " " + os.path.join(self._get_marker_dir(), self._markermrc) + " " + os.path.join(self._get_marker_dir(), TiltSeriesCreator.THREE_D_MARKERS_TXT) + " " + os.path.join(self._get_projection_dir(), TiltSeriesCreator.OFFSET_ALL_TXT) + " " + str(self._nummarkers) + " " + str(self._begintilt) + " " + str(self._tiltshift) + " " + str(self._endtilt) + " " + str(self._shrinkage) + " " + str(self._projmaxangle) + " 0 0 0 0" ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, 1) if exitcode != 0: raise Exception("Unable to run volume_marker_position_all : " + err)
def test_run_mpiexec_command_fail_with_cores_not_set(self): temp_dir = tempfile.mkdtemp() try: script = os.path.join(temp_dir, 'yo.py') # create a small python script that outputs args passed # in to standard out, writes error to standard error # and exits with 0 exit code f = open(script, 'w') f.write('#! /usr/bin/env python\n\n') f.write('import sys\n') f.write('sys.stdout.write(sys.argv[1])\n') f.write('sys.stdout.write(sys.argv[2])\n') f.write('sys.stdout.write(sys.argv[3])\n') f.write('sys.stderr.write("error")\n') f.write('sys.exit(1)\n') f.flush() f.close() os.chmod(script, stat.S_IRWXU) ecode, out, err = util.run_mpiexec_command('foo', script, None) self.assertEqual(err, 'error') self.assertEqual(out, '-np1foo') self.assertEqual(ecode, 1) finally: shutil.rmtree(temp_dir)
def _run_extend_mean(self): """Runs exteand_mean command """ cmd = ( os.path.join(self._etspecbin, "extend_mean") + " " + os.path.join(self._workdir, self._unimrc) + " " + os.path.join(self._workdir, self._extmeanmrc) ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, self._cores) if exitcode != 0: raise Exception("Unable to run extend_mean : " + err)
def _run_all_255(self): """Runs all_255 command """ cmd = ( os.path.join(self._etspecbin, "all_255") + " " + self._inputmrc + " " + os.path.join(self._workdir, self._unimrc) ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, self._cores) if exitcode != 0: raise Exception("Unable to run all_255 : " + err)
def _run_raw_tilt(self): """Runs exteand_mean command """ cmd = ( os.path.join(self._etspecbin, "rawtlt") + " " + str(self._begintilt) + " " + str(self._tiltshift) + " " + str(self._endtilt) + " " + os.path.join(self._workdir, self._rawtlt) ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, 1) if exitcode != 0: raise Exception("Unable to run rawtlt : " + err)
def _run_warpz(self): """Runs exteand_mean command """ warpzdir = self._get_warpz_dir() if not os.path.isdir(warpzdir): os.makedirs(warpzdir) cmd = ( os.path.join(self._etspecbin, "warpZ_inter_del") + " " + os.path.join(self._workdir, self._extmeanmrc) + " " + os.path.join(self._workdir, self._extmeanmrc) + " " + os.path.join(warpzdir, self._warpz) + " " + str(self._get_number_of_tilts()) + " 0 0 0 0" ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, self._cores) if exitcode != 0: raise Exception("Unable to run warpZ_inter_del : " + err)
def _run_volume_marker(self): """Runs exteand_mean command """ markerdir = self._get_marker_dir() if not os.path.isdir(markerdir): os.makedirs(markerdir) warpzdir = self._get_warpz_dir() cmd = ( os.path.join(self._etspecbin, "volume_marker") + " " + os.path.join(self._workdir, self._extmeanmrc) + " " + os.path.join(warpzdir, self._warpz) + " " + os.path.join(markerdir, self._markermrc) + " " + str(self._nummarkers) + " " + str(self._bottommarkersize) + " " + str(self._topmarkersize) + " " + str(self._markernoise) + " " + str(self._get_number_of_tilts()) + " 0 0 0 0 0 " + str(self._markera) + " " + str(self._aparam) ) exitcode, out, err = util.run_mpiexec_command(cmd, self._mpiexec, self._cores) if exitcode != 0: raise Exception("Unable to run rawtlt : " + err)
def test_run_mpiexec_command_with_mpiexec_not_set(self): ecode, out, err = util.run_mpiexec_command('foo', None, None) self.assertEqual(ecode, 255) self.assertEqual(out, '') self.assertEqual(err, 'mpiexec must be set')