transrate 0.0.8 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad3086d63ee5deaf6ed931c5df095e776e601e2e
4
- data.tar.gz: 188ff6eb56896b42de4ec8e4cee31e23d8387bed
3
+ metadata.gz: e4a7687e1bc2071fe2f043245e1eff90742f4f1e
4
+ data.tar.gz: 61ef6386c15fe8d56485c8c5737d3283aefaede3
5
5
  SHA512:
6
- metadata.gz: 949dd128cb648f481bd7f473e037d9873325407393981674888b04e1b07f9729a1da5cd9d1efb42fb55838cfabcd6c03e33b42b9cfd25f80168fe78175aac035
7
- data.tar.gz: 985cdfc7335410d3c7bd7f1c086b8d0aa87bd66b3af6e8859cc86d000583cca4b8dd728fce76add4e37b14636cd30a04d1876181a3879ec473a11f58368aaa69
6
+ metadata.gz: 42ab6bc0454bd683798c5e9a1d93a7687fd3282bac182275901b89435dc3c90203dc3ffab12ad128fdf4ebab99702df816f3534917a061da6efdbd120e85cf9b
7
+ data.tar.gz: fed477db5ad8a33560bdf25a9bff9185638e49e418ccd5fcf9808235034abbc03ea1c7dded07520f4e4d0bff3f784146417a7e11c58cf938a4007bc71e7c15fc
data/.gitignore CHANGED
@@ -9,6 +9,7 @@ lib/bundler/man
9
9
  pkg
10
10
  rdoc
11
11
  spec/reports
12
+ test
12
13
  test/tmp
13
14
  test/version_tmp
14
15
  tmp
data/bin/transrate CHANGED
@@ -39,7 +39,7 @@ EOS
39
39
  end
40
40
 
41
41
  def pretty_print_hash hash, width
42
- hash.map{ |k, v| "#{k.to_s}#{" " * (width - (k.length + v.to_i.to_s.length))}#{v.to_i}" }.join("\n")
42
+ hash.map{ |k, v| "#{k.to_s}#{" " * (width - (k.length + v.to_f.round(2).to_s.length))}#{v.to_f.round(2)}" }.join("\n")
43
43
  end
44
44
 
45
45
  include Transrate
@@ -59,7 +59,8 @@ if (opts.left && opts.right)
59
59
  puts "\ncalculating read diagnostics..."
60
60
  t0 = Time.now
61
61
  read_metrics = ReadMetrics.new a
62
- read_results = read_metrics.run(opts.left, opts.right)
62
+ read_metrics.run(opts.left, opts.right)
63
+ read_results = read_metrics.read_stats
63
64
  puts "...done in #{Time.now - t0} seconds"
64
65
  else
65
66
  puts "\nno reads provided, skipping read diagnostics"
@@ -68,7 +69,8 @@ end
68
69
  puts "\ncalculating comparative metrics..."
69
70
  t0 = Time.now
70
71
  comparative_metrics = ComparativeMetrics.new(a, r)
71
- comparative_results = comparative_metrics.run
72
+ comparative_metrics.run
73
+ comparative_results = comparative_metrics.comp_stats
72
74
  puts "...done in #{Time.now - t0} seconds"
73
75
 
74
76
  report_width = 30
@@ -93,3 +95,9 @@ if comparative_results
93
95
  puts "-" * report_width
94
96
  puts pretty_print_hash(comparative_results, report_width)
95
97
  end
98
+
99
+ transrater = Transrater.new(a, r, opts.left, opts.right)
100
+ transrater.run(opts.left, opts.right)
101
+ puts "\n\n"
102
+ puts "Overall score #{transrater.assembly_score.to_f.round(2)}"
103
+ puts "\n" + "-" * report_width
data/lib/transrate.rb CHANGED
@@ -6,4 +6,7 @@ require 'transrate/read_metrics'
6
6
  require 'transrate/usearch'
7
7
  require 'transrate/rb_hit'
8
8
  require 'transrate/reciprocal_annotation'
