Created
August 26, 2011 06:13
-
-
Save nakao/1172813 to your computer and use it in GitHub Desktop.
probeset.js generating code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rubygems' | |
require 'rdf' | |
require 'rest_client' | |
require 'json' | |
task "probeset.js" do | |
endpoint = "http://open-biomed.org:8890/sparql" | |
query = "SELECT * WHERE { GRAPH <http://open-biomed.org:8890/DAV/BH11Ujicha/HG-U133A.na31.annot> { ?subject ?predicate ?object } }" | |
response = RestClient.post endpoint, :query => query, :format => "application/sparql-results+json" | |
data = JSON.parse(response.to_str) | |
items = {} | |
data['results']['bindings'].each do |ent| | |
# p [ent['subject']['value'], ent['predicate']['value'], ent['object']['value']] | |
unless items[ent['subject']['value']] | |
items[ent['subject']['value']] = [] | |
items[ent['subject']['value']] << " id : \"#{ent['subject']['value']}\" " | |
items[ent['subject']['value']] << " type : \"Probeset\" " | |
end | |
case ent['predicate']['value'] | |
when RDF::RDFS.label.to_s | |
items[ent['subject']['value']] << " label : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xSpecies_Scientific_Name" | |
items[ent['subject']['value']] << " Species : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Sequence_Type" | |
items[ent['subject']['value']] << " SequenceType : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Sequence_Source" | |
items[ent['subject']['value']] << " SequenceSource : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xTranscript_ID_Array_Design_" | |
items[ent['subject']['value']] << " TranscriptIDArrayDesign : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Target_Description" | |
items[ent['subject']['value']] << " TargetDescription : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xRepresentative_Public_ID" | |
items[ent['subject']['value']] << " NucleotideID : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:UniGene_ID" | |
items[ent['subject']['value']] << " UniGeneID : \"#{ent['object']['value']}\" " | |
when RDF::RDFS.comments | |
items[ent['subject']['value']] << " Comment : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Chromosomal_Location" | |
items[ent['subject']['value']] << " Location : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Unigene_Cluster_Type" | |
items[ent['subject']['value']] << " ClusterType : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xEnsembl" | |
items[ent['subject']['value']] << " Ensembl : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Entrez_Gene" | |
items[ent['subject']['value']] << " GeneLabel : [" + ent['object']['value'].split(" /// ").map {|x| "\"#{x}\"" }.join(", ") +"] " | |
when "http://bio2rdf.org/affymetrix_resource:SwissProt" | |
items[ent['subject']['value']] << " SwissProt : [" + ent['object']['value'].split(" /// ").map {|x| "\"#{x}\"" }.join(", ") +"] " | |
when "http://bio2rdf.org/affymetrix_resource:xSwissProt" | |
items[ent['subject']['value']] << " SwissProtID : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:EC" | |
items[ent['subject']['value']] << " EC : [" + ent['object']['value'].split(" /// ").map {|x| "\"#{x}\"" }.join(", ") +"] " | |
when "http://bio2rdf.org/affymetrix_resource:xOMIM" | |
items[ent['subject']['value']] << " OMIM : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xRefSeq_Protein_ID" | |
items[ent['subject']['value']] << " RefSeqProtein : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:xRefSeq_Transcript_ID" | |
items[ent['subject']['value']] << " RefSeqTranscript : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Gene_Ontology_Biological_Process" | |
items[ent['subject']['value']] << " GO_Process : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[0] }.map {|x| "\"#{x}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_ProcessEC : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[2] }.map {|x| "\"#{x.to_s.gsub(' ','_')}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_ProcessText : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Gene_Ontology_Cellular_Component" | |
items[ent['subject']['value']] << " GO_Component : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[0] }.map {|x| "\"#{x}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_ComponentEC : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[2] }.map {|x| "\"#{x.to_s.gsub(' ','_')}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_ComponentText : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Gene_Ontology_Molecular_Function" | |
items[ent['subject']['value']] << " GO_Function : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[0] }.map {|x| "\"#{x}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_FunctionEC : [" + ent['object']['value'].split(" /// ").map {|x| x.split(' // ')[2] }.map {|x| "\"#{x.to_s.gsub(' ','_')}\"" }.join(", ") +"] " | |
items[ent['subject']['value']] << " GO_FunctionText : \"#{ent['object']['value']}\" " | |
when "http://bio2rdf.org/affymetrix_resource:Pathway" | |
items[ent['subject']['value']] << " Pathway : [" + ent['object']['value'].split(" /// ").map {|x| x.gsub(' // ',':') }.map {|x| "\"#{x}\"" }.join(", ") +"] " | |
when "http://bio2rdf.org/affymetrix_resource:xEntrez_Gene" | |
items[ent['subject']['value']] << " EntrezGene : \"#{ent['object']['value']}\" " | |
end | |
end | |
# | |
file = File.new("probeset.js", "w") | |
file.puts "{\n" + ' properties : { "Species" : { valueType: "url" }, "TranscriptIDArrayDesign" : { valueType: "url"}, "NucleotideID" : { valueType: "url" }, "Ensembl": { valueType: "url" }, "SwissProtID": { valueType: "url" }, "OMIM": { valueType: "url" }, "RefSeqProtein": { valueType: "url" }, "RefSeqTranscript": { valueType: "url" }, "EntrezGene": { valueType: "url" } },' | |
file.puts " types : { }," | |
file.puts " \"items\" : [ " | |
items.each do |k,v| | |
file.puts " { " + v.join(",\n ") + "\n }, " | |
end | |
file.puts " ]" | |
file.puts "}" | |
file.close | |
# file = File.new("probeset.html", "w") | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment