Skip to content

Instantly share code, notes, and snippets.

@alisterburt
alisterburt / simulate_tilt_series.py
Last active December 9, 2022 21:53
super basic tilt-series simulator
import os
from pathlib import Path
from typing import Tuple, Optional
import einops
import fast_histogram
import mmdf
import mrcfile
import numpy as np
from scipy.stats import special_ortho_group
@alisterburt
alisterburt / fsc.py
Created December 9, 2022 10:32
FSC (needs to be checked)
from pathlib import Path
import einops
import mrcfile
import numpy as np
import torch
import typer
cli = typer.Typer(add_completion=False)
@alisterburt
alisterburt / model2mrc.py
Last active December 9, 2022 10:23
molecular model to cubic mrc volume
import os
from pathlib import Path
import einops
import mmdf
import mrcfile
import numpy as np
import typer
cli = typer.Typer(add_completion=False)
@alisterburt
alisterburt / symmetrise_rfft.ipynb
Created December 4, 2022 21:04
symmetrise rfft
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@alisterburt
alisterburt / phase_shift.ipynb
Created November 28, 2022 11:06
phase shift dft
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@alisterburt
alisterburt / realign_classes.py
Last active December 3, 2022 08:30
transform classes in a rln3.1 STAR file based on manipulations in ChimeraX
from typing import Tuple
import starfile
import numpy as np
import einops
from scipy.spatial.transform import Rotation as R
CHIMERAX_VIEW_MATRIX_OUTPUT_FILE = 'chimerax/view_matrix_output_origin_at_rotation_center.txt'
PARTICLE_STAR_FILE = 'class3d_dir/run_it025_data.star'
@alisterburt
alisterburt / ricardo.py
Created November 18, 2022 14:18
rln41 particle visualisation for ricardo
from enum import Enum
import napari
import numpy as np
import pandas as pd
import starfile
from magicgui import magicgui
from scipy.spatial.transform import Rotation as R
PARTICLE_STAR_FILE = 'ricardo_data.star'
@alisterburt
alisterburt / zhen.py
Created October 27, 2022 09:57
projection matrix generation from AreTomo aln files for Zhen
import pandas as pd
import einops
import numpy as np
def Rx(angles_degrees: np.ndarray) -> np.ndarray:
"""Affine matrix for a rotation around the X-axis."""
angles_degrees = np.asarray(angles_degrees).reshape(-1)
c = np.cos(np.deg2rad(angles_degrees))
s = np.sin(np.deg2rad(angles_degrees))
@alisterburt
alisterburt / wbp-napari-demo.py
Created October 21, 2022 18:38
Weighted backproject demo standalone script
from typing import Sequence, Tuple, Literal
import einops
import mrcfile
import napari
from magicgui import magicgui
from napari.types import ImageData
import numpy as np
import torch
from torch.nn import functional as F
@alisterburt
alisterburt / project_onto_xy.py
Created October 7, 2022 17:20
projection of vector onto xy plane of an oriented point
import numpy as np
from scipy.spatial.transform import Rotation as R
# set up initial orientations of two particles
p0 = np.eye(3) # oriented same as basis vectors of coord system
p1 = R.from_euler(seq='XYZ', angles=[10, 10, 60], degrees=True) # slightly rotated out of plane, in plane quite different
# take y vector from p0, project onto y and y from p1
# take y vector because is easier for construction of x-vector with the cross product
p0_y = p0[:, 1]