9
- require 'transrate/comparative_metrics'
9
+ require 'transrate/comparative_metrics'
10
+ require 'transrate/metric'
11
+ require 'transrate/dimension_reduce'
12
+ require 'transrate/express'
@@ -0,0 +1,130 @@
1
+ require 'bio'
2
+ require 'bettersam'
3
+ require 'csv'
4
+ require 'forwardable'
5
+
6
+ module Transrate
7
+
8
+ class Assembly
9
+
10
+ include Enumerable
11
+ extend Forwardable
12
+ def_delegators :@assembly, :each, :<<
13
+
14
+ attr_accessor :ublast_db
15
+ attr_accessor :orfs_ublast_db
16
+ attr_accessor :protein
17
+ attr_reader :assembly
18
+
19
+ # number of bases in the assembly
20
+ attr_writer :n_bases
21
+
22
+ # assembly filename
23
+ attr_accessor :file
24
+
25
+ # assembly n50
26
+ attr_reader :n50
27
+
28
+ # Reuturn a new Assembly.
29
+ #
30
+ # - +:file+ - path to the assembly FASTA file
31
+ def initialize file
32
+ @file = file
33
+ @assembly = []
34
+ @n_bases = 0
35
+ Bio::FastaFormat.open(file).each do |entry|
36
+ @n_bases += entry.length
37
+ @assembly << entry
38
+ end
39
+ @assembly.sort_by! { |x| x.length }
40
+ end
41
+
42
+ # Return a new Assembly object by loading sequences
43
+ # from the FASTA-format +:file+
44
+ def self.stats_from_fasta file
45
+ a = Assembly.new file
46
+ a.basic_stats
47
+ end
48
+
49
+ def run
50
+ stats = self.basic_stats
51
+ stats.each_pair do |key, value|
52
+ ivar = "@#{key.gsub(/ /, '_')}".to_sym
53
+ self.instance_variable_set(ivar, value)
54
+ end
55
+ end
56
+
57
+ # Return a hash of statistics about this assembly
58
+ def basic_stats
59
+ cumulative_length = 0.0
60
+ # we'll calculate Nx for all these x
61
+ x = [90, 70, 50, 30, 10]
62
+ x2 = x.clone
63
+ cutoff = x2.pop / 100.0
64
+ res = []
65
+ n1k = 0
66
+ n10k = 0
67
+ orf_length_sum = 0
68
+ @assembly.each do |s|
69
+ n1k += 1 if s.length > 1_000
70
+ n10k += 1 if s.length > 10_000
71
+ orf_length_sum += orf_length(s.seq)
72
+
73
+ cumulative_length += s.length
74
+ if cumulative_length >= @n_bases * cutoff
75
+ res << s.length
76
+ if x2.empty?
77
+ cutoff=1
78
+ else
79
+ cutoff = x2.pop / 100.0
80
+ end
81
+ end
82
+ end
83
+
84
+ mean = cumulative_length / @assembly.size
85
+ ns = Hash[x.map { |n| "N#{n}" }.zip(res)]
86
+ {
87
+ "n_seqs" => @assembly.size,
88
+ "smallest" => @assembly.first.length,
89
+ "largest" => @assembly.last.length,
90
+ "n_bases" => @n_bases,
91
+ "mean_len" => mean,
92
+ "n_1k" => n1k,
93
+ "n_10k" => n10k,
94
+ "orf percent" => 300*orf_length_sum/(@assembly.size*mean)
95
+ }.merge ns
96
+ end
97
+
98
+ # finds longest orf in a sequence
99
+ def orf_length sequence
100
+ longest=0
101
+ (1..6).each do |frame|
102
+ translated = Bio::Sequence::NA.new(sequence).translate(frame)
103
+ translated.split(/\*/).each do |orf|
104
+ if orf.length > longest
105
+ longest=orf.length
106
+ end
107
+ end
108
+ end
109
+ return longest
110
+ end
111
+
112
+ # return the number of bases in the assembly, calculating
113
+ # from the assembly if it hasn't already been done.
114
+ def n_bases
115
+ unless @n_bases
116
+ @n_bases = 0
117
+ @assembly.each { |s| @n_bases += s.length }
118
+ end
119
+ @n_bases
120
+ end
121
+
122
+ def print_stats
123
+ self.basic_stats.map do |k, v|
124
+ "#{k}#{" " * (20 - (k.length + v.to_i.to_s.length))}#{v.to_i}"
125
+ end.join("\n")
126
+ end
127
+
128
+ end # Assembly
129
+
130
+ end # Transrate
@@ -14,6 +14,7 @@ module Transrate
14
14
  attr_accessor :ublast_db
15
15
  attr_accessor :orfs_ublast_db
16
16
  attr_accessor :protein
