[DRE-commits] [ruby-crb-blast] 01/03: New upstream version 0.6.8
Michael Crusoe
misterc-guest at moszumanska.debian.org
Fri Dec 2 16:05:43 UTC 2016
This is an automated email from the git hooks/post-receive script.
misterc-guest pushed a commit to branch master
in repository ruby-crb-blast.
commit 9a194cd01631b40e08b8b7c07a736744d12e1eeb
Author: Michael R. Crusoe <crusoe at ucdavis.edu>
Date: Fri Dec 2 08:01:21 2016 -0800
New upstream version 0.6.8
---
README.md | 17 +++
bin/crb-blast | 19 ++++
lib/crb-blast/crb-blast.rb | 39 ++++++-
lib/crb-blast/version.rb | 2 +-
metadata.yml | 256 ---------------------------------------------
5 files changed, 72 insertions(+), 261 deletions(-)
diff --git a/README.md b/README.md
index 4ef318f..d2ce1c7 100644
--- a/README.md
+++ b/README.md
@@ -82,6 +82,23 @@ blaster.find_reciprocals
blaster.find_secondaries
```
+### Output
+
+The output file for CRB-Blast pulls columns from the blast output.
+
+```
+query - the name of the transcript from the 'query' fasta file
+target - the name of the transcript from the 'target' fasta file
+id - the percent sequence identity
+alnlen - the alignment length
+evalue - the blast evalue
+bitscore - the blast bitscore
+qstart..qend - the coordinates of the alignment in the query from start to end
+tstart..tend - the coordinates of the alignment in the target from start to end
+qlen - the length of the query transcript
+tlen - the length of the target transcript
+```
+
### Getting help
Please use the issue tracker if you find bugs or have trouble running CRB-BLAST.
diff --git a/bin/crb-blast b/bin/crb-blast
index 1978c52..2d21257 100755
--- a/bin/crb-blast
+++ b/bin/crb-blast
@@ -50,6 +50,9 @@ EOS
opt :split,
"split the fasta files into chunks and run multiple blast jobs and then"+
" combine them."
+
+ opt :verbose,
+ "be verbose"
end
Trollop::die :query, "must exist" if !File.exist?(opts[:query])
@@ -60,12 +63,27 @@ gem_deps = File.join(gem_dir, 'deps', 'deps.yaml')
Bindeps.require gem_deps
blaster = CRB_Blast::CRB_Blast.new(opts.query, opts.target)
+print "Making blast databases..." if opts.verbose
dbs = blaster.makedb
+puts " Done" if opts.verbose
+
+print "Blasting..." if opts.verbose
run = blaster.run_blast(opts.evalue, opts.threads, opts.split)
+puts " Done" if opts.verbose
+
+print "Loading..." if opts.verbose
load = blaster.load_outputs
+puts " Done" if opts.verbose
+
+print "Finding reciprocals..." if opts.verbose
recips = blaster.find_reciprocals
+puts " Done" if opts.verbose
+
+print "Fitting curve..." if opts.verbose
secondaries = blaster.find_secondaries
+puts " Done" if opts.verbose
+print "Writing output..." if opts.verbose
File.open("#{opts.output}", 'w') do |out|
blaster.reciprocals.each_pair do |query_id, hits|
hits.each do |hit|
@@ -73,3 +91,4 @@ File.open("#{opts.output}", 'w') do |out|
end
end
end
+puts " Done" if opts.verbose
\ No newline at end of file
diff --git a/lib/crb-blast/crb-blast.rb b/lib/crb-blast/crb-blast.rb
index 65ff4f9..8288edb 100644
--- a/lib/crb-blast/crb-blast.rb
+++ b/lib/crb-blast/crb-blast.rb
@@ -24,6 +24,7 @@ module CRB_Blast
attr_accessor :missed
attr_accessor :target_is_prot, :query_is_prot
attr_accessor :query_results, :target_results, :working_dir
+ attr_reader :reciprocal_hits
def initialize query, target, output=nil
raise IOError.new("File not found #{query}") if !File.exist?(query)
@@ -189,12 +190,22 @@ module CRB_Blast
cmd1 << " -out #{@output1} -evalue #{evalue} "
cmd1 << " -outfmt \"6 std qlen slen\" "
cmd1 << " -max_target_seqs 50 "
+ if bin1=="blastn"
+ cmd1 << " -dust no "
+ elsif bin1=~/blastx/ or bin1=~/blastp/ or bin1=~/tblastn/
+ cmd1 << " -seg no "
+ end
cmd1 << " -num_threads #{threads}"
cmd2 = "#{bin2} -query #{@target} -db #{@working_dir}/#{@query_name} "
cmd2 << " -out #{@output2} -evalue #{evalue} "
cmd2 << " -outfmt \"6 std qlen slen\" "
cmd2 << " -max_target_seqs 50 "
+ if bin2=="blastn"
+ cmd2 << " -dust no "
+ elsif bin2=~/blastx/ or bin2=~/blastp/ or bin2=~/tblastn/
+ cmd2 << " -seg no "
+ end
cmd2 << " -num_threads #{threads}"
if !File.exist?("#{@output1}")
blast1 = Cmd.new(cmd1)
@@ -432,9 +443,12 @@ module CRB_Blast
else
length_hash = Hash.new
fitting = Hash.new
- @evalues.each do |h|
- length_hash[h[:length]] = [] if !length_hash.key?(h[:length])
- length_hash[h[:length]] << h
+ File.open("evalues_data", "w") do |io|
+ @evalues.each do |h|
+ length_hash[h[:length]] = [] if !length_hash.key?(h[:length])
+ length_hash[h[:length]] << h
+ io.write "#{h[:length]}\t#{h[:e]}\n"
+ end
end
(10.. at longest).each do |centre|
@@ -453,9 +467,24 @@ module CRB_Blast
end
if count>0
mean = e/count
- fitting[centre] = mean
+ if fitting[centre-1]
+ if fitting[centre-1] > mean # monotonic fitting
+ fitting[centre] = fitting[centre-1]
+ else
+ fitting[centre] = mean
+ end
+ else
+ fitting[centre] = mean
+ end
+ end
+ end
+ # output fitting data
+ File.open("fitting_data", "w") do |io|
+ fitting.each do |centre, mean|
+ io.write "#{centre}\t#{mean}\n"
end
end
+ #
hits = 0
@missed.each_pair do |id, list|
list.each do |hit|
@@ -531,6 +560,8 @@ module CRB_Blast
def write_output
s=""
unless @reciprocals.nil?
+ s << "query\ttarget\tid\talnlen\tevalue\tbitscore\t"
+ s << "qstart..qend\ttstart..tend\tqlen\ttlen\n"
@reciprocals.each_pair do |query_id, hits|
hits.each do |hit|
s << "#{hit}\n"
diff --git a/lib/crb-blast/version.rb b/lib/crb-blast/version.rb
index 81f7562..90f8239 100644
--- a/lib/crb-blast/version.rb
+++ b/lib/crb-blast/version.rb
@@ -3,7 +3,7 @@ module CRB_Blast
module VERSION
MAJOR = 0
MINOR = 6
- PATCH = 6
+ PATCH = 8
BUILD = nil
STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
diff --git a/metadata.yml b/metadata.yml
deleted file mode 100644
index 6b6409e..0000000
--- a/metadata.yml
+++ /dev/null
@@ -1,256 +0,0 @@
---- !ruby/object:Gem::Specification
-name: crb-blast
-version: !ruby/object:Gem::Version
- version: 0.6.6
-platform: ruby
-authors:
-- Chris Boursnell
-- Richard Smith-Unna
-autorequire:
-bindir: bin
-cert_chain: []
-date: 2015-05-19 00:00:00.000000000 Z
-dependencies:
-- !ruby/object:Gem::Dependency
- name: trollop
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '2.0'
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '2.0'
-- !ruby/object:Gem::Dependency
- name: bio
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.4'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.4.3
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.4'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.4.3
-- !ruby/object:Gem::Dependency
- name: fixwhich
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.0'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.0.2
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.0'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.0.2
-- !ruby/object:Gem::Dependency
- name: threach
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.2'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.2.0
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.2'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.2.0
-- !ruby/object:Gem::Dependency
- name: bindeps
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.0'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.0.3
- type: :runtime
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.0'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.0.3
-- !ruby/object:Gem::Dependency
- name: rake
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '10.3'
- - - ">="
- - !ruby/object:Gem::Version
- version: 10.3.2
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '10.3'
- - - ">="
- - !ruby/object:Gem::Version
- version: 10.3.2
-- !ruby/object:Gem::Dependency
- name: turn
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.9'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.9.7
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.9'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.9.7
-- !ruby/object:Gem::Dependency
- name: simplecov
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.8'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.8.2
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.8'
- - - ">="
- - !ruby/object:Gem::Version
- version: 0.8.2
-- !ruby/object:Gem::Dependency
- name: shoulda-context
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.2'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.2.1
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '1.2'
- - - ">="
- - !ruby/object:Gem::Version
- version: 1.2.1
-- !ruby/object:Gem::Dependency
- name: coveralls
- requirement: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.7'
- type: :development
- prerelease: false
- version_requirements: !ruby/object:Gem::Requirement
- requirements:
- - - "~>"
- - !ruby/object:Gem::Version
- version: '0.7'
-description: See summary
-email: cmb211 at cam.ac.uk
-executables:
-- crb-blast
-extensions: []
-extra_rdoc_files: []
-files:
-- ".gitignore"
-- Gemfile
-- README.md
-- Rakefile
-- bin/crb-blast
-- build
-- crb-blast.gemspec
-- deps/deps.yaml
-- lib/crb-blast.rb
-- lib/crb-blast/cmd.rb
-- lib/crb-blast/crb-blast.rb
-- lib/crb-blast/hit.rb
-- lib/crb-blast/version.rb
-- test/helper.rb
-- test/query.fasta
-- test/query2.fasta
-- test/query3.fasta
-- test/target.fasta
-- test/target2.fasta
-- test/test_bin.rb
-- test/test_test.rb
-- test/test_test2.rb
-- test/test_test3.rb
-homepage: https://github.com/cboursnell/crb-blast
-licenses:
-- MIT
-metadata: {}
-post_install_message:
-rdoc_options: []
-require_paths:
-- lib
-required_ruby_version: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: '0'
-required_rubygems_version: !ruby/object:Gem::Requirement
- requirements:
- - - ">="
- - !ruby/object:Gem::Version
- version: '0'
-requirements: []
-rubyforge_project:
-rubygems_version: 2.2.2
-signing_key:
-specification_version: 4
-summary: Run conditional reciprocal best blast
-test_files: []
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-crb-blast.git
More information about the Pkg-ruby-extras-commits
mailing list