void IDFilter::filterIdentificationsByProteins(const ProteinIdentification& identification, const vector<FASTAFile::FASTAEntry>& proteins, ProteinIdentification& filtered_identification) { String protein_sequences; String accession_sequences; vector<ProteinHit> filtered_protein_hits; ProteinHit temp_protein_hit; filtered_identification = identification; filtered_identification.setHits(vector<ProteinHit>()); for (Size i = 0; i < proteins.size(); i++) { accession_sequences.append("*" + proteins[i].identifier); } accession_sequences.append("*"); for (Size i = 0; i < identification.getHits().size(); i++) { if (accession_sequences.find("*" + identification.getHits()[i].getAccession()) != String::npos) { filtered_protein_hits.push_back(identification.getHits()[i]); } } filtered_identification.setHits(filtered_protein_hits); filtered_identification.assignRanks(); }
//Visualizing ProteinIdentification object void MetaDataBrowser::visualize_(ProteinIdentification & meta, QTreeWidgetItem * parent) { ProteinIdentificationVisualizer * visualizer = new ProteinIdentificationVisualizer(isEditable(), this, this); QStringList labels; int id = ws_->addWidget(visualizer); labels << QString("ProteinIdentification %1").arg(meta.getSearchEngine().c_str()) << QString::number(id); visualizer->load(meta, id); QTreeWidgetItem * item; if (parent == nullptr) { item = new QTreeWidgetItem(treeview_, labels); } else { item = new QTreeWidgetItem(parent, labels); } //check for proteinhits objects meta.assignRanks(); for (Size i = 0; i < meta.getHits().size(); ++i) { visualize_(const_cast<ProteinHit &>(meta.getHits()[i]), item); } visualize_(dynamic_cast<MetaInfoInterface &>(meta), item); connectVisualizer_(visualizer); }