Skip to content

Changelog

Kartik Ayyer edited this page Feb 25, 2020 · 4 revisions

Version 1.2.0 (2020-02-25)

Package changes:

  • Compilation now using CMake
  • Added HDF5 formats for detector, output and data files. The old file formats will still work. Additionally, if HDF5 is not available, the program will revert to the old formats.
  • Reconstruction directories made by dragonfly_init now include all programs and utilities

EMC code changes:

  • Probabilities stored as sparse array now, enabling much larger reconstructions. One can also optionally save the probabilities after every iteration.
  • Default empirically estimated signal-dependent frame-by-frame beta values used if no initial value is specified. This is the recommended behaviour now. The beta_schedule parameter acts on absolute iteration number.
  • Added orientation refinement when continuing a reconstruction by increasing num_div. This is implemented by giving two numbers for num_div in the configuration file, num_div = <fine> <coarse>, where <coarse> should be the value used in the previous iteration.
  • [Beta] Can now incorporate a constant background intensity with variable fluence in reconstruction (algorithm is similar to the one in J. Appl. Cryst. (2017). 50, 985-993)

GUI changes

  • autoplot now connects to frameviewer in multi-mode reconstructions to show which frames went into which mode. This is especially useful in initial 2D classification.
  • Added option to centro-symmetrize frame to fill in detector gaps. Of course, at high angles, patterns do not have inversion symmetry, but this makes things easier at small angles.

Version 1.1.1 (2019-01-02)

Changes

  • Made python code 2/3 and PyQt4/5 agnostic
  • Cleaned up python code using the help of pylint
  • Added cython bindings in pyemc/ folder
  • Added unit tests (pyemc/unit.py) and make test option to Makefile
  • Styled GUIs with CSS

Version 1.1.0 (2017-11-06)

Changes

  • Added classifier GUI which can be used to classify patterns manually and using a few different ML methods.
  • Can now support multiple detectors using the in_detector_list config option.
  • Significant overhaul of python codebase. All GUIs now using PyQt rather than TkInter.
  • Added Anaconda yml file to resolve additional dependencies.
  • EMC C code refactored. Added some abstraction (structs and additional files) for the benefit of extensibility. Also, code reusability significantly improved since C utilities share a lot of code with main EMC code.

Version 1.0.4 (2017-04-02)

New features

  • emc: Frame blacklisting can be combined with even_only and odd_only selection
  • compare: Fixed bug
  • make_data: Can generate data from a given quaternion file
  • Added config_amo86615.ini and mask_pnccd_back_260_257.byt to go with it
  • Added conversion utilities cheetatodet.py and psanatodet.py
  • Added py_utils readdet.py, reademc.py and slices.py

Emergency Bugfixes

  • emc now parses [parameters] section of config file
  • h5toemc.py now converts data when there are 1 or 2 frames in a 3D dataset

Version 1.0.3 (2017-01-31)

Changes

  • Unified h5toemc.py converter
  • Fixed output_folder bug in default config files
  • emc can do icosahedral symmetrization after every iteration if emc:::sym_icosahedral = 1 option is given
  • emc saves frame-by-frame likelihoods in addition to the mean recorded in the log file. make_data can also save likelihoods if the make_data:::out_likelihood_file option is given.
  • Better support for non-standard locations for the GSL library
  • Better support for the ewald_rad options while doing simulations
  • emc creates sub-folders in output_folder if they do not already exist
  • autoplot.py can be used to show a specific file using the -f command line option
  • Removed extra 1W8X pdb

Emergency Bugfix

  • Fixed size mismatch between make_data.c and make_intensities.py

Version 1.0.2 (2016-08-30)

Changes

  • Default way to use PDB is now with the PDB code instead of a file path. The program will fetch a PDB from rcsb.org.
  • frameviewer.py can now view just the bad frames if there is a blacklist file in the config
  • Warn users if oversampling ratio is greater than 12
  • Makefile now easy to fix for OSX
  • Added some spaces and newlines in utilities writing to recon.log

File-wise changes

  • gitignore
    • Ignore reconstruction folders
    • Ignore PDB files in aux folder
  • Makefile
    • Made it easy to fix for OSX
  • config.ini, sample_configs
    • Added link to configuration wiki page
  • config.ini, sample_configs, make_densities, process_pdb
    • Set PDB code as default option
  • init_new_recon
    • Added boilerplate message referring users to help
  • autoplot
    • Fixed bug in layer slider
  • h5toemc_spi2, h5toemc_spigijs, make_detector, run_emc, sim_setup, make_densities, make_intensities
    • Clearer logging
  • make_detector, frameviewer, read_config, emc
    • qscale renamed to ewald_rad
  • make_intensities
    • Warn users if oversampling ratio is greater than 12
  • frameviewer
    • Added support for parsing blacklist frame
  • emc
    • Removed size option. It is now calculated from qscale

Version 1.0.1 (2016-08-16)

Major Changes:

  • utils/compare: New utility added to compare two reconstructions. It rotates the second one to maximize the global CC with the first and then generates a CC vs radius text file
  • utils/frameviewer now shows assembled images (at least when the detector is in a single plane). Also fixed minor bug in error message

Minor Changes:

  • Added ls and ls .. commands in emc to avoid stupid issues on NFS servers i.e. at CFEL and at LCLS
  • Made quat.c independent so it can now be called by other executables.
  • h5toemc_spi now using updated EMC_writer class with one less argument
  • autoplot.py now reads output_folder and log_file from the config file. Non-config.ini config file can be passed as an argument. This means one can now support multiple independent reconstructions in the same folder (useful for doing half dataset reconstructions)
  • emc now takes new argument, selection, which can have two values, odd_only and even_only which use only half the frames