Skip to content

Instantly share code, notes, and snippets.

View msalvadores's full-sized avatar

Manuel Salvadores msalvadores

View GitHub Profile
@msalvadores
msalvadores / traverse_go_classes.py
Last active August 29, 2015 14:07
A simple script to traverse all GO classes
import requests
import time
import pdb
import json
import sys
import urllib
FILE_NAME = "ontology_ids_and_parents.txt"
APIKEY = 'YOUR KEY'
@msalvadores
msalvadores / dwcterms_owl.rdf
Created June 5, 2014 19:47
dwc_terms_owl.rdf
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY dcam "http://purl.org/dc/dcam/" >
<!ENTITY dcterms "http://purl.org/dc/terms/" >
<!ENTITY dcmitype "http://purl.org/dc/dcmitype/" >
<!ENTITY dwc "http://rs.tdwg.org/dwc/terms/" >
<!ENTITY dwctype "http://rs.tdwg.org/dwc/dwctype/" >
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
import sys
import urllib,urllib2
import traceback
import pdb
import time
import json
import os
def query(q,epr,f='text/plain'):
params = {'query': q}
@msalvadores
msalvadores / array_append_len_known.py
Last active December 15, 2015 08:09
A benchmark of two approaches to constructing an array. Bytearray vs array+join. Limitation: one should know the length of the array. Within pypy-1.9 the bytearray approach is one order of magnitude faster. In CPython-2.7, bytearray aprox. 35% faster.
import timeit
DATA = 'abcdef'
def bytearr():
bytesn = 1024 * 1024 * 5
s = bytearray(bytesn)
i = 0
while i < bytesn:
s[i] = DATA[i%len(DATA)]
@msalvadores
msalvadores / mini_dsl.rb
Last active December 15, 2015 00:38
A mini DSL to dynamically generate objects in Ruby.
require 'pry'
module Test
module Settings
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
attr_accessor :settings
@msalvadores
msalvadores / gist:2210565
Created March 26, 2012 23:20
Java function to pass the api key to BioPortal SPARQL
public ResultSet executeQuery(String queryString) throws Exception {
Query query = QueryFactory.create(queryString) ;
QueryEngineHTTP qexec = QueryExecutionFactory.createServiceRequest(this.service, query)
qexec.addParam("apikey", this.apikey)
ResultSet results = qexec.execSelect() ;
return results;
}
@msalvadores
msalvadores / gist:2210491
Created March 26, 2012 23:12
Simple Python Script to Query sparql.bioportal.org
import json,urllib2,urllib,traceback, sys
def query(q,apikey,epr,f='application/json'):
try:
params = {'query': q, 'apikey': apikey}
params = urllib.urlencode(params)
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(epr+'?'+params)
request.add_header('Accept', f)
request.get_method = lambda: 'GET'
@msalvadores
msalvadores / gist:1473419
Created December 13, 2011 19:12
fast filtered output test
package test;
import java.io.PrintStream;
public class TestOutput {
public static void outputFiltered(String label, PrintStream out) {
for (byte b : label.getBytes()) {
if (Character.isLetterOrDigit((char)b)) {
out.print((char)b);
@msalvadores
msalvadores / test_sparql_bioportal.py
Created October 5, 2011 01:53
BioPortal SPARQL Sample Script (Python)
import json
import urllib2
import urllib
import traceback
import sys
def query(q,apikey,epr,f='application/json'):
"""Function that uses urllib/urllib2 to issue a SPARQL query.
By default it requests json as data format for the SPARQL resultset"""
@msalvadores
msalvadores / gist:1251188
Created September 29, 2011 16:34
Bioportal Mapping Example (Turtle Syntax)
#Ontology here http://protege.stanford.edu/ontologies/mappings/mappings.rdfs
<http://purl.bioontology.org/mapping/21d7a8e0-004d-012e-74a1-005056bd0010>
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#created_in_source_ontology_version> 40400 ;
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#created_in_target_ontology_version> 42693 ;
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#date> "2010-05-17T23:24:34Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#mapping_source> "Application" ;
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#mapping_source_algorithm> "Mappings were generated by the LOOM algorithm automatically based on close lexical match between preferred names of terms or a preferred name and a synonym." ;
<http://protege.stanford.edu/ontologies/mappings/mappings.rdfs#mapping_source_contact_info> "support@bioontology.org" ;
<http://protege.stanford.