aai 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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