Class: BioInterchange::Phylogenetics::TreeSet

Inherits:
Model
  • Object
show all
Defined in:
lib/biointerchange/phylogenetics/tree_set.rb

Overview

A phylogenetic tree set that can contain multiple phylogenetic trees.

Instance Method Summary collapse

Constructor Details

#initializeTreeSet

Create a new instance of a tree set. A tree set can contain multiple phylogenetic trees.



9
10
11
12
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 9

def initialize
  # Trees are stored as the keys of a hash map to increase performance:
  @set = {}
end

Instance Method Details

#add(tree) ⇒ Object

Add a tree to the tree set.

tree

BioRuby tree instance that is added to the contents of this tree set



39
40
41
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 39

def add(tree)
  @set[tree] = true
end

#contentsObject

Returns the contents of the tree set.



15
16
17
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 15

def contents
  @set.keys
end

#dateObject

If a date was provided, then this method returns its value.



20
21
22
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 20

def date
  @date
end

#pruneObject

Removes all features from the set, but keeps additional data (e.g., the date).



44
45
46
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 44

def prune
  @set.clear
end

#set_date(date) ⇒ Object

Sets a date that is associated with the trees in this model (e.g., annotation date, creation date, etc.).

date

an instance of Date that is associated with all trees in the model



27
28
29
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 27

def set_date(date)
  @date = date
end

#uriObject

Returns an URI for this particular tree set, which is a not necessarily globally unique SHA1 hash.



32
33
34
# File 'lib/biointerchange/phylogenetics/tree_set.rb', line 32

def uri
  "biointerchange://phylogenetics/treeset/self/#{Digest::SHA1.hexdigest(Time.now.to_s)}"
end