Skip to content

Instantly share code, notes, and snippets.

View brisvag's full-sized avatar

Lorenzo Gaifas brisvag

View GitHub Profile
@brisvag
brisvag / triangle_raster.py
Created March 6, 2024 14:48
membranorama-like with rastering
#!/usr/bin/env python3
import numpy as np
import pandas as pd
import napari
import mrcfile
from morphosamplers.sampler import (
generate_1d_grid,
place_sampling_grids,
sample_volume_at_coordinates,
@brisvag
brisvag / recarray_to_dataframe.py
Last active February 23, 2024 12:51
Utilities to easily go to and from nested recarrays DataFrames without sacrificing performance
import numpy as np
import pandas as pd
def rec2df(arr):
"""Unpack nested recarray into a flat dataframe."""
def _unpack_recarray(arr, name=None):
names = arr.dtype.names
dct = {}
@brisvag
brisvag / euler_playground.py
Last active February 19, 2024 07:54
Euler angle playground widget for napari
#!/usr/bin/env python3
import requests
from io import StringIO
from functools import lru_cache
import numpy as np
from scipy.spatial.transform import Rotation, Slerp
import napari
from napari.settings import get_settings
@brisvag
brisvag / torch_tensor_info.py
Created September 14, 2023 15:50
Print info about allocated tensors in outer scopes
import gc
import inspect
import torch
def _print_tensors(depth=2):
"""Print info about tensor variables locally and nonlocally."""
print('='*80)
for obj in gc.get_objects():
frame = inspect.currentframe()
frames = []
@brisvag
brisvag / star.sublime-syntax
Created August 3, 2023 21:49
starfile highlight in sublime-text syntax (usable by bat)
%YAML 1.2
---
name: STAR
file_extensions: [star]
scope: source.star
contexts:
main:
- meta_content_scope: meta.main
- match: ^loop_
@brisvag
brisvag / i3_bindings.py
Created July 13, 2020 14:56
Simple script for showing used/available i3wm bindings
#!/usr/bin/env python3
import re
import sys
import os
i3conf = os.path.expandvars("$XDG_CONFIG_HOME/i3/config")
def get_bindings():