void EDTAFile::store(const String& filename, const ConsensusMap& map) const { TextFile tf; // search for maximum number of sub-features (since this determines the number of columns) Size max_sub(0); for (Size i = 0; i < map.size(); ++i) { max_sub = std::max(max_sub, map[i].getFeatures().size()); } // write header String header("RT\tm/z\tintensity\tcharge"); for (Size i = 1; i <= max_sub; ++i) { header += "\tRT" + String(i) + "\tm/z" + String(i) + "\tintensity" + String(i) + "\tcharge" + String(i); } tf.addLine(header); for (Size i = 0; i < map.size(); ++i) { ConsensusFeature f = map[i]; // consensus String entry = String(f.getRT()) + "\t" + f.getMZ() + "\t" + f.getIntensity() + "\t" + f.getCharge(); // sub-features ConsensusFeature::HandleSetType handle = f.getFeatures(); for (ConsensusFeature::HandleSetType::const_iterator it = handle.begin(); it != handle.end(); ++it) { entry += String("\t") + it->getRT() + "\t" + it->getMZ() + "\t" + it->getIntensity() + "\t" + it->getCharge(); } // missing sub-features for (Size j = handle.size(); j < max_sub; ++j) { entry += "\tNA\tNA\tNA\tNA"; } tf.addLine(entry); } tf.store(filename); }
TEST_EQUAL(ml(c1,c1), 0); TEST_EQUAL(ml(c1,c2), 1); TEST_EQUAL(ml(c2,c1), 0); TEST_EQUAL(ml(c2,c2), 0); END_SECTION START_SECTION((ConsensusFeature& operator=(const ConsensusFeature &rhs))) ConsensusFeature cons(tmp_feature); cons.insert(1,tmp_feature); ConsensusFeature cons_copy; cons_copy = cons; TEST_REAL_SIMILAR(cons_copy.getRT(),1.0) TEST_REAL_SIMILAR(cons_copy.getMZ(),2.0) TEST_REAL_SIMILAR(cons_copy.getIntensity(),200.0) TEST_EQUAL((cons_copy.begin())->getMapIndex(),1) TEST_EQUAL((cons_copy.begin())->getUniqueId(),3) TEST_EQUAL((cons_copy.begin())->getIntensity(),200) END_SECTION START_SECTION((ConsensusFeature(const ConsensusFeature &rhs))) ConsensusFeature cons(tmp_feature); cons.insert(1,tmp_feature); ConsensusFeature cons_copy(cons); TEST_REAL_SIMILAR(cons_copy.getRT(),1.0) TEST_REAL_SIMILAR(cons_copy.getMZ(),2.0) TEST_REAL_SIMILAR(cons_copy.getIntensity(),200.0)
TEST_EQUAL(map[1].getPeptideIdentifications().size(), 1) TEST_EQUAL(map[1].getPeptideIdentifications()[0].getHits().size(), 1) TEST_EQUAL(map[1].getPeptideIdentifications()[0].getHits()[0].getSequence(), "E") //unassigned peptide identifications TEST_EQUAL(map.getUnassignedPeptideIdentifications().size(), 2) TEST_EQUAL(map.getUnassignedPeptideIdentifications()[0].getHits().size(), 1) TEST_EQUAL(map.getUnassignedPeptideIdentifications()[0].getHits()[0].getSequence(), "F") TEST_EQUAL(map.getUnassignedPeptideIdentifications()[1].getHits().size(), 2) TEST_EQUAL(map.getUnassignedPeptideIdentifications()[1].getHits()[0].getSequence(), "G") TEST_EQUAL(map.getUnassignedPeptideIdentifications()[1].getHits()[1].getSequence(), "H") //features TEST_EQUAL(map.size(), 6) ConsensusFeature cons_feature = map[0]; TEST_REAL_SIMILAR(cons_feature.getRT(), 1273.27) TEST_REAL_SIMILAR(cons_feature.getMZ(), 904.47) TEST_REAL_SIMILAR(cons_feature.getIntensity(), 3.12539e+07) TEST_REAL_SIMILAR(cons_feature.getPositionRange().minPosition()[0], 1273.27) TEST_REAL_SIMILAR(cons_feature.getPositionRange().maxPosition()[0], 1273.27) TEST_REAL_SIMILAR(cons_feature.getPositionRange().minPosition()[1], 904.47) TEST_REAL_SIMILAR(cons_feature.getPositionRange().maxPosition()[1], 904.47) TEST_REAL_SIMILAR(cons_feature.getIntensityRange().minPosition()[0], 3.12539e+07) TEST_REAL_SIMILAR(cons_feature.getIntensityRange().maxPosition()[0], 3.12539e+07) TEST_REAL_SIMILAR(cons_feature.getQuality(), 1.1) TEST_EQUAL(cons_feature.getMetaValue("peptide_id") == DataValue("RefSeq:NC_1234"), true) ConsensusFeature::HandleSetType::const_iterator it = cons_feature.begin(); TEST_REAL_SIMILAR(it->getIntensity(), 3.12539e+07) cons_feature = map[5]; TEST_REAL_SIMILAR(cons_feature.getRT(), 1194.82) TEST_REAL_SIMILAR(cons_feature.getMZ(), 777.101)