aai 0.2.1 → 0.2.2

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
  SHA1:
3
- metadata.gz: c9a07b9c733b60359634489b11fbe34e26890afa
4
- data.tar.gz: 74c4793c46883e92fab311837cf8b9ffd74b116d
3
+ metadata.gz: 9bac62037fd410a0529a22d1c010d10ce7839633
4
+ data.tar.gz: 2ea10d1fb86cab89108ffdda9b09971cff7950bd
5
5
  SHA512:
6
- metadata.gz: bdb1b9a67c88b837052e423beb3ecf89454633f48192c8ae3660dbcaf3f16e6ca9cb51e909d422fd644fe2dc28fd684b9118506395d26c51bda4a87dbea25fbb
7
- data.tar.gz: 615dc08d06a337722696f7035d8d29126ef1fc95d38394131a5391029c83c57501bb19e22ce25b517bcb242da8c5dca35475817423d2226b4cd1cec14b531425
6
+ metadata.gz: cc31bb1eb4cec4a1071ec9d17e9f993fa833dd9fae6bc676bbeec4dedcd711b8e4d494ca5370597029fd1f29e16af61726e556661ba13c73251834789dc0147d
7
+ data.tar.gz: 93305b9087bbba596f0a37edc6df2086d4d96af0a5161ca520614c2dff8ad21eae79da0e60b533859309b3e60b050d6295f0ef38555f2d472f290b6f8d984478
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ .ruby-version
14
+ .ruby-gemset
@@ -10,7 +10,6 @@ rvm:
10
10
  addons:
11
11
  apt:
12
12
  packages:
13
- - parallel
14
13
  - ncbi-blast+
15
14
 
16
15
  before_install:
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "yard", "~> 0.9.9"
29
29
 
30
30
  spec.add_runtime_dependency "abort_if", "~> 0.2.0"
31
+ spec.add_runtime_dependency "parallel", "~> 1.6", ">= 1.6.1"
31
32
  spec.add_runtime_dependency "parse_fasta", "~> 2.2"
32
33
  spec.add_runtime_dependency "systemu", "~> 2.6", ">= 2.6.5"
33
34
  spec.add_runtime_dependency "trollop", "~> 2.1", ">= 2.1.2"
data/exe/aai CHANGED
@@ -13,7 +13,11 @@ include AbortIf::Assert
13
13
  Aai.extend Aai
14
14
  Aai.extend Aai::Utils
15
15
 
16
- version_banner =
16
+ def move_files fnames, dest
17
+ fnames.each do |fname|
18
+ FileUtils.mv fname, dest
19
+ end
20
+ end
17
21
 
18
22
  opts = Trollop.options do
19
23
  version Aai::VERSION_BANNER
@@ -60,9 +64,24 @@ two_way = Aai.two_way_aai best_hits
60
64
 
61
65
  aai_strings = Aai.aai_strings one_way, two_way
62
66
 
63
- outf = File.join opts[:outdir], "#{opts[:basename]}.aai.txt"
67
+ score_dir = File.join opts[:outdir], "aai_scores"
68
+ FileUtils.mkdir_p score_dir
69
+ outf = File.join score_dir, "#{opts[:basename]}.aai.txt"
64
70
  File.open(outf, "w") do |f|
65
71
  Aai.aai_strings(one_way, two_way).each do |str|
66
72
  f.puts str
67
73
  end
68
74
  end
75
+
76
+ blast_db_dir = File.join opts[:outdir], "blastdbs"
77
+ btab_dir = File.join opts[:outdir], "btabs"
78
+ clean_fasta_dir = File.join opts[:outdir], "clean_fastas"
79
+
80
+ FileUtils.mkdir_p [blast_db_dir, btab_dir, clean_fasta_dir]
81
+
82
+ move_files clean_fnames, clean_fasta_dir
83
+ move_files btabs, btab_dir
84
+
85
+ blast_db_basenames.each do |basename|
86
+ move_files Dir.glob("#{basename}*"), blast_db_dir
87
+ end
data/lib/aai.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "abort_if"
2
2
  require "systemu"
3
+ require "parallel"
3
4
  require "parse_fasta"
4
5
 
5
6
  require "aai/core_extensions"
@@ -8,6 +9,7 @@ require "aai/version"
8
9
 
9
10
  AbortIf.extend AbortIf
10
11
  Process.extend Aai::CoreExtensions::Process
12
+ Time.extend Aai::CoreExtensions::Time
11
13
 
12
14
  module Aai
13
15
  include Utils
@@ -47,10 +49,20 @@ module Aai
47
49
  "#{f1}____#{f2}.aai_blastp"
48
50
  end
49
51
 
50
- title = "Running blast jobs"
51
- cmd = %Q{parallel --xapply "blastp -outfmt 6 -query {1} -db {2} -out {3} -evalue 1e-3" ::: #{first_files.join " "} ::: #{second_files.join " "} ::: #{outf_names.join " "}}
52
+ parallel_args = first_files.length.times.map do |idx|
53
+ [first_files[idx], second_files[idx], outf_names[idx]]
54
+ end
55
+
56
+ Time.time_it "Running blast jobs" do
57
+ Parallel.each(parallel_args) do |infiles|
58
+ query = infiles[0]
59
+ db = infiles[1]
60
+ out = infiles[2]
52
61
 
53
- Process.run_and_time_it! title, cmd
62
+ cmd = "blastp -outfmt 6 -query #{query} -db #{db} -out #{out} -evalue #{EVALUE_CUTOFF}"
63
+ Process.run_it! cmd
64
+ end
65
+ end
54
66
 
55
67
  outf_names
56
68
  end
@@ -64,10 +76,13 @@ module Aai
64
76
  suffix = BLAST_DB_SUFFIX
65
77
  outfiles = fnames.map { |fname| fname + suffix }
66
78
 
67
- title = "Making blast databases"
68
- cmd = %Q{parallel "makeblastdb -in {} -out {}#{BLAST_DB_SUFFIX} -dbtype prot" ::: #{fnames.join " "}}
79
+ Time.time_it "Making blast databases" do
80
+ Parallel.each(fnames) do |fname|
81
+ cmd = "makeblastdb -in #{fname} -out #{fname}#{BLAST_DB_SUFFIX} -dbtype prot"
69
82
 
70
- Process.run_and_time_it! title, cmd
83
+ Process.run_it! cmd
84
+ end
85
+ end
71
86
 
72
87
  outfiles
73
88
  end
@@ -1,5 +1,5 @@
1
1
  module Aai
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  COPYRIGHT = "2017 Ryan Moore"
4
4
  CONTACT = "moorer@udel.edu"
5
5
  WEBSITE = "https://github.com/mooreryan/aai"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-22 00:00:00.000000000 Z
11
+ date: 2017-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,26 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.2.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: parallel
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.6.1
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '1.6'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.6.1
97
117
  - !ruby/object:Gem::Dependency
98
118
  name: parse_fasta
99
119
  requirement: !ruby/object:Gem::Requirement