#include #include #include #include #include #include #include #include #include "peddata.h" using namespace std; void kill_ATRIUM() { fprintf(stderr, "\nExiting ATRIUM due to error(s) listed above.\n\n"); exit(1); } int check_paramset(ParamSet &ps) { int status = 1; if(strlen(ps.phenofile)>0) { if(!fopen(ps.phenofile, "r")) { fprintf(stderr, "Error: cannot open phenotype data file \"%s\".\n", ps.phenofile); status = -1; } } if(strlen(ps.genofile)>0) { if(!fopen(ps.genofile, "r")) { fprintf(stderr, "Error: cannot open genotype data file \"%s\".\n", ps.genofile); status = -1; } } if(strlen(ps.dbfile)>0) { if(!fopen(ps.dbfile,"r")) { fprintf(stderr, "Error: cannot open LD database file \"%s\".\n", ps.dbfile); status = -1; } } if(strlen(ps.ibdfile)>0) { if(!fopen(ps.ibdfile, "r")) { fprintf(stderr, "Error: cannot open IBD coefficients file \"%s\".\n", ps.ibdfile); status = -1; } } if(strlen(ps.parameterfile)>0) { if(!fopen(ps.parameterfile, "r")) { fprintf(stderr, "Error: cannot open parameter file \"%s\".\n", ps.parameterfile); status = -1; } } return status; } void invoke_ATRIUM(ParamSet &ps) { PedData ped; FILE *fp = fopen("ATRIUMtest.out", "w"); if(!fp) { fprintf(stderr, "Error: cannot open output file \"ATRIUMtest.out\" for writing.\n"); kill_ATRIUM(); } FILE *fpp = fopen("ATRIUMtest.top", "w"); if(!fpp) { fprintf(stderr, "Error: cannot open significance file \"ATRIUMtest.top\" for writing.\n"); kill_ATRIUM(); } ped.set_output(fp,fpp); if(ped.run(ps)<0) kill_ATRIUM(); fprintf(stderr, "\nATRIUM is completed\n\n"); } int main(int argc, char **argv) { ParamSet ps; // input files for(int i=1;i