Class: Bio::Features

Inherits:
Object show all
Defined in:
lib/bio/compat/features.rb

Overview

DESCRIPTION

This class is OBSOLETED, and will soon be removed. Instead of this class, an array is to be used.

Container for a list of Feature objects.

USAGE

# First, create some Bio::Feature objects
feature1 = Bio::Feature.new('intron','3627..4059')
feature2 = Bio::Feature.new('exon','4060..4236')
feature3 = Bio::Feature.new('intron','4237..4426')
feature4 = Bio::Feature.new('CDS','join(2538..3626,4060..4236)',
                 [ Bio::Feature::Qualifier.new('gene', 'CYP2D6'),
                   Bio::Feature::Qualifier.new('translation','MGXXTVMHLL...')
                 ])

# And create a container for them
feature_container = Bio::Features.new([ feature1, feature2, feature3, feature4 ])

# Iterate over all features and print
feature_container.each do |feature|
  puts feature.feature + "\t" + feature.position
  feature.each do |qualifier|
    puts "- " + qualifier.qualifier + ": " + qualifier.value
  end
end

# Iterate only over CDS features and extract translated amino acid sequences
features.each("CDS") do |feature|
  hash = feature.to_hash
  name = hash["gene"] || hash["product"] || hash["note"] 
  aaseq  = hash["translation"]
  pos  = feature.position
  if name and seq
    puts ">#{gene} #{feature.position}"
    puts aaseq
  end
end

Defined Under Namespace

Modules: BackwardCompatibility

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ary = []) ⇒ Features

Normally, users can not call this method.

Create a new Bio::Features object.

Arguments:

  • (optional) _list of features_: list of Bio::Feature objects

Returns

Bio::Features object


111
112
113
# File 'lib/bio/compat/features.rb', line 111

def initialize(ary = [])
  @features = ary
end

Instance Attribute Details

#featuresObject

Returns an Array of Feature objects.


116
117
118
# File 'lib/bio/compat/features.rb', line 116

def features
  @features
end

Class Method Details

.new(ary = []) ⇒ Object

This method should not be used. Only for backward compatibility of existing code.

Since Bio::Features is obsoleted, Bio::Features.new not returns Bio::Features object, but modifies given ary and returns the ary.

Arguments:

  • (optional) __: Array of Bio::Feature objects

Returns

the given array


98
99
100
101
102
# File 'lib/bio/compat/features.rb', line 98

def self.new(ary = [])
  warn 'Bio::Features is obsoleted. Some methods are added to given array to keep backward compatibility.'
  ary.extend(BackwardCompatibility)
  ary
end

Instance Method Details

#[](*arg) ⇒ Object

Short cut for the Features#features


140
141
142
# File 'lib/bio/compat/features.rb', line 140

def [](*arg)
  @features[*arg]
end

#append(a) ⇒ Object

Appends a Feature object to Features.

Arguments:

  • (required) feature: Bio::Feature object

Returns

Bio::Features object


123
124
125
126
# File 'lib/bio/compat/features.rb', line 123

def append(a)
  @features.push(a) if a.is_a? Feature
  return self
end

#each(arg = nil) ⇒ Object

Iterates on each feature object.

Arguments:

  • (optional) key: if specified, only iterates over features with this key


132
133
134
135
136
137
# File 'lib/bio/compat/features.rb', line 132

def each(arg = nil)
  @features.each do |x|
    next if arg and x.feature != arg
    yield x
  end
end

#firstObject

Short cut for the Features#features.first


145
146
147
# File 'lib/bio/compat/features.rb', line 145

def first
  @features.first
end

#lastObject

Short cut for the Features#features.last


150
151
152
# File 'lib/bio/compat/features.rb', line 150

def last
  @features.last
end