unipept 1.1.0 → 1.1.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/VERSION +1 -1
- data/lib/commands/prot2pept.rb +3 -2
- data/lib/commands/unipept/api_runner.rb +9 -1
- data/lib/commands/unipept/pept2lca.rb +4 -0
- data/lib/commands/unipept/pept2prot.rb +4 -0
- data/lib/commands/unipept/pept2taxa.rb +4 -0
- data/lib/commands/unipept/taxonomy.rb +4 -0
- data/test/commands/unipept/test_api_runner.rb +28 -0
- data/test/commands/unipept/test_pept2lca.rb +19 -0
- data/test/commands/unipept/test_pept2prot.rb +18 -0
- data/test/commands/unipept/test_pept2taxa.rb +18 -0
- data/test/commands/unipept/test_taxa2lca.rb +6 -0
- data/test/commands/unipept/test_taxonomy.rb +18 -0
- data/unipept.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9e7aed1832989eddf44ce10e5ae42dc4976bf31
|
4
|
+
data.tar.gz: d23fd6021eeb04bc4c6cb9b077f0fca978422f38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eeb2ca9e7dbbc13a0dd2c99a8aa3284cbca52250173060e4615f2b69d5d9b1cd27565c5cebc81275234d8f65542c07f4795f3d1b7bff71d89bb7b2bef9334f8
|
7
|
+
data.tar.gz: 6e79d4bf72af62e0c90c67e8f63a1eaa647850dfb616d225a2521a237274153e96887007f580bf83f5eab3112112f65bb2d6fdbde15a4630044bf3f63f2e6b04
|
data/.travis.yml
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.1
|
data/lib/commands/prot2pept.rb
CHANGED
@@ -20,6 +20,7 @@ module Unipept::Commands
|
|
20
20
|
end
|
21
21
|
run do |opts, _args, _cmd|
|
22
22
|
pattern = opts.fetch(:pattern, '([KR])([^P])')
|
23
|
+
pattern = Regexp.compile(pattern)
|
23
24
|
|
24
25
|
# decide if we have FASTA input
|
25
26
|
first_char = $stdin.getc
|
@@ -33,7 +34,7 @@ module Unipept::Commands
|
|
33
34
|
protein = ''
|
34
35
|
puts line
|
35
36
|
else
|
36
|
-
protein
|
37
|
+
protein << line.chomp
|
37
38
|
end
|
38
39
|
end
|
39
40
|
puts Prot2pept.split(protein, pattern)
|
@@ -46,7 +47,7 @@ module Unipept::Commands
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def self.split(protein, pattern)
|
49
|
-
protein.
|
50
|
+
protein.tr('*', "\n").gsub(pattern, "\\1\n\\2").gsub(pattern, "\\1\n\\2").split("\n").reject(&:empty?)
|
50
51
|
end
|
51
52
|
|
52
53
|
# Invokes the uniprot command-line tool with the given arguments.
|
@@ -60,6 +60,11 @@ module Unipept
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
+
# returns the required fields to do any mapping
|
64
|
+
def required_fields
|
65
|
+
[]
|
66
|
+
end
|
67
|
+
|
63
68
|
# Returns a new batch_iterator based on the batch_size
|
64
69
|
def batch_iterator
|
65
70
|
Unipept::BatchIterator.new(batch_size)
|
@@ -79,7 +84,10 @@ module Unipept
|
|
79
84
|
|
80
85
|
# Returns an array of regular expressions containing all the selected fields
|
81
86
|
def selected_fields
|
82
|
-
@selected_fields
|
87
|
+
return @selected_fields unless @selected_fields.nil?
|
88
|
+
fields = [*options[:select]].map { |f| f.split(',') }.flatten
|
89
|
+
fields.concat(required_fields) unless fields.empty?
|
90
|
+
@selected_fields = fields.map { |f| glob_to_regex(f) }
|
83
91
|
end
|
84
92
|
|
85
93
|
# Returns a formatter, based on the format specified in the options
|
@@ -103,6 +103,18 @@ module Unipept
|
|
103
103
|
assert_equal(%w(a b c), output)
|
104
104
|
end
|
105
105
|
|
106
|
+
def test_required_fields
|
107
|
+
assert_equal([], new_runner.required_fields)
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_required_fields_configurable
|
111
|
+
r = new_runner
|
112
|
+
def r.required_fields
|
113
|
+
['test']
|
114
|
+
end
|
115
|
+
assert_equal(['test'], r.required_fields)
|
116
|
+
end
|
117
|
+
|
106
118
|
def test_default_batch_size
|
107
119
|
assert_raises NotImplementedError do
|
108
120
|
new_runner.default_batch_size
|
@@ -149,6 +161,22 @@ module Unipept
|
|
149
161
|
assert_equal([], runner.selected_fields)
|
150
162
|
end
|
151
163
|
|
164
|
+
def test_required_fields_are_not_selected_with_empty_selection
|
165
|
+
runner = new_runner
|
166
|
+
def runner.required_fields
|
167
|
+
['test']
|
168
|
+
end
|
169
|
+
assert_equal([], runner.selected_fields)
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_required_fields_are_selected
|
173
|
+
runner = new_runner('test', host: 'http://param_host', select: 'field')
|
174
|
+
def runner.required_fields
|
175
|
+
['test']
|
176
|
+
end
|
177
|
+
assert_equal([/^field$/, /^test$/], runner.selected_fields)
|
178
|
+
end
|
179
|
+
|
152
180
|
def test_single_selected_fields
|
153
181
|
runner = new_runner('test', host: 'http://param_host', select: 'field')
|
154
182
|
assert_equal([/^field$/], runner.selected_fields)
|
@@ -10,6 +10,12 @@ module Unipept
|
|
10
10
|
assert_equal(100, pept2lca.default_batch_size)
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_required_fields
|
14
|
+
command = Cri::Command.define { name 'pept2lca' }
|
15
|
+
pept2lca = Commands::Pept2lca.new({ host: 'http://api.unipept.ugent.be' }, [], command)
|
16
|
+
assert_equal(['peptide'], pept2lca.required_fields)
|
17
|
+
end
|
18
|
+
|
13
19
|
def test_argument_batch_size
|
14
20
|
command = Cri::Command.define { name 'pept2lca' }
|
15
21
|
pept2lca = Commands::Pept2lca.new({ host: 'http://api.unipept.ugent.be', batch: '123' }, [], command)
|
@@ -62,6 +68,19 @@ module Unipept
|
|
62
68
|
assert_raises(StopIteration) { lines.next }
|
63
69
|
end
|
64
70
|
|
71
|
+
def test_run_with_fasta_multiple_batches_and_select
|
72
|
+
out, err = capture_io_while do
|
73
|
+
Commands::Unipept.run(%w(pept2lca --host http://api.unipept.ugent.be --batch 2 --select taxon_id >test AALTER AALER >tost AALTER))
|
74
|
+
end
|
75
|
+
lines = out.each_line
|
76
|
+
assert_equal('', err)
|
77
|
+
assert(lines.next.start_with? 'fasta_header,peptide,taxon_id')
|
78
|
+
assert(lines.next.start_with? '>test,AALTER,1')
|
79
|
+
assert(lines.next.start_with? '>test,AALER,1')
|
80
|
+
assert(lines.next.start_with? '>tost,AALTER,1')
|
81
|
+
assert_raises(StopIteration) { lines.next }
|
82
|
+
end
|
83
|
+
|
65
84
|
def test_run_with_fasta_multiple_batches_json
|
66
85
|
out, err = capture_io_while do
|
67
86
|
Commands::Unipept.run(%w(pept2lca --host http://api.unipept.ugent.be --batch 2 --format json >test AALTER AALER >tost AALTER))
|
@@ -10,6 +10,12 @@ module Unipept
|
|
10
10
|
assert_equal(5, pept2prot.default_batch_size)
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_required_fields
|
14
|
+
command = Cri::Command.define { name 'pept2prot' }
|
15
|
+
pept2prot = Commands::Pept2prot.new({ host: 'http://api.unipept.ugent.be' }, [], command)
|
16
|
+
assert_equal(['peptide'], pept2prot.required_fields)
|
17
|
+
end
|
18
|
+
|
13
19
|
def test_help
|
14
20
|
out, _err = capture_io_while do
|
15
21
|
assert_raises SystemExit do
|
@@ -48,6 +54,18 @@ module Unipept
|
|
48
54
|
assert(lines.count { |line| line.start_with? '>tost,EGGAGSSTGQR,' } >= 1)
|
49
55
|
end
|
50
56
|
|
57
|
+
def test_run_with_fasta_multiple_batches_and_select
|
58
|
+
out, err = capture_io_while do
|
59
|
+
Commands::Unipept.run(%w(pept2prot --host http://api.unipept.ugent.be --batch 2 --select uniprot_id >test EGGAGSSTGQR ENFVYIAK >tost EGGAGSSTGQR))
|
60
|
+
end
|
61
|
+
lines = out.each_line
|
62
|
+
assert_equal('', err)
|
63
|
+
assert(lines.next.start_with? 'fasta_header,peptide,uniprot_id')
|
64
|
+
assert(lines.count { |line| line.start_with? '>test,EGGAGSSTGQR,' } >= 1)
|
65
|
+
assert(lines.count { |line| line.start_with? '>test,ENFVYIAK,' } >= 1)
|
66
|
+
assert(lines.count { |line| line.start_with? '>tost,EGGAGSSTGQR,' } >= 1)
|
67
|
+
end
|
68
|
+
|
51
69
|
def test_run_with_fasta_multiple_batches_json
|
52
70
|
out, err = capture_io_while do
|
53
71
|
Commands::Unipept.run(%w(pept2prot --host http://api.unipept.ugent.be --batch 2 --format json >test EGGAGSSTGQR ENFVYIAK >tost EGGAGSSTGQR))
|
@@ -10,6 +10,12 @@ module Unipept
|
|
10
10
|
assert_equal(5, pept2taxa.default_batch_size)
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_required_fields
|
14
|
+
command = Cri::Command.define { name 'pept2taxa' }
|
15
|
+
pept2taxa = Commands::Pept2taxa.new({ host: 'http://api.unipept.ugent.be' }, [], command)
|
16
|
+
assert_equal(['peptide'], pept2taxa.required_fields)
|
17
|
+
end
|
18
|
+
|
13
19
|
def test_help
|
14
20
|
out, _err = capture_io_while do
|
15
21
|
assert_raises SystemExit do
|
@@ -48,6 +54,18 @@ module Unipept
|
|
48
54
|
assert(lines.count { |line| line.start_with? '>tost,EGGAGSSTGQR,' } >= 1)
|
49
55
|
end
|
50
56
|
|
57
|
+
def test_run_with_fasta_multiple_batches_and_select
|
58
|
+
out, err = capture_io_while do
|
59
|
+
Commands::Unipept.run(%w(pept2taxa --host http://api.unipept.ugent.be --batch 2 --select taxon_id >test EGGAGSSTGQR ENFVYIAK >tost EGGAGSSTGQR))
|
60
|
+
end
|
61
|
+
lines = out.each_line
|
62
|
+
assert_equal('', err)
|
63
|
+
assert(lines.next.start_with? 'fasta_header,peptide,taxon_id')
|
64
|
+
assert(lines.count { |line| line.start_with? '>test,EGGAGSSTGQR,' } >= 1)
|
65
|
+
assert(lines.count { |line| line.start_with? '>test,ENFVYIAK,' } >= 1)
|
66
|
+
assert(lines.count { |line| line.start_with? '>tost,EGGAGSSTGQR,' } >= 1)
|
67
|
+
end
|
68
|
+
|
51
69
|
def test_run_with_fasta_multiple_batches_json
|
52
70
|
out, err = capture_io_while do
|
53
71
|
Commands::Unipept.run(%w(pept2taxa --host http://api.unipept.ugent.be --batch 2 --format json >test EGGAGSSTGQR ENFVYIAK >tost EGGAGSSTGQR))
|
@@ -10,6 +10,12 @@ module Unipept
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_required_fields
|
14
|
+
command = Cri::Command.define { name 'taxa2lca' }
|
15
|
+
taxa2lca = Commands::Taxa2lca.new({ host: 'http://api.unipept.ugent.be' }, [], command)
|
16
|
+
assert_equal([], taxa2lca.required_fields)
|
17
|
+
end
|
18
|
+
|
13
19
|
def test_help
|
14
20
|
out, _err = capture_io_while do
|
15
21
|
assert_raises SystemExit do
|
@@ -8,6 +8,12 @@ module Unipept
|
|
8
8
|
assert_equal(100, taxonomy.default_batch_size)
|
9
9
|
end
|
10
10
|
|
11
|
+
def test_required_fields
|
12
|
+
command = Cri::Command.define { name 'taxonomy' }
|
13
|
+
taxonomy = Commands::Taxonomy.new({ host: 'http://api.unipept.ugent.be' }, [], command)
|
14
|
+
assert_equal(['taxon_id'], taxonomy.required_fields)
|
15
|
+
end
|
16
|
+
|
11
17
|
def test_help
|
12
18
|
out, _err = capture_io_while do
|
13
19
|
assert_raises SystemExit do
|
@@ -46,6 +52,18 @@ module Unipept
|
|
46
52
|
assert(lines.count { |line| line.start_with? '>tost,1,' } >= 1)
|
47
53
|
end
|
48
54
|
|
55
|
+
def test_run_with_fasta_multiple_batches_and_select
|
56
|
+
out, err = capture_io_while do
|
57
|
+
Commands::Unipept.run(%w(taxonomy --host http://api.unipept.ugent.be --batch 2 --select taxon_name >test 1 216816 >tost 1))
|
58
|
+
end
|
59
|
+
lines = out.each_line
|
60
|
+
assert_equal('', err)
|
61
|
+
assert(lines.next.start_with? 'fasta_header,taxon_id,taxon_name')
|
62
|
+
assert(lines.count { |line| line.start_with? '>test,1,' } >= 1)
|
63
|
+
assert(lines.count { |line| line.start_with? '>test,216816,' } >= 1)
|
64
|
+
assert(lines.count { |line| line.start_with? '>tost,1,' } >= 1)
|
65
|
+
end
|
66
|
+
|
49
67
|
def test_run_with_fasta_multiple_batches_json
|
50
68
|
out, err = capture_io_while do
|
51
69
|
Commands::Unipept.run(%w(taxonomy --host http://api.unipept.ugent.be --batch 2 --format json >test 1 216816 >tost 1))
|
data/unipept.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: unipept 1.1.
|
5
|
+
# stub: unipept 1.1.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "unipept"
|
9
|
-
s.version = "1.1.
|
9
|
+
s.version = "1.1.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Toon Willems", "Bart Mesuere", "Tom Naessens"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2016-06-12"
|
15
15
|
s.description = " Command line interface to the Unipept (http://unipept.ugent.be) web services\n (pept2lca, taxa2lca, pept2taxa, pept2prot and taxonomy) and some utility\n commands for handling proteins using the command line.\n"
|
16
16
|
s.email = "unipept@ugent.be"
|
17
17
|
s.executables = ["unipept", "prot2pept", "peptfilter", "uniprot"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unipept
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toon Willems
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-06-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cri
|