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.
- checksums.yaml +4 -4
- data/exe/aai +6 -2
- data/lib/aai.rb +5 -4
- data/lib/aai/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27ae62f0f9faca6746e563c76f8ca78376cd7e06
|
4
|
+
data.tar.gz: 0766cf35cf6654147d7a07261f2e4c9cef610062
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
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
|
data/lib/aai/version.rb
CHANGED