#include #include #include #include "utils/options.h" #include "EddyHelperClasses.h" #ifndef EddyCommandLineOptions_h #define EddyCommandLineOptions_h namespace EDDY { class EddyCommandLineOptions { public: EddyCommandLineOptions(int argc, char *argv[]); std::string ImaFname() const { return(_imain.value()); } std::string MaskFname() const { return(_mask.value()); } std::string AcqpFname() const { return(_acqp.value()); } std::string IndexFname() const { return(_index.value()); } std::string SessionFname() const { return(_session.value()); } std::string TopupFname() const { return(_topup.value()); } std::string BVecsFname() const { return(_bvecs.value()); } std::string BValsFname() const { return(_bvals.value()); } std::string ParOutFname() const { return(_out.value()+std::string(".eddy_parameters")); } std::string IOutFname() const { return(_out.value()); } std::string ECFOutFname() const { return(_out.value()+std::string(".eddy_fields")); } std::string OLReportFname() const { return(_out.value()+std::string(".eddy_outlier_report")); } std::string DwiMssHistoryFname() const { return(_out.value()+std::string(".eddy_dwi_mss_history")); } std::string DwiParHistoryFname() const { return(_out.value()+std::string(".eddy_dwi_parameter_history")); } std::string B0MssHistoryFname() const { return(_out.value()+std::string(".eddy_b0_mss_history")); } std::string B0ParHistoryFname() const { return(_out.value()+std::string(".eddy_b0_parameter_history")); } std::vector Indicies() const { return(_indvec); } std::vector SessionIndicies() const { return(_sessvec); } unsigned int NoOfSessions() const { return(_nsess); } double FWHM() const { return(_fwhm.value()); } unsigned int NIter() const { return(static_cast(_niter.value())); } unsigned int Index(unsigned int i) const { return(_indvec[i]); } EDDY::ECModel FirstLevelModel() const; bool ReplaceOutliers() const { return(_rep_ol.value()); } double OLNStdev() const { return(_ol_nstd.value()); } unsigned int OLNVox() const { return(_ol_nvox.value()); } bool RegisterDWI() const { return(_rdwi); } bool Registerb0() const { return(_rb0); } bool WriteFields() const { return(_fields.value()); } bool History() const { return(_history.value()); } std::string InitFname() const { return(_init.value()); } bool Verbose() const { return(_verbose.value()); } bool VeryVerbose() const { return(_very_verbose.value()); } bool WriteSliceStats() const { return(_write_slice_stats.value()); } int DebugLevel() const { return(_debug.value()); } FinalResampling ResamplingMethod() const; private: std::string _title; std::string _examples; Utilities::Option _verbose; Utilities::Option _help; Utilities::Option _imain; Utilities::Option _mask; Utilities::Option _acqp; Utilities::Option _index; Utilities::Option _session; Utilities::Option _topup; Utilities::Option _bvecs; Utilities::Option _bvals; Utilities::Option _fwhm; Utilities::Option _niter; Utilities::Option _out; Utilities::Option _flm; Utilities::Option _rep_ol; Utilities::Option _resamp; Utilities::HiddenOption _ol_nstd; Utilities::HiddenOption _ol_nvox; Utilities::HiddenOption _very_verbose; Utilities::HiddenOption _dwi_only; Utilities::HiddenOption _b0_only; Utilities::HiddenOption _fields; Utilities::HiddenOption _history; Utilities::HiddenOption _write_slice_stats; Utilities::HiddenOption _init; Utilities::HiddenOption _debug; bool _rdwi; bool _rb0; std::vector _indvec; std::vector _sessvec; unsigned int _nsess; void do_initial_parsing(int argc, char *argv[]); bool session_indicies_kosher(const std::string& fname, unsigned int ns); bool indicies_kosher(NEWMAT::Matrix indx, NEWMAT::Matrix acqp); }; } // End namespace EDDY #endif // End #ifndef EddyCommandLineOptions_h