pasv_lib 0.4.1 → 0.5.0

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
  SHA256:
3
- metadata.gz: 9c784b906c7e31bdcd730c366169b973d47a2d42684515bcb80bdc07a1885deb
4
- data.tar.gz: 6e8d255293a94a02fcaf4cee373632c387c753db7f71b8be6515c75ea84e22f6
3
+ metadata.gz: e6d2910a3379cacf4191d43ee3e9bafd9b1b4ffa5b2e4f1c6cabfc3716a98680
4
+ data.tar.gz: 544acd2bca1ecec7bd4ff1658e50cbbf4bd5301d8f51acf7e0d7af89a011cc63
5
5
  SHA512:
6
- metadata.gz: ed50ff3cf8856cf568bb20f38f0adcd045699244b468909e88452a5fbc930477e26618dc0e18b0a7c6e332a6f8de1a48803b44ba228812eac53b1b35e92a38a4
7
- data.tar.gz: d73b1d2bcbc5b28a951017d6074b7ce5cdc7435684c86be4df4911c5d01924164606cce8c679b638206b2c951ac7506567ef97a29dee6e848d3f8f051b3f7c73
6
+ metadata.gz: 371ce1e3a9001fa8deda62a90d9e01a33fdd759c8d061068f7ba4c7bded572c10d68b594f177ea609aed98865be01f7c179ab3f1cf398b1500ad96e0a2a802fa
7
+ data.tar.gz: 1c75ab7a7dd0534f4dd0935cb68af4b35e2c81b35c4abae4424e60899e2ec22b74c85365c961223598fc7ca8f8c9650f3d7dfdf74c414fe9a8e13741d50e7194
@@ -1,6 +1,8 @@
1
1
  require "pasv_lib/error"
2
2
  require "pasv_lib/alignment"
3
+ require "pasv_lib/io"
3
4
  require "pasv_lib/version"
5
+
4
6
  require File.join __dir__, "..", "vendor", "systemu"
5
7
 
6
8
  module PasvLib
@@ -1,3 +1,4 @@
1
1
  module PasvLib
2
2
  class Error < StandardError; end
3
+ class ParseError < Error; end
3
4
  end
@@ -0,0 +1,50 @@
1
+ require "parse_fasta"
2
+
3
+ module PasvLib
4
+ module Io
5
+ def read_refs fname
6
+ refs = {}
7
+
8
+ ParseFasta::SeqFile.open(fname).each_record do |rec|
9
+ if has_gaps? rec.seq
10
+ raise PasvLib::ParseError,
11
+ "Record '#{rec.header}' had gaps! Did you accidentally " \
12
+ "provide aligned sequences?"
13
+ end
14
+
15
+ if refs.count.zero?
16
+ head = "first_pasv_ref"
17
+ else
18
+ head = "pasv_ref___#{rec.id}"
19
+ end
20
+
21
+ refs[head] = rec.seq
22
+ end
23
+
24
+ refs
25
+ end
26
+
27
+ def read_queries fname
28
+ queries = {}
29
+
30
+ ParseFasta::SeqFile.open(fname).each_record do |rec|
31
+ if has_gaps? rec.seq
32
+ raise PasvLib::ParseError,
33
+ "Record '#{rec.header}' had gaps! Did you accidentally " \
34
+ "provide aligned sequences?"
35
+ end
36
+
37
+ header = "pasv_query___#{rec.header}"
38
+ queries[header] = rec.seq
39
+ end
40
+
41
+ queries
42
+ end
43
+
44
+ private
45
+
46
+ def has_gaps? seq
47
+ seq.include?("-") || seq.include?(".")
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module PasvLib
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rspec", "~> 3.0"
26
26
 
27
27
  spec.add_runtime_dependency "blosum", "~> 0.1.0"
28
+ spec.add_runtime_dependency "parse_fasta", "~> 2.5.2"
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pasv_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-17 00:00:00.000000000 Z
11
+ date: 2020-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: parse_fasta
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.5.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.5.2
69
83
  description:
70
84
  email:
71
85
  - moorer@udel.edu
@@ -85,6 +99,7 @@ files:
85
99
  - lib/pasv_lib.rb
86
100
  - lib/pasv_lib/alignment.rb
87
101
  - lib/pasv_lib/error.rb
102
+ - lib/pasv_lib/io.rb
88
103
  - lib/pasv_lib/version.rb
89
104
  - pasv_lib.gemspec
90
105
  - vendor/systemu.rb