Class: Bio::Ucsc::SacCer2::T2micron_est

Inherits:
DBConnection
  • Object
show all
Defined in:
lib/bio-ucsc/saccer2/t2micron_est.rb

Class Method Summary collapse

Methods inherited from DBConnection

connect, default

Class Method Details

.find_all_by_interval(interval, opt = {:partial => true}) ⇒ Object



20
21
22
# File 'lib/bio-ucsc/saccer2/t2micron_est.rb', line 20

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



16
17
18
# File 'lib/bio-ucsc/saccer2/t2micron_est.rb', line 16

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



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/bio-ucsc/saccer2/t2micron_est.rb', line 24

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
    tName = :chrom
AND bin in (:bins)
AND ((tStart BETWEEN :zstart AND :zend)
 OR (tEnd BETWEEN :zstart AND :zend)
 OR (tStart <= :zstart AND tEnd >= :zend))
    SQL
  else
    where = <<-SQL
    tName = :chrom 
AND ((tStart BETWEEN :zstart AND :zend)
AND  (tEnd 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