Class: Bio::Velvet::Graph::OrientedNodeTrail::OrientedNode

Inherits:
Object
  • Object
show all
Defined in:
lib/assembly/oriented_node_trail.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node = nil, first_side = nil) ⇒ OrientedNode

Returns a new instance of OrientedNode.



424
425
426
427
428
429
430
431
432
433
# File 'lib/assembly/oriented_node_trail.rb', line 424

def initialize(node=nil, first_side=nil)
  @node = node
  if first_side == true
    @first_side = OrientedNodeTrail::START_IS_FIRST
  elsif first_side == false
    @first_side = OrientedNodeTrail::END_IS_FIRST
  else
    @first_side = first_side
  end
end

Instance Attribute Details

#first_sideObject

Returns the value of attribute first_side.



422
423
424
# File 'lib/assembly/oriented_node_trail.rb', line 422

def first_side
  @first_side
end

#nodeObject

Returns the value of attribute node.



422
423
424
# File 'lib/assembly/oriented_node_trail.rb', line 422

def node
  @node
end

Instance Method Details

#==(another) ⇒ Object



469
470
471
# File 'lib/assembly/oriented_node_trail.rb', line 469

def ==(another)
  @node == another.node and @first_side == another.first_side
end

#copyObject



495
496
497
# File 'lib/assembly/oriented_node_trail.rb', line 495

def copy
  OrientedNode.new(@node, @first_side)
end

#hashObject



461
462
463
# File 'lib/assembly/oriented_node_trail.rb', line 461

def hash
  to_settable.hash
end

#next_neighbours(graph) ⇒ Object



473
474
475
# File 'lib/assembly/oriented_node_trail.rb', line 473

def next_neighbours(graph)
  graph.neighbours_of @node, @first_side
end

#node_idObject



465
466
467
# File 'lib/assembly/oriented_node_trail.rb', line 465

def node_id
  @node.node_id
end

#reverseObject

Return a new OrientedNode with the reverse direction



489
490
491
492
493
# File 'lib/assembly/oriented_node_trail.rb', line 489

def reverse
  rev = OrientedNode.new(@node, @first_side)
  rev.reverse!
  return rev
end

#reverse!Object

switch @first_side of this node



478
479
480
481
482
483
484
485
486
# File 'lib/assembly/oriented_node_trail.rb', line 478

def reverse!
  if @first_side == OrientedNodeTrail::START_IS_FIRST
    @first_side = OrientedNodeTrail::END_IS_FIRST
  elsif @first_side == OrientedNodeTrail::END_IS_FIRST
    @first_side = OrientedNodeTrail::START_IS_FIRST
  else
    raise "programming error"
  end
end

#starts_at_end?Boolean

Returns:

  • (Boolean)


439
440
441
# File 'lib/assembly/oriented_node_trail.rb', line 439

def starts_at_end?
  @first_side == OrientedNodeTrail::END_IS_FIRST
end

#starts_at_start?Boolean

Returns:

  • (Boolean)


435
436
437
# File 'lib/assembly/oriented_node_trail.rb', line 435

def starts_at_start?
  @first_side == OrientedNodeTrail::START_IS_FIRST
end

#to_sObject



443
444
445
# File 'lib/assembly/oriented_node_trail.rb', line 443

def to_s
  "OrientedNode: node #{@node.node_id}, first_side: #{@first_side}"
end

#to_settableObject

Set#include? doesn’t pick up when the same OrientedNode is picked up twice independently, I don’t think. So convert to an array first



457
458
459
# File 'lib/assembly/oriented_node_trail.rb', line 457

def to_settable
  [@node.node_id, @first_side]
end

#to_shorthandObject



447
448
449
450
451
452
453
# File 'lib/assembly/oriented_node_trail.rb', line 447

def to_shorthand
  if @first_side == OrientedNodeTrail::START_IS_FIRST
    return "#{node_id}s"
  else
    return "#{node_id}e"
  end
end