Skip to content

Instantly share code, notes, and snippets.

View wflynny's full-sized avatar

Bill Flynn wflynny

View GitHub Profile
@wflynny
wflynny / stitch_harmony_export.py
Last active September 17, 2020 20:17
Stitch together tiles of a slide exported from PE Harmony
import re
from pathlib import Path
from xml.etree import ElementTree as ET
import numpy as np
from skimage import exposure
from skimage.io import imread, imsave, imshow
from skimage.filters import threshold_otsu, gaussian
@wflynny
wflynny / fancy_legend.py
Created December 17, 2020 20:43
Add annotation cluster numbers to UMAP plots
from matplotlib.text import Annotation
from matplotlib.legend_handler import HandlerBase
from matplotlib import patheffects
from matplotlib.colors import CSS4_COLORS, hex2color
class AnnotationHandler(HandlerBase):
def create_artists(self, legend, artist, xdescent, ydescent,
width, height, fontsize, trans):
a = Annotation(
artist.get_text(), [width/2, height/2],
@wflynny
wflynny / gist:ba14df9fe553fd3f1fa63b5c5606e8d3
Created February 2, 2021 21:59
cellphonedb chord plot
###################
# chord diagram
import matplotlib.pyplot as plt
from matplotlib.path import Path as mplPath
import matplotlib.patches as patches
import numpy as np
import pandas as pd
LW = 0.3
@wflynny
wflynny / loupe_generation.md
Last active October 3, 2021 17:13
Generate a 10x Genomics Loupe file with custom annotations and projections:
@wflynny
wflynny / gse_to_adata.py
Created May 12, 2021 14:51
Convert a GSE microarray to AnnData
import scanpy as sc
import pandas as pd
import GEOparse
def gse_to_adata(gse):
X = gse.pivot_samples("VALUE")
key = list(gse.gpls.keys())[0]
annotated = X.index.to_frame(index=False).merge(
gse.gpls[key].table[["ID", "Gene Symbol"]],
left_on="ID_REF", right_on="ID"