-void PCACommand::read_mega(istream& f, vector<string>& name_list, vector<vector<double> >& d){
- try {
- get_comment(f, '#', '\n');
-
- char test = f.peek();
-
- while(test == '!'){ //get header comments
- get_comment(f, '!', ';');
- while(isspace(test=f.get())) {;}
- f.putback(test);
- test = f.peek();
- }
- while(test != '\n'){ //get sequence names
- get_comment(f, '[', ']');
- char d = f.get();
- d = f.get();
- if(d == '#'){
- string name;
- f >> name;
- name_list.push_back(name);
- while(isspace(test=f.get())) {;}
- f.putback(test);
- }
- else{
- break;
- }
- }
- int rank = name_list.size();
- d.resize(rank);
- for(int i=0;i<rank;i++){ d[i].resize(rank); }
-
- d[0][0] = 0.0000;
- get_comment(f, '[', ']');
- for(int i=1;i<rank;i++){
- get_comment(f, '[', ']');
- d[i][i]=0.0000;
- for(int j=0;j<i;j++){
- f >> d[i][j];
- if (d[i][j] == -0.0000)
- d[i][j] = 0.0000;
- d[j][i]=d[i][j];
- }
- }
- }
- catch(exception& e) {
- errorOut(e, "PCACommand", "read_mega");
- exit(1);
- }
-}
-
-/*********************************************************************************************************************************/
-