Class: Bio::Ucsc::Ce6::T25mersRepeats
- Inherits:
-
DBConnection
- Object
- ActiveRecord::Base
- DBConnection
- Bio::Ucsc::Ce6::T25mersRepeats
- Defined in:
- lib/bio-ucsc/ce6/t25mersrepeats.rb
Class Method Summary collapse
- .find_all_by_interval(interval, opt = {:partial => true}) ⇒ Object
- .find_by_interval(interval, opt = {:partial => true}) ⇒ Object
- .find_first_or_all_by_interval(interval, first_all, opt) ⇒ Object
Methods inherited from DBConnection
Class Method Details
.find_all_by_interval(interval, opt = {:partial => true}) ⇒ Object
15 16 17 |
# File 'lib/bio-ucsc/ce6/t25mersrepeats.rb', line 15 def self.find_all_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval) find_first_or_all_by_interval(interval, :all, opt) end |
.find_by_interval(interval, opt = {:partial => true}) ⇒ Object
11 12 13 |
# File 'lib/bio-ucsc/ce6/t25mersrepeats.rb', line 11 def self.find_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval) find_first_or_all_by_interval(interval, :first, opt) end |
.find_first_or_all_by_interval(interval, first_all, opt) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/bio-ucsc/ce6/t25mersrepeats.rb', line 19 def self.find_first_or_all_by_interval(interval, first_all, opt); interval = Bio::Ucsc::Gi.wrap(interval) zstart = interval.zero_start zend = interval.zero_end if opt[:partial] == true where = <<-SQL chrom = :chrom AND bin in (:bins) AND ((chromStart BETWEEN :zstart AND :zend) OR (chromEnd BETWEEN :zstart AND :zend) OR (chromStart <= :zstart AND chromEnd >= :zend)) SQL else where = <<-SQL chrom = :chrom AND bin in (:bins) AND ((chromStart BETWEEN :zstart AND :zend) AND (chromEnd BETWEEN :zstart AND :zend)) SQL end cond = { :chrom => interval.chrom, :bins => Ucsc::UcscBin.bin_all(zstart, zend), :zstart => zstart, :zend => zend,} self.find(first_all, { :select => "*", :conditions => [where, cond], }) end |