main.cc 2.06 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Spell-QTL  Software suite for the QTL analysis of modern datasets.
 * Copyright (C) 2016,2017  Damien Leroux <damien.leroux@inra.fr>, Sylvain Jasson <sylvain.jasson@inra.fr>
 *
 * 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/>.
 */

18
19
#include "pedigree.h"
#include "pedigree_settings.h"
20
#include "output_impl.h"
21
22
23
24

void print_usage();


25
26
27
28
29
#ifndef SPELL_PEDIGREE_MAIN
#  define SPELL_PEDIGREE_MAIN main
#endif

int SPELL_PEDIGREE_MAIN(int argc, const char** argv)
30
31
32
33
34
35
36
37
{
    msg_handler_t::debug_enabled() = false;
    ped_settings_t* settings = ped_settings_t::from_args(argc, argv);
    if (!settings) {
        prg_name(basename(argv[0]));
        print_usage();
    } else {
        pedigree_type ped = read_pedigree(settings->pedigree_filename, settings->csv_sep, settings->max_states);
38
        if (msg_handler_t::check(false)) {
Damien Leroux's avatar
Damien Leroux committed
39
40
            return -1;
        }
41
        std::string ped_output;
42
43
        if (settings->work_directory == "") {
            settings->work_directory = ".";
44
        }
45
46
47
48
49
50
51
//            ped_output = settings->work_directory + "/" + basename(settings->pedigree_filename.c_str()) + ".ped-data";
        std::string dir = settings->work_directory + "/" + settings->pop_name + ".cache";
        if (!check_file(dir, true, true, false)) {
            ensure_directories_exist(dir);
            check_file(dir, true, true, true);
        }
        ped_output = dir + "/" + settings->pop_name + ".spell-pedigree.data";
52
53
54
55
56
57
        ped.save(ped_output);
        delete settings;
    }
    return 0;
}