Code Monkey home page Code Monkey logo

gardengroupuo / organisms Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 3.0 5.14 MB

The Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similarity (Organisms) program is a genetic algorithm designed to globally optimise nanoclusters (also known as clusters or nanoparticles)

Home Page: https://organisms.readthedocs.io

License: GNU Affero General Public License v3.0

Python 88.69% Jupyter Notebook 11.31%
genetic-algorithm jupyter-binder predation-operator clusters fitness-operator nanoclusters nanoparticles university-of-otago otago-university common-neighbour-analysis

organisms's Introduction

The Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similarity (Organisms) Program: A Genetic Algorithm for Nanoclusters

Citation PyPI - Python Version PyPI Conda Documentation Colab Licence

Authors: Dr. Geoffrey R. Weal and Dr. Anna L. Garden (University of Otago, Dunedin, New Zealand)

Group page: https://blogs.otago.ac.nz/annagarden/

Page to cite with work from: Development of a Structural Comparison Method to Promote Exploration of the Potential Energy Surface in the Global Optimisation of Nanoclusters, Geoffrey R. Weal, Samantha M. McIntyre, and Anna L. Garden, J. Chem. Inf. Model., 2021, 61 (4), 1732โ€“1744, DOI: 10.1021/acs.jcim.0c01128

What is Organisms

The Otago Research Genetic Algorithm for Nanoclusters, Including Structural Methods and Similarity (Organisms) program is designed to perform a genetic algorithm global optimisation for nanoclusters. It has been designed with inspiration from the Birmingham Cluster Genetic Algorithm and the Birmingham Parallel Genetic Algorithm from the Roy Johnston Group (see J. B. A. Davis, A. Shayeghi, S. L. Horswell, R. L. Johnston, Nanoscale, 2015,7, 14032 (https://doi.org/10.1039/C5NR03774C or link to pdf here), R. L. Johnston,Dalton Trans., 2003, 4193โ€“4207 (https://doi.org/10.1039/B305686D or link to pdf here

Try Organisms before you Clone/Pip/Conda (on Google Colabs/Jupter Notebooks)!

If you are new to the Organisms program, it is recommended try it out by running Organisms live on our interactive Jupyter+Google Colabs page before you download it. On Google Colabs, you can play around with the Organisms program on the web. You do not need to install anything to try Organisms out on Google Colabs.

Click the Google Colabs button below to try Organisms out on the web!

Colab

Have fun!

What does Organisms have to offer to Nanocluster Global Optimisation

This program has been designed to learn about how to improve the efficiency of the genetic algorithm in locating the global minimum. This genetic algorithm implements various predation operators, fitness operators, and epoch methods. A structural comparison method based on the common neighbour analysis (CNA) has been implemented into a SCM-based predation operator and ''structure + energy'' fitness operator.

The SCM-based predation operator compares the structures of clusters together and excludes clusters from the population that are too similar to each other. This can be tuned to exclude clusters that are structurally very similar to each other, to exclude clusters that are structurally different but of the same motif, or set to a custom structural exclusion setting.

The ''structure + energy'' fitness operator is designed to include a portion of structural diversity into the fitness value as well as energy. The goal of this fitness operator is to guide the genetic algorithm around to unexplored areas of a cluster's potential energy surface.

This genetic algorithm has been designed with Atomic Simulation Environment (ASE, https://wiki.fysik.dtu.dk/ase/). with the use of ASE, clusters that are generated using the genetic algorithm are placed into databases that you can assess through the terminal or via a website. See more about how to the ASE database works in the link here.

The CNA has been implemented using ASAP3 (As Soon As Possible). See https://wiki.fysik.dtu.dk/asap for more information about ASAP3.

Installation

It is recommended that you install a release version of the Organisms program, as these release versions are tested to make sure they (hopefully) run properly before they are released. You can find out how to install a release version of Organisms program on the installation page of the Organisms documentation in the link below:

organisms.readthedocs.io/en/latest/Installation.html

This includes instructions on how to clone the latest releast version of Organisms from Github. Note that you can install Organisms through pip3 and conda.

Where can I find the documentation for Organisms

All the information about this program is found online at organisms.readthedocs.io/en/latest/. Click the button below to also see the documentation:

Documentation

About

Python PyPI - Python Version
Repositories GitHub release (latest by date) PyPI Conda
Documentation Documentation
Citation Citation
License Licence
Authors Dr. Geoffrey R. Weal, Dr. Anna L. Garden
Group Website https://blogs.otago.ac.nz/annagarden/

organisms's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

organisms's Issues

Use a function that has not been defined

In the file Cluster.py at line 205, there is energy = self.get_potential_energy(). However, the class Cluster does not have a function named get_potential_energy()

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.