17
+ attr_reader :assembly
17
18
 
18
19
  # number of bases in the assembly
19
20
  attr_writer :n_bases
@@ -63,18 +64,23 @@ module Transrate
63
64
  res = []
64
65
  n1k = 0
65
66
  n10k = 0
67
+ orf_length_sum = 0
66
68
  @assembly.each do |s|
67
- new_cum_len = cumulative_length + s.length
68
- prop = new_cum_len / self.n_bases
69
69
  n1k += 1 if s.length > 1_000
70
70
  n10k += 1 if s.length > 10_000
71
- if prop >= cutoff
71
+ orf_length_sum += orf_length(s.seq)
72
+
73
+ cumulative_length += s.length
74
+ if cumulative_length >= @n_bases * cutoff
72
75
  res << s.length
73
- break if x2.empty?
74
- cutoff = x2.pop / 100.0
76
+ if x2.empty?
77
+ cutoff=1
78
+ else
79
+ cutoff = x2.pop / 100.0
80
+ end
75
81
  end
76
- cumulative_length = new_cum_len
77
82
  end
83
+
78
84
  mean = cumulative_length / @assembly.size
79
85
  ns = Hash[x.map { |n| "N#{n}" }.zip(res)]
80
86
  {
@@ -84,10 +90,25 @@ module Transrate
84
90
  "n_bases" => @n_bases,
85
91
  "mean_len" => mean,
86
92
  "n_1k" => n1k,
87
- "n_10k" => n10k
93
+ "n_10k" => n10k,
94
+ "orf percent" => 300*orf_length_sum/(@assembly.size*mean)
88
95
  }.merge ns
89
96
  end
90
97
 
98
+ # finds longest orf in a sequence
99
+ def orf_length sequence
100
+ longest=0
101
+ (1..6).each do |frame|
102
+ translated = Bio::Sequence::NA.new(sequence).translate(frame)
103
+ translated.split(/\*/).each do |orf|
104
+ if orf.length > longest
105
+ longest=orf.length
106
+ end
107
+ end
108
+ end
109
+ return longest
110
+ end
111
+
91
112
  # return the number of bases in the assembly, calculating
92
113
  # from the assembly if it hasn't already been done.
93
114
  def n_bases
@@ -17,12 +17,12 @@ module Transrate
17
17
  def map_reads file, left, right=nil, insertsize=200, insertsd=50, outputname=nil
18
18
  lbase = File.basename(left)
19
19
  rbase = File.basename(right)
20
- outputname ||= "#{lbase}.#{rbase}.sam"
20
+ outputname ||= "#{lbase}.#{rbase}.#{File.basename(file)}.sam"
21
21
  realistic_dist = insertsize + (3 * insertsd)
22
22
  unless File.exists? outputname
23
23
  # construct bowtie command
24
- bowtiecmd = "#{@bowtie2} -k 3 -p 8 -X #{realistic_dist}"
25
- bowtiecmd += " --no-unal --local --quiet"
24
+ bowtiecmd = "#{@bowtie2} --very-sensitive-local -p 8 -X #{realistic_dist}" # TODO number of cores should be variable '-p 8'
25
+ bowtiecmd += " --no-unal"
26
26
  bowtiecmd += " #{File.basename(file)} -1 #{left}"
27
27
  # paired end?
28
28
  bowtiecmd += " -2 #{right}" if right
@@ -41,4 +41,4 @@ module Transrate
41
41
 
42
42
  end # Bowtie2
43
43
 
44
- end # Transrate
44
+ end # Transrate
@@ -4,7 +4,8 @@ module Transrate
4
4
 
5
5
  class ComparativeMetrics
6
6
 
7
- attr_accessor :reciprocal_hits
7
+ attr_reader :rbh_per_contig
8
+ attr_reader :reciprocal_hits
8
9
 
9
10
  def initialize assembly, reference
10
11
  @assembly = assembly
@@ -17,8 +18,13 @@ module Transrate
17
18
  @ortholog_hit_ratio = self.ortholog_hit_ratio rbu
18
19
  @collapse_factor = self.collapse_factor @ra.r2l_hits
19
20
  @reciprocal_hits = rbu.size
