diff options
author | xiangzhou | 2014-09-22 11:06:02 -0400 |
---|---|---|
committer | xiangzhou | 2014-09-22 11:06:02 -0400 |
commit | 7762722f264adc402ea3b0f21923b18f072253ba (patch) | |
tree | 879ed22943d424b52bd04b4ee6fbdf51616dc9a9 /src/main.cpp | |
parent | 44faf98d2c6fe56c916cace02fe498fc1271bd9d (diff) | |
download | pangemma-7762722f264adc402ea3b0f21923b18f072253ba.tar.gz |
version 0.95alpha
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..e1fb336 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,86 @@ +/* + Genome-wide Efficient Mixed Model Association (GEMMA) + Copyright (C) 2011 Xiang Zhou + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <iostream> +#include <fstream> +#include <sstream> +#include <sys/stat.h> +#include <sys/types.h> + +#include "param.h" + +#ifdef FORCE_FLOAT +#include "gemma_float.h" +#else +#include "gemma.h" +#endif + +using namespace std; + + + +int main(int argc, char * argv[]) +{ + GEMMA cGemma; + PARAM cPar; + + if (argc <= 1) { + cGemma.PrintHeader(); + return EXIT_SUCCESS; + } + if (argc==2 && argv[1][0] == '-' && argv[1][1] == 'h') { + cGemma.PrintHelp(0); + return EXIT_SUCCESS; + } + if (argc==3 && argv[1][0] == '-' && argv[1][1] == 'h') { + string str; + str.assign(argv[2]); + cGemma.PrintHelp(atoi(str.c_str())); + return EXIT_SUCCESS; + } + if (argc==2 && argv[1][0] == '-' && argv[1][1] == 'l') { + cGemma.PrintLicense(); + return EXIT_SUCCESS; + } + + cGemma.Assign(argc, argv, cPar); + + ifstream check_dir((cPar.path_out).c_str()); + if (!check_dir) { + mkdir((cPar.path_out).c_str(), S_IRWXU|S_IRGRP|S_IROTH); + } + + if (cPar.error==true) {return EXIT_FAILURE;} + + if (cPar.mode_silence) {stringstream ss; cout.rdbuf (ss.rdbuf());} + + cPar.CheckParam(); + + if (cPar.error==true) {return EXIT_FAILURE;} + + cGemma.BatchRun(cPar); + + if (cPar.error==true) {return EXIT_FAILURE;} + + cGemma.WriteLog(argc, argv, cPar); + + return EXIT_SUCCESS; +} + + + |