/* 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 . */ #ifndef __IO_H__ #define __IO_H__ #include #include #include #include "gsl/gsl_vector.h" #include "gsl/gsl_matrix.h" #ifdef FORCE_FLOAT #include "param_float.h" #else #include "param.h" #endif using namespace std; void ProgressBar (string str, double p, double total); void ProgressBar (string str, double p, double total, double ratio); std::istream& safeGetline(std::istream& is, std::string& t); bool ReadFile_snps (const string &file_snps, set &setSnps); bool ReadFile_log (const string &file_log, double &pheno_mean); bool ReadFile_bim (const string &file_bim, vector &snpInfo); bool ReadFile_fam (const string &file_fam, vector > &indicator_pheno, vector > &pheno, map &mapID2num, const vector &p_column); bool ReadFile_cvt (const string &file_cvt, vector &indicator_cvt, vector > &cvt, size_t &n_cvt); bool ReadFile_anno (const string &file_bim, map &mapRS2chr, map &mapRS2bp, map &mapRS2cM); bool ReadFile_pheno (const string &file_pheno, vector > &indicator_pheno, vector > &pheno, const vector &p_column); bool ReadFile_column (const string &file_pheno, vector &indicator_idv, vector &pheno, const int &p_column); bool ReadFile_geno (const string &file_geno, const set &setSnps, const gsl_matrix *W, vector &indicator_idv, vector &indicator_snp, const double &maf_level, const double &miss_level, const double &hwe_level, const double &r2_level, map &mapRS2chr, map &mapRS2bp, map &mapRS2cM, vector &snpInfo, size_t &ns_test); bool ReadFile_bed (const string &file_bed, const set &setSnps, const gsl_matrix *W, vector &indicator_idv, vector &indicator_snp, vector &snpInfo, const double &maf_level, const double &miss_level, const double &hwe_level, const double &r2_level, size_t &ns_test); void ReadFile_kin (const string &file_kin, vector &indicator_idv, map &mapID2num, const size_t k_mode, bool &error, gsl_matrix *G); void ReadFile_mk (const string &file_mk, vector &indicator_idv, map &mapID2num, const size_t k_mode, bool &error, gsl_matrix *G); void ReadFile_eigenU (const string &file_u, bool &error, gsl_matrix *U); void ReadFile_eigenD (const string &file_d, bool &error, gsl_vector *eval); bool BimbamKin (const string &file_geno, vector &indicator_snp, const int k_mode, const int display_pace, gsl_matrix *matrix_kin); bool PlinkKin (const string &file_bed, vector &indicator_snp, const int k_mode, const int display_pace, gsl_matrix *matrix_kin); bool ReadFile_geno (const string &file_geno, vector &indicator_idv, vector &indicator_snp, gsl_matrix *UtX, gsl_matrix *K, const bool calc_K); bool ReadFile_bed (const string &file_bed, vector &indicator_idv, vector &indicator_snp, gsl_matrix *UtX, gsl_matrix *K, const bool calc_K); bool ReadFile_est (const string &file_est, const vector &est_column, map &mapRS2est); bool CountFileLines (const string &file_input, size_t &n_lines); bool ReadFile_gene (const string &file_gene, vector &vec_read, vector &snpInfo, size_t &ng_total); #endif