]> git.donarmstrong.com Git - mothur.git/blob - heatmapcommand.cpp
changed all shared commands so that they read the shared file generated by the read...
[mothur.git] / heatmapcommand.cpp
1 /*
2  *  heatmapcommand.cpp
3  *  Mothur
4  *
5  *  Created by Sarah Westcott on 3/25/09.
6  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
7  *
8  */
9
10 #include "heatmapcommand.h"
11
12
13 //**********************************************************************************************************************
14
15 HeatMapCommand::HeatMapCommand(){
16         try {
17                 globaldata = GlobalData::getInstance();
18                 heatmap = new HeatMap();
19                 format = globaldata->getFormat();
20         }
21         catch(exception& e) {
22                 cout << "Standard Error: " << e.what() << " has occurred in the HeatMapCommand class Function HeatMapCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
23                 exit(1);
24         }
25         catch(...) {
26                 cout << "An unknown error has occurred in the HeatMapCommand class function HeatMapCommand. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
27                 exit(1);
28         }       
29 }
30 //**********************************************************************************************************************
31
32 HeatMapCommand::~HeatMapCommand(){
33         delete input;
34         delete read;
35         delete heatmap;
36 }
37
38 //**********************************************************************************************************************
39
40 int HeatMapCommand::execute(){
41         try {
42                 int count = 1;  
43         
44                 if (format == "sharedfile") {
45                         //you have groups
46                         read = new ReadOTUFile(globaldata->inputFileName);      
47                         read->read(&*globaldata); 
48                         
49                         input = globaldata->ginput;
50                         lookup = input->getSharedRAbundVectors();
51                 }else if (format == "list") {
52                         //you are using just a list file and have only one group
53                         read = new ReadOTUFile(globaldata->inputFileName);      
54                         read->read(&*globaldata); 
55                         
56                         rabund = globaldata->rabund;
57                         input = globaldata->ginput;             
58                 }
59                 
60                 if (format != "list") { 
61                 
62                         while(lookup[0] != NULL){
63                 
64                                 if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(lookup[0]->getLabel()) == 1){                   
65         
66                                         cout << lookup[0]->getLabel() << '\t' << count << endl;
67                                         heatmap->getPic(lookup);
68                                 }
69                                                 
70                                 //get next line to process
71                                 lookup = input->getSharedRAbundVectors();                               
72                                 count++;
73                         }
74                         
75                         //reset groups parameter
76                         globaldata->Groups.clear();  
77                         
78                 }else{
79                 
80                         while(rabund != NULL){
81                 
82                                 if(globaldata->allLines == 1 || globaldata->lines.count(count) == 1 || globaldata->labels.count(rabund->getLabel()) == 1){                      
83         
84                                         cout << rabund->getLabel() << '\t' << count << endl;
85                                         heatmap->getPic(rabund);
86                                 }
87                                 
88                                 rabund = input->getRAbundVector();
89                                 count++;
90                         }
91                 }
92                 
93                 globaldata->setGroups("");
94                 return 0;
95         }
96         catch(exception& e) {
97                 cout << "Standard Error: " << e.what() << " has occurred in the HeatMapCommand class Function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
98                 exit(1);
99         }
100         catch(...) {
101                 cout << "An unknown error has occurred in the HeatMapCommand class function execute. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
102                 exit(1);
103         }               
104 }
105
106 //**********************************************************************************************************************
107
108