SiteContainer* SiteContainerTools::getSelectedSites( const SiteContainer& sequences, const SiteSelection& selection) { vector<string> seqNames = sequences.getSequencesNames(); VectorSiteContainer* sc = new VectorSiteContainer(seqNames.size(), sequences.getAlphabet()); sc->setSequencesNames(seqNames, false); for (unsigned int i = 0; i < selection.size(); i++) { sc->addSite(sequences.getSite(selection[i]), false); // We do not check names, we suppose that the container passed as an argument is correct. // WARNING: what if selection contains many times the same indice? ... } sc->setGeneralComments(sequences.getGeneralComments()); return sc; }
VectorSiteContainer* VectorSiteContainer::createEmptyContainer() const { VectorSiteContainer* vsc = new VectorSiteContainer(getAlphabet()); vsc->setGeneralComments(getGeneralComments()); return vsc; }