Skip to content

Instantly share code, notes, and snippets.

View SandyRogers's full-sized avatar

Sandy Rogers SandyRogers

View GitHub Profile
@SandyRogers
SandyRogers / mgnify-rocrate-preview-template.html.j2
Created April 14, 2023 15:39
Package SANNTIS annotations as RO-Crates for MGnify
<!DOCTYPE html>
<html>
<head>
<title>{{ crate.name or "New RO Crate" }}</title>
<meta name="keywords" content="RO Crate">
<style type="text/css">
html {
margin: 0;
padding: 0;
}
@SandyRogers
SandyRogers / fetch_paginated_mgnify_data.py
Last active March 22, 2022 10:24
Fetch paginated tabular data from MGnify, the EBI Metagenomics API. These are Python examples of how to fetch data from the https://jsonapi.org based endpoints. The API Browser is available at https://www.ebi.ac.uk/metagenomics/api
# Using common libraries.
#
# Dependencies:
# pandas jsonapi-client
# Install them from the command line, with e.g.
# $ pip install pandas jsonapi-client
from jsonapi_client import Session
import pandas as pd
category = "wellbeing"
seeds = ["stress", "engagement", "burnout"]
matcher = Matcher(nlp.vocab)
rule_patterns = [
[{"LEMMA": "-PRON-", "OP": "?"}]
+ [{"LEMMA": tok.lemma_} for tok in nlp(seed)]
for seed in seeds
]
@SandyRogers
SandyRogers / Dockerfile
Created March 17, 2018 17:50
A Dockerfile for SageMaker custom models using python/flask
# Start with an official python parent image
FROM python:3.6
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
# SageMaker requires this form of running (not RUN)
@SandyRogers
SandyRogers / app.py
Created March 17, 2018 17:48
Basic Flask skeleton for SageMaker Docker file
from flask import Flask, request, abort
@app.route('/ping', methods=['GET', 'POST'])
def ping():
return 'ping is pong'
@app.route('/invocations', methods=['POST'])
def invocation():
data = request.get_json()
if not data:
@SandyRogers
SandyRogers / similarity.py
Created March 17, 2018 17:34
Custom similarity model for spaCy, taking maximum token similarity between two documents
import numpy as np
class SimilarityModel(object):
def __init__(self, token_similarity_accumulator=np.max):
self._accumulator = token_similarity_accumulator
def __call__(self, doc):
doc.user_hooks[‘similarity’] = self.doc_span_similarity
doc.user_span_hooks[‘similarity’] = self.doc_span_similarity
doc.user_token_hooks[‘similarity’] = self.token_similarity