5 #ifndef BPP_PHYL_SIMULATION_SUBSTITUTIONPROCESSSEQUENCESIMULATOR_H
6 #define BPP_PHYL_SIMULATION_SUBSTITUTIONPROCESSSEQUENCESIMULATOR_H
28 std::map<size_t, std::shared_ptr<SiteSimulatorInterface>>
mProcess_;
35 mutable std::vector<size_t>
vMap_;
65 if (pos >
vMap_.size())
66 throw BadIntegerException(
"Out of range position for SubstitutionProcessSequenceSimulator", (
int)pos);
86 void setMap(std::vector<size_t> vMap);
96 std::unique_ptr<SiteContainerInterface>
simulate(
size_t numberOfSites)
const override;
98 std::unique_ptr<SiteContainerInterface>
simulate(
const std::vector<double>& rates)
const;
100 std::unique_ptr<SiteContainerInterface>
simulate(
const std::vector<size_t>& states)
const;
102 std::unique_ptr<SiteContainerInterface>
simulate(
const std::vector<double>& rates,
const std::vector<size_t>& states)
const;
104 std::shared_ptr<const Alphabet>
getAlphabet()
const override;
This interface describes the evolution process of a sequence.
The SequenceSimulator interface. SequenceSimulator classes can simulate whole datasets.
The SiteSimulator interface. SiteSimulator classes can simulate single sites.
Sequences simulation under position specific substitution process.
std::vector< std::string > seqNames_
all processes trees must have at least the same sequence names as the first process of the map.
void setMap(std::vector< size_t > vMap)
reset the set of processes.
std::shared_ptr< const Alphabet > getAlphabet() const override
SubstitutionProcessSequenceSimulator(const SequenceEvolution &evol)
virtual ~SubstitutionProcessSequenceSimulator()
const Alphabet & alphabet() const override
std::map< size_t, std::vector< size_t > > mvPosNames_
correspondence map of seqNames positions of the several trees. Reference is the tree of the first pro...
size_t getNumberOfSites() const
the number of mapped sites.
std::vector< size_t > vMap_
The vector of the site specific process in mProcess_; is mutable because can be changed for each simu...
SubstitutionProcessSequenceSimulator & operator=(const SubstitutionProcessSequenceSimulator &)
std::unique_ptr< SiteContainerInterface > simulate(size_t numberOfSites) const override
std::vector< std::string > getSequenceNames() const override
void outputInternalSequences(bool yn) override
Sets whether we will output the internal sequences or not.
SubstitutionProcessSequenceSimulator * clone() const override
std::map< size_t, std::shared_ptr< SiteSimulatorInterface > > mProcess_
the map of the process simulators.
const SiteSimulatorInterface & siteSimulator(size_t pos) const override
Defines the basic types of data flow nodes.