Skip to content

Commit

Permalink
Merge pull request #5 from EuanPyle/fix_incompatibility
Browse files Browse the repository at this point in the history
Fix optics table issues
  • Loading branch information
EuanPyle authored Nov 17, 2023
2 parents 76c6a39 + a6ad229 commit ba8c7db
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/relion2dynamo/relion2dynamo.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ def relion2dynamo_cli(

# Read STAR file
relion_star = starfile.read(relion_star_file)
relion_paricles = None
relion_optics = None

# If exists, remove optics table
if isinstance(relion_star,OrderedDict):
Expand All @@ -38,18 +40,25 @@ def relion2dynamo_cli(
relion_optics = pd.DataFrame.from_dict(relion_star['optics'])
except KeyError:
raise RuntimeError("Cannot find data_particles or data_optics in star file")

else:
relion_particles = relion_star

# Initialise empty dict for dynamo
dynamo_data = {}

# Get XYZ positions and put into data
unbinned_pixel_size = relion_optics['rlnTomoTiltSeriesPixelSize'].values[0]

for axis in ('x', 'y', 'z'):
relion_coordinate_heading = 'rlnCoordinate' + axis.upper()
relion_shift_heading = 'rlnOrigin' + axis.upper() + 'Angst'
relion_shift = relion_particles[relion_shift_heading] / unbinned_pixel_size
dynamo_data[axis] = relion_particles[relion_coordinate_heading] - relion_shift
if 'rlnOriginXAngst' in relion_particles.columns:
if relion_optics is not None:
unbinned_pixel_size = relion_optics['rlnTomoTiltSeriesPixelSize'].values[0]
else:
unbinned_pixel_size = relion_particles['rlnTomoTiltSeriesPixelSize'].values[0]
relion_shift_heading = 'rlnOrigin' + axis.upper() + 'Angst'
relion_shift = relion_particles[relion_shift_heading] / unbinned_pixel_size
dynamo_data[axis] = relion_particles[relion_coordinate_heading] - relion_shift
else:
dynamo_data[axis] = relion_particles[relion_coordinate_heading]

# Get euler angles and convert to dynamo convention (only if eulers present in STAR file)
if 'rlnAngleRot' in relion_particles.columns:
Expand Down

0 comments on commit ba8c7db

Please sign in to comment.