aai 0.2.2 → 0.3.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/exe/aai +6 -2
  3. data/lib/aai.rb +5 -4
  4. data/lib/aai/version.rb +1 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9bac62037fd410a0529a22d1c010d10ce7839633
4
- data.tar.gz: 2ea10d1fb86cab89108ffdda9b09971cff7950bd
3
+ metadata.gz: 27ae62f0f9faca6746e563c76f8ca78376cd7e06
4
+ data.tar.gz: 0766cf35cf6654147d7a07261f2e4c9cef610062
5
5
  SHA512:
6
- metadata.gz: cc31bb1eb4cec4a1071ec9d17e9f993fa833dd9fae6bc676bbeec4dedcd711b8e4d494ca5370597029fd1f29e16af61726e556661ba13c73251834789dc0147d
7
- data.tar.gz: 93305b9087bbba596f0a37edc6df2086d4d96af0a5161ca520614c2dff8ad21eae79da0e60b533859309b3e60b050d6295f0ef38555f2d472f290b6f8d984478
6
+ metadata.gz: 4ab936b2f2a91c5b1415e2adf552a809b65487e0d6b3b611cc6551b28686109e6d402e9452cb1e6229b3c78fa16356837e1013bde573954db0f77ecfd53027e3
7
+ data.tar.gz: ed52d87efbcdb2aed8bd9ecb7f8da62cceb029e44a4e4f1cc61d55b777dbeb6f711583f51e065a527267edbcba381cb1f511c982785bd05624532124e6ed8a8a
data/exe/aai CHANGED
@@ -33,6 +33,7 @@ opts = Trollop.options do
33
33
  Options:
34
34
  EOS
35
35
 
36
+ opt(:cpus, "Number of CPUs to use", type: :integer, default: 1)
36
37
  opt(:infiles, "Input files", type: :strings)
37
38
  opt(:outdir, "Output directory", type: :string, default: ".")
38
39
  opt(:basename, "Base name for output file", type: :string,
@@ -52,9 +53,12 @@ FileUtils.mkdir_p opts[:outdir]
52
53
 
53
54
  seq_lengths, clean_fnames = Aai.process_input_seqs! opts[:infiles]
54
55
 
55
- blast_db_basenames = Aai.make_blastdbs! clean_fnames
56
+ blast_db_basenames = Aai.make_blastdbs! clean_fnames,
57
+ opts[:cpus]
56
58
 
57
- btabs = Aai.blast_permutations! clean_fnames, blast_db_basenames
59
+ btabs = Aai.blast_permutations! clean_fnames,
60
+ blast_db_basenames,
61
+ opts[:cpus]
58
62
 
59
63
  best_hits = Aai.get_best_hits btabs, seq_lengths
60
64
 
data/lib/aai.rb CHANGED
@@ -21,7 +21,7 @@ module Aai
21
21
  EVALUE_CUTOFF = 1e-3
22
22
  LENGTH_CUTOFF = 70 # actually is 70 percent
23
23
 
24
- def blast_permutations! fastas, blast_dbs
24
+ def blast_permutations! fastas, blast_dbs, cpus=4
25
25
  file_permutations = one_way_combinations fastas, blast_dbs, true
26
26
  file_permutations = file_permutations.select do |f1, f2|
27
27
  genome_from_fname(f1) != genome_from_fname(f2)
@@ -54,7 +54,7 @@ module Aai
54
54
  end
55
55
 
56
56
  Time.time_it "Running blast jobs" do
57
- Parallel.each(parallel_args) do |infiles|
57
+ Parallel.each(parallel_args, in_processes: cpus) do |infiles|
58
58
  query = infiles[0]
59
59
  db = infiles[1]
60
60
  out = infiles[2]
@@ -70,14 +70,15 @@ module Aai
70
70
  # Make blast dbs given an array of filenames.
71
71
  #
72
72
  # @param fnames [Array<String>] an array of filenames
73
+ # @param cpus [Integer] number of cpus to use
73
74
  #
74
75
  # @return [Array<String>] blast db basenames
75
- def make_blastdbs! fnames
76
+ def make_blastdbs! fnames, cpus=4
76
77
  suffix = BLAST_DB_SUFFIX
77
78
  outfiles = fnames.map { |fname| fname + suffix }
78
79
 
79
80
  Time.time_it "Making blast databases" do
80
- Parallel.each(fnames) do |fname|
81
+ Parallel.each(fnames, in_processes: cpus) do |fname|
81
82
  cmd = "makeblastdb -in #{fname} -out #{fname}#{BLAST_DB_SUFFIX} -dbtype prot"
82
83
 
83
84
  Process.run_it! cmd
@@ -1,5 +1,5 @@
1
1
  module Aai
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  COPYRIGHT = "2017 Ryan Moore"
4
4
  CONTACT = "moorer@udel.edu"
5
5
  WEBSITE = "https://github.com/mooreryan/aai"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore