Package HAL.Tools.PhylogenyTracker
Class Genome<T extends Genome>
- java.lang.Object
-
- HAL.Tools.PhylogenyTracker.Genome<T>
-
- All Implemented Interfaces:
java.lang.Iterable<T>
public class Genome<T extends Genome> extends java.lang.Object implements java.lang.Iterable<T>
the genome class is useful for keeping track of shared genetic information and phylogenies. extend this class to add any genetic/inherited information that needs to be tracked. an instance of the Genome class should be created once for every new mutation, and all agents with the same genome should share the same class instance as a member variable
-
-
Method Summary
Modifier and Type Method Description void
DecPop()
removes an individual from the genome population, should be called as part of the disposal of all agents that share this genome.void
GetChildren(java.util.ArrayList<T> childrenStorage)
adds all direct descendants of the genome to the arraylistint
GetId()
gets the ID of the genome, which indicates the order in which it arosevoid
GetLineage(java.util.ArrayList<T> lineageStorage)
adds all ancestors of the genome ot the arraylistint
GetNumGenomes()
returns the total number of genomes that have ever existed in the phylogenyint
GetNumLivingGenomes()
returns the number of currently active unique genomesint
GetNumTreeGenomes()
returns the number of genomes that exist in the phylogeny (not counting removed leaves)T
GetParent()
returns the parent genome that was mutated to give rise to this genomelong
GetPop()
returns the current active population that shares this genomeT
GetRoot()
gets the first genome that started the phylogenyvoid
IncPop()
adds an individual to the genome population, should be called as part of the initialization of all agents that share this genome.java.util.Iterator<T>
iterator()
void
OutputClonesToCSV(java.lang.String path, java.lang.String[] AttrHeaders, GetGenomeAttrs<T> GetAttrs, int excludePopCutoff)
long
PhylogenyPop()
returns the total population of all living members of the phylogenylong
Pop()
returns the current population size that shares this genomevoid
RecordClones(double timepoint)
void
RecordClones(java.lang.String timepointLabel)
void
ResetCloneRecord()
void
SetPop(long pop)
sets the active population size for this genome to a specific value.void
Traverse(GenomeFn GenomeFunction)
runs the GenomeFunction argument on every descendant of this genomevoid
TraverseWithLineage(java.util.ArrayList<T> lineageStorage, GenomeLineageFn GenomeFunction)
runs the GenomeFunction argument on every descendant of this genome, will pass as argument the lineage from this genome to the descendant
-
-
-
Constructor Detail
-
Genome
public Genome(T parent, boolean removeLeaves)
call this with the parent set to null to create a new phylogeny. the removeLeaves option specifies whether the phylogeny should continue to store dead leaves (lineages with no active individuals). should also be called whenever a new clone is created, along with IncPop to add one individual to the new clone.
-
Genome
public Genome(T parent)
-
-
Method Detail
-
GetId
public int GetId()
gets the ID of the genome, which indicates the order in which it arose
-
GetPop
public long GetPop()
returns the current active population that shares this genome
-
GetParent
public T GetParent()
returns the parent genome that was mutated to give rise to this genome
-
SetPop
public void SetPop(long pop)
sets the active population size for this genome to a specific value.
-
IncPop
public void IncPop()
adds an individual to the genome population, should be called as part of the initialization of all agents that share this genome.
-
DecPop
public void DecPop()
removes an individual from the genome population, should be called as part of the disposal of all agents that share this genome.
-
Traverse
public void Traverse(GenomeFn GenomeFunction)
runs the GenomeFunction argument on every descendant of this genome
-
TraverseWithLineage
public void TraverseWithLineage(java.util.ArrayList<T> lineageStorage, GenomeLineageFn GenomeFunction)
runs the GenomeFunction argument on every descendant of this genome, will pass as argument the lineage from this genome to the descendant
-
GetChildren
public void GetChildren(java.util.ArrayList<T> childrenStorage)
adds all direct descendants of the genome to the arraylist
-
GetLineage
public void GetLineage(java.util.ArrayList<T> lineageStorage)
adds all ancestors of the genome ot the arraylist
-
GetNumGenomes
public int GetNumGenomes()
returns the total number of genomes that have ever existed in the phylogeny
-
GetNumLivingGenomes
public int GetNumLivingGenomes()
returns the number of currently active unique genomes
-
GetNumTreeGenomes
public int GetNumTreeGenomes()
returns the number of genomes that exist in the phylogeny (not counting removed leaves)
-
Pop
public long Pop()
returns the current population size that shares this genome
-
PhylogenyPop
public long PhylogenyPop()
returns the total population of all living members of the phylogeny
-
GetRoot
public T GetRoot()
gets the first genome that started the phylogeny
-
ResetCloneRecord
public void ResetCloneRecord()
-
RecordClones
public void RecordClones(double timepoint)
-
RecordClones
public void RecordClones(java.lang.String timepointLabel)
-
OutputClonesToCSV
public void OutputClonesToCSV(java.lang.String path, java.lang.String[] AttrHeaders, GetGenomeAttrs<T> GetAttrs, int excludePopCutoff)
-
-