21
+ @rbh_per_contig = @reciprocal_hits.to_f / @assembly.assembly.size.to_f
22
+ end
23
+
24
+ def comp_stats
20
25
  {
21
26
  :reciprocal_hits => @reciprocal_hits,
27
+ :rbh_per_contig => @rbh_per_contig,
22
28
  :ortholog_hit_ratio => @ortholog_hit_ratio,
23
29
  :collapse_factor => @collapse_factor
24
30
  }
@@ -44,8 +50,7 @@ module Transrate
44
50
  end
45
51
  targets[target] << query
46
52
  end
47
- sum = targets.values.reduce(0.0){ |sum, val| sum += val.size }
48
- puts "sum: #{sum}"
53
+ sum = targets.values.reduce(0.0){ |summer, val| summer += val.size }
49
54
  sum / targets.size
50
55
  end
51
56
 
@@ -0,0 +1,18 @@
1
+ module Transrate
2
+
3
+ class DimensionReduce
4
+
5
+ def self.dimension_reduce(metrics)
6
+ total = 0
7
+ metrics.each do |metric|
8
+ o = metric.origin
9
+ w = metric.weighting
10
+ a = metric.score
11
+ total += w * ((o - a) ** 2)
12
+ end
13
+ Math.sqrt(total) / metrics.length
14
+ end
15
+
16
+ end # DimensionReduce
17
+
18
+ end # Transrate
@@ -0,0 +1,37 @@
1
+ module Transrate
2
+
3
+ require 'which'
4
+
5
+ class Express
6
+
7
+ # return an Express object
8
+ def initialize
9
+ express_path = Which::which('express')
10
+ raise "could not find eXpress in the path" if express_path.empty?
11
+ @express = express_path.first
12
+ end
13
+
14
+ # return hash of expression for each sequenceID
15
+ # in the assembly fastafile
16
+ def quantify_expression assembly, samfile
17
+ assembly = assembly.file if assembly.is_a? Assembly
18
+ cmd = "#{@express} --no-bias-correct #{assembly} #{samfile}"
19
+ ex_output = 'results.xprs'
20
+ fin_output = "#{assembly}_#{ex_output}"
21
+ unless File.exists? fin_output
22
+ `#{cmd}`
23
+ File.rename(ex_output, fin_output)
24
+ end
25
+ expression = {}
26
+ File.open(fin_output).each do |line|
27
+ line = line.chomp.split("\t")
28
+ target = line[1]
29
+ effective_count = line[7]
30
+ expression[target] = effective_count
31
+ end
32
+ expression
33
+ end
34
+
35
+ end # Express
36
+
37
+ end # Transrate
@@ -0,0 +1,16 @@
1
+ module Transrate
2
+
3
+ class Metric
4
+
5
+ attr_reader :origin, :score, :name, :weighting
6
+
7
+ def initialize(name, score, origin)
8
+ @origin = origin
9
+ @score = score
10
+ @name = name
11
+ @weighting = 1
12
+ end
13
+
14
+ end # Metric
15
+
16
+ end # Transrate
@@ -5,7 +5,10 @@ module Transrate
5
5
  attr_reader :total
6
6
  attr_reader :bad
7
7
  attr_reader :supported_bridges
8
-
8
+ attr_reader :pc_good_mapping
9
+ attr_reader :percent_mapping
10
+ attr_reader :expressed_contigs
11
+
9
12
  def initialize assembly
10
13
  @assembly = assembly
11
14
  @mapper = Bowtie2.new
@@ -14,12 +17,14 @@ module Transrate
14
17
 
15
18
  def run left, right, insertsize=200, insertsd=50
16
19
  @mapper.build_index @assembly.file
17
- samfile = @mapper.map_reads(@assembly.file,
18
- left, right,
19
- insertsize, insertsd)
20
+ samfile = @mapper.map_reads(@assembly.file, left, right, insertsize, insertsd)
20
21
  self.analyse_read_mappings(samfile, insertsize, insertsd)
22
+ self.analyse_expression(samfile)
21
23
  @percent_mapping = @total.to_f / @num_pairs.to_f * 100.0
22
24
  @pc_good_mapping = @good.to_f / @num_pairs.to_f * 100.0
25
+ end
26
+
27
+ def read_stats
23
28
  {
24
29
  :num_pairs => @num_pairs,
25
30
  :total_mappings => @total,
@@ -37,7 +42,9 @@ module Transrate
37
42
  :unrealistic_overlap => @unrealistic_overlap,
38
43
  :realistic_fragment => @realistic_fragment,
39
44
  :unrealistic_fragment => @unrealistic_fragment,
40
- :potential_bridges => @supported_bridges
45
+ :potential_bridges => @supported_bridges,
46
+ :expressed_contigs => @expressed_contigs,
47
+ :unexpressed_contigs => @unexpressed_contigs
41
48
  }
