bio-rocker 0.2.0alpha → 0.2.1beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ROCker +2 -1
  3. data/lib/rocker.rb +18 -2
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83c3e3b92659ce86b8bc1c2119b3d37db119b432
4
- data.tar.gz: 0f27ba6ed5086baf64e99732dc86a4c7e31432d9
3
+ metadata.gz: 80a163d27ab76ae02864ec1f3b1e288371e8bf50
4
+ data.tar.gz: c444438d8b9372b6949c900a46dc1dd913efe56b
5
5
  SHA512:
6
- metadata.gz: cc2045b7943455232a5d9e6a3d3f26f45c953bf31a6b480f6ce3a2c8ab37c1468d0d6ce511521c5afc52ee65dfecc66f9b6195ad17dce4db211c17cdc591ead7
7
- data.tar.gz: c8bda317dda0da8eed23cd976eb6c848f866382e37f5c8315bbd365fe65f85f7319a60eb2c2d511461fca4e329af403c31ccd77a16c0a880ec720edfd9ac269f
6
+ metadata.gz: bc9303fd05913c720ca440ad358d3313cd2b601193e4e3bc46d945e4bfef14713f5d2ba1483fa097472e0be44d08f3d426b73d593fd4a4e410f663c2db284c21
7
+ data.tar.gz: d78afc4fe61106c453a52a87eec977495ac52016af356dc3d60f792da35de16f385c26b9af3df190857529f95d03acbca7edf766e6c439bf4315952506dd9577
data/bin/ROCker CHANGED
@@ -6,7 +6,8 @@
6
6
  # @update May-07-2015
7
7
  #
8
8
 
9
- $:.push File.expand_path(File.dirname(__FILE__) + '/../lib')
9
+ lib = File.expand_path(File.dirname(__FILE__) + '/../lib')
10
+ $:.push lib if Dir.exists? lib
10
11
  require 'rocker'
11
12
  require 'optparse'
12
13
 
data/lib/rocker.rb CHANGED
@@ -114,7 +114,11 @@ class ROCker
114
114
  i = 0
115
115
  genome_ids[:positive].each do |genome_id|
116
116
  print " * scanning #{(i+=1).ordinalize} genome out of #{genome_ids[:positive].size}. \r" unless @o[:q]
117
- # ToDo check organism name using genome_org unless @o[:pertaxon].nil?
117
+ unless @o[:pertaxon].nil?
118
+ genome_taxon = genome2taxon(genome_id, @o[:pertaxon])
119
+ next unless genome_org[ genome_taxon ].nil?
120
+ genome_org[ genome_taxon ] = genome_id
121
+ end
118
122
  $stderr.puts " # Looking for any of #{@o[:positive]}" if @o[:debug]
119
123
  genome_file = @o[:baseout] + '.src.' + i.to_s + '.gff3'
120
124
  if @o[:reuse] and File.exist? genome_file
@@ -142,7 +146,10 @@ class ROCker
142
146
  end
143
147
  end
144
148
  print "\n" unless @o[:q]
145
- genome_ids[:positive] = genome_org.values unless @o[:pertaxon].nil?
149
+ unless @o[:pertaxon].nil?
150
+ genome_ids[:positive] = genome_org.values
151
+ puts " Using #{genome_org.size} genomes after filtering by #{@o[:pertaxon]}." unless @o[:q]
152
+ end
146
153
  all_genome_ids = genome_ids.values.reduce(:+).uniq
147
154
  missing = @o[:positive] - positive_coords.values.map{ |a| a.map{ |b| b[:prot_id] } }.reduce(:+)
148
155
  warn "\nWARNING: Cannot find genomic location of sequence(s) #{missing.join(',')}.\n\n" unless missing.size==0 or @o[:genomefrx]<1.0 or not @o[:pertaxon].nil?
@@ -430,6 +437,15 @@ class ROCker
430
437
  end
431
438
  genomes.uniq
432
439
  end
440
+ def genome2taxid(genome_id)
441
+ ln = ebiFetch('embl', [genome_id], 'annot').split(/[\n\r]/).grep(/^FT\s+\/db_xref="taxon:/).first
442
+ return ln if ln.nil?
443
+ ln.sub(/.*"taxon:(\d+)".*/, "\\1")
444
+ end
445
+ def genome2taxon(genome_id, rank='species')
446
+ xml = ebiFetch('taxonomy', [genome2taxid(genome_id)], 'enataxonomyxml').gsub(/\s*\n\s*/,'')
447
+ xml.scan(/<taxon [^>]+>/).grep(/rank="#{rank}"/).first.sub(/.* taxId="(\d+)".*/,"\\1")
448
+ end
433
449
  def restcall(url, outfile=nil)
434
450
  response = RestClient.get url
435
451
  raise "Unable to reach EBI REST client, error code #{response.code}." unless response.code == 200
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-rocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0alpha
4
+ version: 0.2.1beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis (Coto) Orellana