Sha256: 2ea07c22dc19f6051f200541b5051088a94b7723182e811d4e878b630ee0a17f

Contents?: true

Size: 1.79 KB

Versions: 45

Compression:

Stored size: 1.79 KB

Contents

module Sinatra
  module RbbtMiscHelpers
    def OR_matrices(m1, m2)
      samples = m1.fields
      new = TSV.setup({}, :key_field => "Ensembl Gene ID", :fields => samples)

      m1.each do |gene, values|
        new[gene] = values
      end

      m2.each do |gene, values|
        if new.include? gene
          new[gene] = new[gene].zip(values).collect do |old, new|
            case
            when old == new
              old
            else
              "TRUE"
            end
          end
        else
          new[gene] = values
        end
      end

      new
    end

    def exome_bed_file_for_genes(genes)
      bed = TSV.setup({}, :key_field => "Ensembl Exon ID", :fields => %w(chr start end gene), :type => :list)
      organism = genes.organism
      exon_info = Organism.exons(organism).tsv :fields => ["Chromosome Name", "Exon Chr Start", "Exon Chr End"], :persist => true
      exons_for = Organism.exons(organism).tsv :key_field => "Ensembl Gene ID", :fields => ["Ensembl Exon ID"], :persist => true, :merge => true, :type => :flat
      genes.each do |gene|
        exons = exons_for[gene.ensembl]
        exons.each do |exon|
          chr, start, eend = exon_info[exon]
          bed[exon] = [chr, start, eend, gene]
        end
      end
      bed
    end

    def format_name(name)
      parts = name.split("_")
      hash = parts.pop
      clean_name = parts * "_"
      "<span class='name' jobname='#{ name }'>#{ clean_name }</span> <span class='hash'>#{ hash }</span>"
    end

    def values2d3(data)
      data = data.to_single if data.respond_to? :to_single and not data.type == :single

      values = []
      data.each do |key, value|
        name = key.respond_to?(:name) ? key.name || key : key
        values << {:label => name, :value => value}
      end

      values
    end
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
rbbt-rest-1.8.91 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.90 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.89 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.88 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.87 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.86 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.85 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.84 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.83 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.82 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.81 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.80 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.79 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.78 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.77 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.76 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.75 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.74 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.73 lib/rbbt/rest/helpers.rb
rbbt-rest-1.8.72 lib/rbbt/rest/helpers.rb