42
49
  end
43
50
 
@@ -74,6 +81,8 @@ module Transrate
74
81
  @unrealistic_overlap = 0
75
82
  @realistic_fragment = 0
76
83
  @unrealistic_fragment = 0
84
+ @unexpressed_contigs = 0
85
+ @expressed_contigs = 0
77
86
  end
78
87
 
79
88
  def realistic_distance insertsize, insertsd
@@ -163,6 +172,19 @@ module Transrate
163
172
  end
164
173
  end
165
174
 
175
+ def analyse_expression samfile
176
+ express = Express.new
177
+ @expression = express.quantify_expression(@assembly.file, samfile)
178
+ @expression.each_pair do |target, count|
179
+ count = count.to_f
180
+ if count == 0
181
+ @unexpressed_contigs += 1
182
+ elsif count > 0
183
+ @expressed_contigs += 1
184
+ end
185
+ end
186
+ end
187
+
166
188
  end # ReadMetrics
167
-
189
+
168
190
  end # Transrate
@@ -22,10 +22,11 @@ module Transrate
22
22
 
23
23
  def make_assembly_db
24
24
  unless @assembly.orfs_ublast_db
25
+ assembly_dir = File.dirname(@assembly.file)
25
26
  assembly_base = File.basename(@assembly.file, ".*")
26
27
  assembly_orfs = assembly_base + ".orfs"
27
28
  @usearch.findorfs @assembly.file, assembly_orfs
28
- assembly_db = assembly_base + ".udb"
29
+ assembly_db = File.join(assembly_dir, assembly_base + ".udb")
29
30
  @usearch.makeudb_ublast assembly_orfs, assembly_db
30
31
  @assembly.orfs_ublast_db = assembly_db
31
32
  end
@@ -33,8 +34,9 @@ module Transrate
33
34
 
34
35
  def make_reference_db
35
36
  unless @reference.ublast_db
37
+ reference_dir = File.dirname(@reference.file)
36
38
  reference_base = File.basename(@reference.file, ".*")
37
- reference_db = reference_base + ".udb"
39
+ reference_db = File.join(reference_dir, reference_base + ".udb")
38
40
  @usearch.makeudb_ublast @reference.file, reference_db
39
41
  @reference.ublast_db = reference_db
40
42
  end
@@ -88,4 +90,4 @@ module Transrate
88
90
 
89
91
  end # ReciprocalAnnotation
90
92
 
91
- end # Transrate
93
+ end # Transrate
@@ -7,11 +7,10 @@ module Transrate
7
7
  attr_reader :comparative_metrics
8
8
 
9
9
  def initialize assembly, reference, left, right, insertsize=nil, insertsd=nil
10
- @assembly = Assembly.new assembly
10
+ @assembly = assembly.is_a?(Assembly) ? assembly : Assembly.new(assembly)
11
11
  @reference = reference.is_a?(Assembly) ? reference : Assembly.new(reference)
12
12
  @read_metrics = ReadMetrics.new @assembly
13
13
  @comparative_metrics = ComparativeMetrics.new(@assembly, @reference)
14
- self.run(left, right, insertsize, insertsd)
15
14
  end
16
15
 
17
16
  def run left, right, insertsize=nil, insertsd=nil
@@ -20,6 +19,22 @@ module Transrate
20
19
  @comparative_metrics.run
21
20
  end
22
21
 
22
+ def assembly_score
23
+ pg = Metric.new('pg', @read_metrics.pc_good_mapping, 0.0)
24
+ rbhpc = Metric.new('rbhpc', @comparative_metrics.rbh_per_contig, 0.0)
25
+ ec = Metric.new('ec', @read_metrics.expressed_contigs, 0.0)
26
+ @score = DimensionReduce.dimension_reduce([pg, rbhpc, ec])
27
+ end
28
+
29
+ def all_metrics left, right, insertsize=nil, insertsd=nil
30
+ self.run(left, right, insertsize, insertsd)
31
+ all = @assembly.basic_stats
32
+ all.merge!(@read_metrics.read_stats)
33
+ all.merge!(@comparative_metrics.comp_stats)
34
+ all[:score] = @score
35
+ all
36
+ end
37
+
23
38
  end # Transrater
