For full details of use see article and supplementary information found here: http://pubs.acs.org/doi/full/10.1021/acsnano.5b05968
BeanCounter.m is the main script responsible for analyzing EM images. Users can pass images into this script through a graphical user interface (GUI) and the script will output a single excel sheet containing particle statistics. If the user selects an entire directory for analysis, BeanCounter.m will aggregate each individual excel sheet into a single excel document. Users can specify the output location of these excel files using the GUI. The excel sheet contains: minor edge length, minor edge length error, aspect ratio, aspect ratio error, corner rounding, corner rounding error, goodness of fit, area, perimeter, and the shape classification or identifier. All errors are determined by the confidence interval of the fit. The shape identifier is a number that corresponds to a particular shape (i.e. 1: rod, 2: circle, 3: triangle, 4: square, 6: hexagon). The GUI has additional options for specifying output images and processing parameters.
Copyright (c) 2015, Chad A. Mirkin, Christine R. Laramy, Keith A. Brown, and Matthew O'Brien.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Scientific works derived from this code must include a citation to the paper where it was introduced:
M. N. O'Brien, M. R. Jones, K. A. Brown, C. A. Mirkin. Universal Noble Metal Nanoparticle Seeds Realized Through Iterative Reductive Growth and Oxidative Dissolution Reactions. J. Am. Chem. Soc. 2014, 136, 7603 doi: 10.1021/ja503509k
High-Throughput, Algorithmic Determination of Nanoparticle Structure from Electron Microscopy Images
Christine R. Laramy, Keith A. Brown, Matthew N. O’Brien, and Chad. A. Mirkin ACS Nano Article ASAP
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
* Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR ONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Chad Mirkin (2021). High-Throughput, Algorithmic Determination of Nanoparticle Structure from Electron Microscopy Images (https://www.mathworks.com/matlabcentral/fileexchange/54101-high-throughput-algorithmic-determination-of-nanoparticle-structure-from-electron-microscopy-images), MATLAB Central File Exchange. Retrieved .
Thank you for the software! Unfortunately, I am having difficulty determining which errorbarxy.m and cell2csv.m to use. Is it possible to provide some links?
Thank you for noting this. The Mac GUI has now been updated.
Thanks! Turns out the Mac file is missing the update, but the PC file was updated. Thanks again for this script.
Yes, the threshold can be set in the GUI window (an update that was made subsequent to the publication). There is a box labeled "# of pixels thresh." This sets the limit for the number of pixels a closed object must have to be considered a particle. The solidity threshold (labeled "Solidity thresh" in the GUI) can also be helpful. For a more detailed explanation of solidity see the SI of the paper or Matlab's description (http://www.mathworks.com/help/images/ref/regionprops.html).
Thank you, turns out the error was due to the way my file/folders were organized.
In the Supporting Information of the paper it says: "(Area, average intensity and solidity thresholds can be modified within the BeanCounter.m file just after image processing steps)"
I've noticed the commented High/Low Mag options in lines 158 and 237, but is there a way to specifically threshold the size of closed objects to remove background noise? I'm finding that the program is picking up on a lot of the noise and labelling them as rods.
This sort of error can also result from incomplete or improper GUI inputs. Matlab requires all file names and folder names to be formatted in a particular way. For example, neither file nor folder names should include spaces. The GUI requires an input folder or file name as well as a folder to save all of the analysis files.
Thank you for this script, however I get the exact same error as Søren Roesgaard Nielsen when trying to open the test images through the GUI. I'm running the software through a Mac OS X 10.8.5.
I'm using MATLAB_R2014b, could that be the issue?
Thank you for the interesting script and article.
I am working with a linux system and therefore I am really interested in a PC friendly version too. As I tried to update the script to a pc/unix friendly version, I found another required product:
Image Processing Toolbox for imclearborder
Are you running the software through a PC? We are working on a PC friendly version of this software and plan to upload it soon.
Thank you for the test images. I tried redownloading the files and starting from the beginning. When I open the test images through the gui I get the following error:
Any idea what can be the problem?
Two test images are now included in the Zip file with the software package. Thank you for your feedback.
Interesting work, however I have some trouble getting it to work. Is it possible that you could supply some test files so that I can see it work?
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!