Source code for nidmviewer.sparql

import rdflib
import rdfextras
rdfextras.registerplugins()
import sys
if sys.version_info[0] < 3:
    from StringIO import StringIO
else:
    from io import StringIO
from pandas import DataFrame

'''
sparql.py: part of the nidmviewer package
Sparql queries

'''

[docs]def do_query(ttl_file,query,rdf_format="turtle",serialize_format="csv",output_df=True): g = rdflib.Graph() g.parse(ttl_file,format=rdf_format) result = g.query(query) if result is None: print "No results matching query." else: print "Found results matching query." result = result.serialize(format=serialize_format) if output_df == True: result = StringIO(result) return DataFrame.from_csv(result,sep=",") return result
[docs]def get_coordinates(ttl_file): query = """ SELECT DISTINCT ?name ?coordinate ?z_score ?peak_name ?pvalue_uncorrected WHERE {?coord a nidm:NIDM_0000015 ; rdfs:label ?name ; nidm:NIDM_0000086 ?coordinate . ?peak prov:atLocation ?coord ; nidm:NIDM_0000092 ?z_score ; rdfs:label ?peak_name ; nidm:NIDM_0000116 ?pvalue_uncorrected .} ORDER BY ?name """ return do_query(ttl_file,query)
[docs]def get_coordinates_and_maps(ttl_file): query = """ PREFIX nidm: <http://purl.org/nidash/nidm#> PREFIX prov: <http://www.w3.org/ns/prov#> prefix nfo: <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> prefix spm: <http://purl.org/nidash/spm#> prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix peak: <http://purl.org/nidash/nidm#NIDM_0000062> prefix significant_cluster: <http://purl.org/nidash/nidm#NIDM_0000070> prefix coordinate: <http://purl.org/nidash/nidm#NIDM_0000086> prefix equivalent_zstatistic: <http://purl.org/nidash/nidm#NIDM_0000092> prefix pvalue_fwer: <http://purl.org/nidash/nidm#NIDM_0000115> prefix pvalue_uncorrected: <http://purl.org/nidash/nidm#NIDM_0000116> prefix statistic_map: <http://purl.org/nidash/nidm#NIDM_0000076> prefix statistic_type: <http://purl.org/nidash/nidm#NIDM_0000123> prefix nidm_ExcursionSetMap: <http://purl.org/nidash/nidm#NIDM_0000025> SELECT DISTINCT ?statmap ?excsetmap_location ?statmap_type ?z_score ?pvalue_uncorrected ?coordinate_id ?coord_name ?coordinate ?exc_set WHERE { ?statmap a statistic_map: ; statistic_type: ?statmap_type . ?exc_set a nidm_ExcursionSetMap: ; prov:wasGeneratedBy/prov:used ?statmap ; prov:atLocation ?excsetmap_location . OPTIONAL { ?peak prov:wasDerivedFrom/prov:wasDerivedFrom/prov:wasGeneratedBy/prov:used ?statmap ; prov:atLocation ?coord ; equivalent_zstatistic: ?z_score ; pvalue_uncorrected: ?pvalue_uncorrected ; prov:atLocation ?coordinate_id . ?coordinate_id rdfs:label ?coord_name ; coordinate: ?coordinate . } } """ return do_query(ttl_file,query)