Changeset 1045
- Timestamp:
- Apr 24, 2009, 10:52:57 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/base2/net.sf.basedb.normalizers/trunk/src/c++/bin/qQN.cc
r1044 r1045 43 43 using namespace theplu::yat::utility; 44 44 45 void create_target (std::vector<double>&, constMatrixWeighted&);46 void create_target (std::vector<double>&, constMatrixWeighted&,47 45 void create_target_and_fix_nans(std::vector<double>&, MatrixWeighted&); 46 void create_target_and_fix_nans(std::vector<double>&, MatrixWeighted&, 47 const std::string&); 48 48 /** 49 49 writes the data values in the matrix ignoring the weights, i.e., … … 100 100 101 101 std::vector<double> target(m.rows()); 102 ( assay.present() ? create_target (target,m,assay.value()) :103 create_target (target,m) );102 ( assay.present() ? create_target_and_fix_nans(target,m,assay.value()) : 103 create_target_and_fix_nans(target,m) ); 104 104 qQuantileNormalizer qqn(target.begin(), target.end(), 100); 105 105 ColumnNormalizer<qQuantileNormalizer> cn(qqn); … … 125 125 126 126 127 void create_target (std::vector<double>& t, constMatrixWeighted& m,128 127 void create_target_and_fix_nans(std::vector<double>& t, MatrixWeighted& m, 128 const std::string& assay) 129 129 { 130 130 std::ifstream is(assay.c_str()); … … 142 142 ++yes[row]; 143 143 } 144 else 145 m(row,column).data()=0; 144 146 } 145 147 ++column; … … 155 157 156 158 157 void create_target (std::vector<double>& t, constMatrixWeighted& m)159 void create_target_and_fix_nans(std::vector<double>& t, MatrixWeighted& m) 158 160 { 159 161 for (size_t row=0; row<m.rows(); ++row) { … … 165 167 ++column_contribs; 166 168 } 169 else 170 m(row,column).data()=0; 167 171 if (!column_contribs) 168 172 throw std::runtime_error("At least one row with no valid reference"); … … 178 182 for(size_t i=0, j=0; i<m.rows(); i++) 179 183 for (j=0; j<m.columns(); j++) { 180 s << m(i,j).data(); 184 if (m(i,j).weight()) 185 s << m(i,j).data(); 186 else 187 s << "nan"; 181 188 if (j<m.columns()-1) 182 189 s << s.fill();
Note: See TracChangeset
for help on using the changeset viewer.