LCOI

LCOI: Local crystalline orientation identifier using mask fitting implemented in MATLAB - Published in JOSS (2025)

https://github.com/snirmeiri/lcoi_local_crystalline_orientation_identifier

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation

Repository

MATLAB based application for colloidal crystal's directionality detection and analysis. Applies to microscope images of the crystal's cross-section. Able to detect triangular, rectangular and hexagonal local order.

Basic Info
  • Host: GitHub
  • Owner: SnirMeiri
  • License: other
  • Language: MATLAB
  • Default Branch: main
  • Homepage:
  • Size: 47.6 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created over 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License

README.md

LCOI - Local crystalline orientation identifier using mask fitting implemented in MATLAB.

Summary

LCOI is designed to extract orientation information about local crystalline order from microscopy images such as transmission electron microscopy (TEM). Specifically, the software is able to identify triangular, rectangular and hexagonal order within planar cross-sections of colloidal crystals. The orientation identification is based on mask fitting to the identified particles. The software, implemented as a MATLAB application, allows the user various tools including basic image processing, particles identification, mask creation and fitting, orientations analysis and strain measurements in the crystal.

Statement of need

Detection and analysis of the orientation of local crystalline order arises in different fields such as chemistry, materials science and condensed matter physics. In particular, such analysis is central for studying crystal melting, jamming, crystal twinning and crystal strains, among others. The standard tool used for such analysis is bond-orientational order parameter. It has various shortcomings, including high sensitivity to defects and lack of robustness to noise, where small location shifts can lead to abrupt jumps in the identified directionality. While some works focus on correcting the definition of the order parameter, we propose a different approach based on optimal fitting of a mask of a specific shape to the detected particles. Within this approach, the resulting directionality is continuous and robust to local noise. The accuracy in mask orientation detection is primarily limited by the accuracy of the particle location detection.

License

This project is licensed under the NPOSL-3.0 License.

Citation

This work was published in: DOI. If you use this software in your research please cite it.

Overview

The main objective of the application is to identify the orientation of the local crystalline order from crystal imaging data. The following figure summarizes the general flow of the identification process:

After loading the image and optional contrast adjustment the user should first apply particle detection or upload pre-identified data. Then, the user creates a mask (hull) by manually choosing particles of the desired symmetry and the mask is symmetrized by the software. The options are triangular, rectangular and hexagonal, where the last two can either have 2-fold symmetry or 4-fold and 6-fold, respectively. Next, the local orientation of the optimal fits of the created mask to the identified particles is detected and color-coded. A more detailed scheme of the orientation detection is:

After particle identification and mask creation the following step is particles pairs identification by considering all particles below a threshold set by considering the created mask. Then, a fitting mask is located as if each pair corresponds to the edge of the mask. These initial guesses are screened for the sum of the distances to the closest particles to each mask's vertex, with distance cutoff. Next, for the screened masks’ location and orientation, the particle associated with each mask’s vertex is identified and the optimal location and orientation is computed analytically. For more details see the attached file: Mask location and rotation optimization. Finally, the mask can be adjusted using all found fits by takings the means of the relevant distances and the updated optimal location and orientation are recomputed.

For more detailed information see the user guide.

Examples

There are three example images for analysis in the folder examples, along with suggested parameters for each.

The example image for the triangular local order is a cropped version of an image from the Wikipedia page of "Colloidal crystal" (as of 23/07/2024), uploaded by Zephyris.

The example images for the rectangular and 2-fold hexagonal local order are adopted with permission from experimental data produced in the research group of Prof. Rafal Klajn.

Installation

The LCOI_CrystalAnalysis application can be used in one of the following ways:

Option 1 – Installable App

  • Download the file: LCOI_CrystalAnalysis.mlappinstall
  • Open the file in MATLAB. This will install the app and make it accessible from the Apps tab in the MATLAB interface.

Option 2 – Run Without Installation

  • Download the following files: LCOICrystalAnalysisexported.m and all required external function files (.m files used by the app).
  • Make sure these files are located in the same directory or added to your MATLAB path.
  • Launch the app from the MATLAB Command Window using: app = LCOICrystalAnalysisexported;

Option 3 – Run Via AppDesigner

For making adjustments to the code one may: - Download the files: LCOI_CrystalAnalysis.mlapp and all required external function files (.m files used by the app). - Make sure these files are located in the same directory or added to your MATLAB path. - Open the app using the MATLAB AppDesigner.

The application was developed using the 2021b MATLAB version and might not be compatible with earlier versions. The application uses the Image Processing toolbox and the Parallel Computation toolbox.

Owner

  • Name: Snir Meiri
  • Login: SnirMeiri
  • Kind: user
  • Company: Weizmann institute

JOSS Publication

LCOI: Local crystalline orientation identifier using mask fitting implemented in MATLAB
Published
May 23, 2025
Volume 10, Issue 109, Page 7748
Authors
Snir Meiri ORCID
Department of Physics of Complex Systems, Weizmann Institute of Science, Rehovot 76100, Israel
Efi Efrati ORCID
Department of Physics of Complex Systems, Weizmann Institute of Science, Rehovot 76100, Israel
Editor
Rachel Kurchin ORCID
Tags
Colloidal crystals Crystal analysis FIB-TEM

GitHub Events

Total
  • Release event: 1
  • Issues event: 25
  • Issue comment event: 16
  • Push event: 112
  • Pull request review event: 1
  • Pull request event: 4
  • Fork event: 1
Last Year
  • Release event: 1
  • Issues event: 25
  • Issue comment event: 16
  • Push event: 112
  • Pull request review event: 1
  • Pull request event: 4
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 13
  • Total pull requests: 4
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 1.46
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 4
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 1.46
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • aazocar (7)
  • ThFriedrich (6)
Pull Request Authors
  • ThFriedrich (4)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/draft-pdf.yml actions
  • EndBug/add-and-commit v9 composite
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/simple-test.yml actions