24
39
 
25
40
  end # Transrate
@@ -19,30 +19,36 @@ module Transrate
19
19
  end
20
20
 
21
21
  def ublast query, target, evalue="1e-5"
22
- subcmd = " -ublast #{query}"
23
- subcmd += " -db #{target}"
24
- subcmd += " -evalue #{evalue}"
25
22
  blast6outfile = "#{File.basename(query)}_#{File.basename(target)}.b6"
26
- subcmd += " -userout #{blast6outfile}"
27
- subcmd += self.custom_output_fields
28
- subcmd += " -strand both"
29
- subcmd += " -threads #{@threads}"
30
- self.run subcmd
23
+ unless File.exists? blast6outfile
24
+ subcmd = " -ublast #{query}"
25
+ subcmd += " -db #{target}"
26
+ subcmd += " -evalue #{evalue}"
27
+ subcmd += " -userout #{blast6outfile}"
28
+ subcmd += self.custom_output_fields
29
+ subcmd += " -strand both"
30
+ subcmd += " -threads #{@threads}"
31
+ self.run subcmd
32
+ end
31
33
  blast6outfile
32
34
  end
33
35
 
34
36
  def makeudb_ublast filepath, output
35
- subcmd = " -makeudb_ublast #{filepath}"
36
- subcmd += " -output #{output}"
37
- self.run subcmd
37
+ unless File.exists? output
38
+ subcmd = " -makeudb_ublast #{filepath}"
39
+ subcmd += " -output #{output}"
40
+ self.run subcmd
41
+ end
38
42
  end
39
43
 
40
44
  def findorfs filepath, output
41
- subcmd = " -findorfs #{filepath}"
42
- subcmd += " -output #{output}"
43
- subcmd += " -xlat"
44
- subcmd += " -orfstyle 7"
45
- self.run subcmd
45
+ unless File.exists? output
46
+ subcmd = " -findorfs #{filepath}"
47
+ subcmd += " -output #{output}"
48
+ subcmd += " -xlat"
49
+ subcmd += " -orfstyle 7"
50
+ self.run subcmd
51
+ end
46
52
  end
47
53
 
48
54
  def run subcmd
@@ -52,4 +58,4 @@ module Transrate
52
58
 
53
59
  end # Usearch
54
60
 
55
- end # Transrate
61
+ end # Transrate
@@ -4,7 +4,7 @@ module Transrate
4
4
  module VERSION
5
5
  MAJOR = 0
6
6
  MINOR = 0
7
- PATCH = 8
7
+ PATCH = 10
8
8
  BUILD = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
data/transrate.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.authors = [ "Richard Smith" ]
8
8
  gem.email = "rds45@cam.ac.uk"
9
9
  gem.licenses = ["MIT"]
10
- gem.homepage = 'https://github.com/blahah/assemblotron'
10
+ gem.homepage = 'https://github.com/blahah/transrate'
11
11
  gem.summary = %q{ quality assessment of de-novo transcriptome assemblies }
12
12
  gem.description = %q{ a library and command-line tool for quality assessment of de-novo transcriptome assemblies }
13
13
  gem.version = Transrate::VERSION::STRING.dup
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-25 00:00:00.000000000 Z
11
+ date: 2013-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -150,9 +150,13 @@ files:
150
150
  - README.md
151
151
  - bin/transrate
152
152
  - lib/transrate.rb
153
+ - lib/transrate/#assembly.rb#
153
154
  - lib/transrate/assembly.rb
154
155
  - lib/transrate/bowtie2.rb
155
156
  - lib/transrate/comparative_metrics.rb
157
+ - lib/transrate/dimension_reduce.rb
158
+ - lib/transrate/express.rb
159
+ - lib/transrate/metric.rb
156
160
  - lib/transrate/rb_hit.rb
157
161
  - lib/transrate/read_metrics.rb
158
162
  - lib/transrate/reciprocal_annotation.rb
@@ -160,7 +164,7 @@ files:
160
164
  - lib/transrate/usearch.rb
161
165
  - lib/transrate/version.rb
162
166
  - transrate.gemspec
163
- homepage: https://github.com/blahah/assemblotron
167
+ homepage: https://github.com/blahah/transrate
164
168
  licenses:
165
169
  - MIT
166
170
  metadata: {}