Sha256: ebe28727986007ece0eab9f2352361233dd326465088a0c851abaccad6e84040

Contents?: true

Size: 1.27 KB

Versions: 7

Compression:

Stored size: 1.27 KB

Contents

require 'rbbt'
require 'rbbt/resource'

module Pina
  extend Resource
  self.subdir = "share/databases/pina"

  Pina.claim Pina.root, :rake, Rbbt.share.install.Pina.Rakefile.find(:lib)
end

if defined? Entity and defined? Gene and Entity === Gene
  require 'rbbt/entity/interactor'
  require 'rbbt/sources/PSI_MI'

  module Gene
    property :pina_interactors => :array2single do 
      ens2uniprot = Organism.identifiers(organism).tsv :key_field => "Ensembl Gene ID", :fields => ["UniProt/SwissProt Accession"], :type => :flat, :persist => true, :unnamed => true
      pina        = Pina.protein_protein.tsv(:persist => true, :fields => ["Interactor UniProt/SwissProt Accession", "Method", "PMID"], :type => :double, :merge => true, :unnamed => true)

      int = self.ensembl.collect do |ens|
        uniprot = ens2uniprot[ens]
        list = pina.values_at(*uniprot).compact.collect do |v|
          Misc.zip_fields(v).collect do |o, method, articles|
            Interactor.setup(o, PSI_MITerm.setup(method.split(";;")), PMID.setup(articles.split(";;")))
          end
        end.flatten.uniq
        Gene.setup(list, "UniProt/SwissProt Accession", organism).extend(AnnotatedArray)
      end

      Gene.setup(int, "UniProt/SwissProt Accession", organism).extend(AnnotatedArray)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rbbt-sources-3.0.17 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.16 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.14 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.13 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.12 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.11 lib/rbbt/sources/pina.rb
rbbt-sources-3.0.10 lib/rbbt/sources/pina.rb