Git Product home page Git Product logo

afm-miner's Introduction

Project Title: AFM Miner

Build Status

Directory Structure

There are three primary directories: data, images, and notebooks. Data supplies the example data required for unit tests, images and notebooks are directories used for prototyping and development. The directories: notes and numpy files will be discontinued at a later time but are for now home to deprecated development materials.

within afmMiner are two primary .py files. afmMiner.py contains all source code. afmGUI.py contains the code enabling the GUI and executes code within afmMiner.py

Usage Instructions

AfmMiner uses Random Forests, a kind of non-parametric supervised learning algorithm, to discover materials properties from atomic force microscopy (AFM) images. In particular, afmMiner can predict the photoluminesence of a material given some topographical and electrical AFM data. AfmMiner addresses a fundamental question: can we predict photoluminescence from things that are not diffraction limited, and allows the user to uncover relationships between topographical, electrical, and photographic measurements of their material.

afmMiner, what’s under the hood? afmMiner uses the sklearn ensemble module RandomForestRegressor to process sets of AFM images and predict non-diffraction limited spatial mapping of the material’s photoluminescence. This ensemble learner trains a number of classifying decision trees on the user’s provided training data (pixels representing the AFM measurements) and averages them to create the final model, example input images are shown below.

The afmMiner user has control over tree depth, number of trees, input images, and a final parameter, the “feature vector” that represents the array size of surrounding pixels that are used as inputs to predict the center pixel. This last option was implemented as a way to contextualize a given pixel with its neighbors and reduce the effect of noisey data.

afmMiner.selfCompare(): selfCompare trains and tests on the same material essentially removing material-specific artifacts that may arise between training and testing sets.

afmMiner.crossCompare(): crossCompare trains and tests on separate materials, given that the AFM input-types are the same.

GUI Design. The GUI uses tkinter to display the interface. The window allows users to input the depth of the trees, the number of trees in the forest, the size of the feature vector and the input images to train and test against. Based on the columns used for the inputs, the function will run either selfCompare or crossCompare and output the final prediction. As a result, the user can easily adjust the parameters to find the best model for the images. The images use ‘viridis’ color mapping to differentiate high and low pixel values.

afm-miner's People

Contributors

wesleybeckner avatar kongjy avatar

Watchers

James Cloos avatar  avatar

afm-miner's Issues

You need a .gitignore for python

I see lots of .pyc files in your repo. Using a .gitignore that is configured for python will filter these out from git actions and you can git rm the existing ones.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.