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
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
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
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: . 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
- Repositories: 1
- Profile: https://github.com/SnirMeiri
JOSS Publication
LCOI: Local crystalline orientation identifier using mask fitting implemented in MATLAB
Authors
Tags
Colloidal crystals Crystal analysis FIB-TEMGitHub 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
- EndBug/add-and-commit v9 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- openjournals/openjournals-draft-action master composite
