Skip to content

Instantly share code, notes, and snippets.

View tlancon's full-sized avatar

Trevor Lancon tlancon

View GitHub Profile
@tlancon
tlancon / AutoAdjustOrthoSliceColormap.tcl
Created May 2, 2018 12:45
Auto-adjusts the colormap for Avizo/Amira Ortho Slice modules
# 1. Copy/paste this into Avizo/Amira console
# 2. Select one or more Ortho Slices to auto-adjust and press F3
# Note: Can change 'onKeyFX' to the desired keybinding
proc onKeyF3 {} {
foreach slice [all -selected HxOrthoSlice] {
$slice colormap adjustRange; $slice fire
}
}
@tlancon
tlancon / CompareTwoDatasets.tcl
Last active June 11, 2018 14:36
Compares to selected datasets in Amira/Avizo
# 1. Copy/paste this into Avizo/Amira console
# 2. Select two datasets to compare and press Shift+F3
# Note: Can change 'onKeyFX' to the desired keybinding
# Note: Requires Avizo (not Avizo Lite) or the XImagePAQ extension for Amira
proc onKeyShiftF3 {} {
if {[llength [all -selected]] != 2} {
echo "Please select two data objects."
} else {
set before [lindex [all -selected] 0]
set after [lindex [all -selected] 1]
@tlancon
tlancon / LabelAnalysisToDataFrame.py
Created June 11, 2018 17:53
Converts HxLabelAnalysis or HxSpreadSheet objects to Pandas data frames in Amira/Avizo.
# Copy/paste into the Avizo/Amira Python console.
# Alternatively, save to a file, add that file to your path, and import.
# See docstring for usage.
def labelanalysis_to_dataframe(tablelike_object):
"""
Converts a tablelike object (HxSpreadSheet, HxLabelAnalysis, or anything with
.all_interfaces.HxSpreadSheetInterface) to a Pandas data frame with the column names intact.
You must use the object handle, not just the name of the object! For example,
to convert a HxLabelAnalysis data object named "chocolate-bar.Label-Analysis":
@tlancon
tlancon / MultipleChoice.py
Created June 24, 2018 18:54
Compares a user's input to a list of allowable reponses and returns the keyword.
def parse_response(multiple_choice, prompt=None):
"""
Splits a user's input into individual words and searches a list
of allowable responses for a unique match, then returns the word
that matches one of the options.
List comprehension syntax explained for my own reference:
1. for i in response.split() - breaks every word of response
into individual strings
2. if i in multiple_choice - searches for ALL recognized words
@tlancon
tlancon / GetLabelAnalysisCellContents.py
Created July 20, 2018 16:02
Retrieves the contents of a specific cell from a tablelike-object (HxLabelAnalysis, HxSpreadSheet, etc.) in Amira/Avizo.
# Copy/paste into the Avizo/Amira Python console.
# Alternatively, save to a file, add that file to your path, and import.
# See docstring for usage.
def get_cell_contents(tablelike_object,row,column,table=0):
"""
Retrieves contents of cell i,j in a table through
HxSpreadSheetInterface.
You must use the object handle, not just the name of the object! For example,
to get the contents of row 4 from column 5 of a HxLabelAnalysis data object
@tlancon
tlancon / us_states_dict.py
Last active May 13, 2022 08:58
Dictionary of All US States and their Abbreviations
# Inspired by https://gist.github.com/JeffPaine/3083347
# Access full state names using us_states.keys()
# Access all state abbreviations using us_states.values()
us_states = {
'Alabama': 'AL',
'Alaska': 'AK',
'Arizona': 'AZ',
'Arkansas': 'AR',
'California': 'CA',
'Colorado': 'CO',
@tlancon
tlancon / sarcastify.py
Last active July 2, 2019 17:01
Make any string sarcastic!
def sarcastify(my_string):
"""
Returns a sarcastic version of the provided string.
Example:
>>> sarcastify('Do you really think that\'s a good idea?')
"dO YoU ReAlLy tHiNk tHaT'S A GoOd iDeA?"
Useful for arguing online or replying all to that email that accidentally
went to the whole company.
@tlancon
tlancon / napari_count_tfpn.py
Last active March 24, 2022 16:01
Call this function to launch a napari window with a given image to begin annotating true positives, false positives, and false negatives on the image with points layers.
import os
import napari
from skimage.io import imread, imsave
def napari_count_tfpn(screenshot_file, point_size=20, save_screenshot=True):
"""
Opens a napari window and initializes three points layers:
- "True Positives" with green points
- "False Positives" with red points
- "False Negatives" with yellow points
@tlancon
tlancon / distance_between_points.py
Created May 17, 2020 04:19
Calculate the distance between X, Y points saved arrays using NumPy's diff() function without a loop.
import numpy as np
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([4, 5, 6, 7, 8, 9])
displacement = np.sqrt(np.diff(x, prepend=x[0])**2 + np.diff(y, prepend=y[0])**2)
@tlancon
tlancon / InspectLine.py
Created May 28, 2020 21:23
Inspect labeled objects in an image touching either a horizontal or vertical center line. Information is printed to the console.
import os
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
from skimage.measure import regionprops
# ----------------------------------------------------------
# Input
wdir = os.path.dirname('<DIRECTORY_CONTAINING_IMAGES>')
fname = '<LABELED_IMAGE_NAME>.tif'