pasv_lib 0.4.1 → 0.5.0

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 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