53 throw IOException(
"Genetix::read: fail to open stream.");
55 string temp = FileTools::getNextLine(is);
57 stringstream(temp) >> loc_nbr;
58 data_set.initAnalyzedLoci(loc_nbr);
61 temp = FileTools::getNextLine(is);
63 stringstream(temp) >> grp_nbr;
66 for (
unsigned int i = 0; i < loc_nbr; i++)
69 string name = FileTools::getNextLine(is);
70 name = TextTools::removeSurroundingWhiteSpaces(name);
73 stringstream values(FileTools::getNextLine(is));
76 for (
unsigned int j = 0; j < nbr_al; j++)
83 data_set.setLocusInfo(i, tmp_loc);
87 for (
unsigned int i = 0; i < grp_nbr; i++)
89 data_set.addEmptyGroup(i);
91 temp = FileTools::getNextLine(is);
92 data_set.setGroupName(i, temp);
96 temp = FileTools::getNextLine(is);
97 stringstream tmp(temp);
99 for (
unsigned int j = 0; j < ind_nbr; j++)
101 temp = FileTools::getNextLine(is);
102 string ind_name(temp.begin(), temp.begin() + 11);
103 temp = string(temp.begin() + 11, temp.end());
104 data_set.addEmptyIndividualToGroup(i, TextTools::removeSurroundingWhiteSpaces(ind_name) +
string(
"_") + TextTools::toString(i + 1) +
string(
"_") + TextTools::toString(j + 1));
105 data_set.initIndividualGenotypeInGroup(i, j);
106 StringTokenizer alleles(temp,
string(
" "));
108 for (
unsigned int k = 0; k < loc_nbr; k++)
110 string tmp_string = alleles.nextToken();
111 vector<string> tmp_alleles;
112 tmp_alleles.push_back(
string(tmp_string.begin(), tmp_string.begin() + 3));
113 tmp_alleles.push_back(
string(tmp_string.begin() + 3, tmp_string.begin() + 6));
114 if (tmp_alleles[0] !=
string(
"000") && tmp_alleles[1] != string(
"000"))
115 data_set.setIndividualMonolocusGenotypeByAlleleIdInGroup(i, j, k, tmp_alleles);
virtual void read(std::istream &is, DataSet &data_set)=0
Read a DataSet on istream.
The BasicAlleleInfo class.
void read(std::istream &is, DataSet &data_set)
Read a DataSet on istream.
void addAlleleInfo(const AlleleInfo &allele)
Add an AlleleInfo to the LocusInfo.