class Bio::TargetP::Report

A parser and container class for TargetP report.

Constants

DELIMITER

Delimiter

RS

Delimiter

Attributes

cleavage_site_prediction[R]

Returns 'included' or 'not included'. If the value is 'included', #prediction contains a valid value.

cutoff[R]

Returns a Hash of cutoff values.

networks[R]

Returns “PLANT'' or “NON-PLANT'' networks.

pred[R]

Returns a Hash of the prediction results.

{“Name”=>“MGI_2141503”, “Loc.”=>“_”, “RC”=>3, “SP”=>0.271,

"other"=>0.844, "mTP"=>0.161, "cTP"=>0.031, "Length"=>640}

Keys: Name, Len, SP, mTP, other, Loc, RC Optional key for PLANT networks: cTP Optional key in Cleavage site: TPlen

Use 'Length' and 'Loc.' instead of 'Len' and 'Loc' respectively for the version 1.0 report.

prediction[R]

Returns a Hash of the prediction results.

{“Name”=>“MGI_2141503”, “Loc.”=>“_”, “RC”=>3, “SP”=>0.271,

"other"=>0.844, "mTP"=>0.161, "cTP"=>0.031, "Length"=>640}

Keys: Name, Len, SP, mTP, other, Loc, RC Optional key for PLANT networks: cTP Optional key in Cleavage site: TPlen

Use 'Length' and 'Loc.' instead of 'Len' and 'Loc' respectively for the version 1.0 report.

query_sequences[R]

Returns the query sequences.

version[R]

Returns the program version.

Public Class Methods

new(str) click to toggle source

Sets output report.

# File lib/bio/appl/targetp/report.rb, line 63
def initialize(str)
  @version                  = nil
  @query_sequences          = nil
  @cleavage_site_prediction = nil
  @networks                 = nil
  @prediction               = {}
  @cutoff                   = {}
  parse_entry(str)
end

Public Instance Methods

entry_id()
Alias for: name
length()
Alias for: query_len
loc() click to toggle source

Returns the predicted localization signal:

  1. S (Signal peptide)

  2. M (mTP)

  3. C (cTP)

  4. *

  5. _

# File lib/bio/appl/targetp/report.rb, line 97
def loc
  if @prediction['Loc'] 
    @prediction['Loc']   # version 1.0
  else
    @prediction['Loc.']  # version 1.1
  end
end
name() click to toggle source

Returns the name of query sequence.

# File lib/bio/appl/targetp/report.rb, line 76
def name
  @prediction['Name']
end
Also aliased as: entry_id
query_len() click to toggle source

Returns length of query sequence.

# File lib/bio/appl/targetp/report.rb, line 82
def query_len
  if @prediction['Len']
    @prediction['Len']
  else
    @prediction['Length']
  end
end
Also aliased as: length
rc() click to toggle source

Returns RC.

# File lib/bio/appl/targetp/report.rb, line 106
def rc
  @prediction['RC']
end

Private Instance Methods

parse_entry(str) click to toggle source
# File lib/bio/appl/targetp/report.rb, line 113
def parse_entry(str)
  labels = []
  cutoff = []
  values = []

  str.split("\n").each {|line|
    case line
    when /targetp v(\d+.\d+)/,/T A R G E T P\s+(\d+.\d+)/
      @version = $1

    when /Number of (query|input) sequences:\s+(\d+)/
      @query_sequences = $1.to_i

    when /Cleavage site predictions (\w.+)\./ 
      @cleavage_site_prediction = $1

    when /Using (\w+.+) networks/
      @networks = $1
    when /Name +Len/
      labels = line.sub(/^\#\s*/,'').split(/\s+/)

    when /cutoff/
      cutoff = line.split(/\s+/)
      cutoff.shift
      labels[2, 4].each_with_index {|loc, i|
        next if loc =~ /Loc/
        @cutoff[loc] = cutoff[i].to_f
      }
    when /-----$/
    when /^ +$/, ''
    else
      values = line.sub(/^\s*/,'').split(/\s+/)
      values.each_with_index {|val, i|
        label = labels[i]
        case label
        when 'RC', /Len/ 
          val = val.to_i
        when 'SP','mTP','cTP','other'
          val = val.to_f
        end
        @prediction[label] = val
      }
    end
  }
end