NanoparticleAtomCounter


NameNanoparticleAtomCounter JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/szilvasi-group/NanoparticleAtomCounter#readme
SummaryEstimates atom counts in monometallic nanoparticles given radius and contact angle
upload_time2025-08-11 17:39:34
maintainerNone
docs_urlNone
authorGbolagade Olajide, Tibor Szilvasi
requires_python<3.15,>=3.10
licenseMIT
keywords nanoparticle tem electron microscopy active site catalyst
VCS
bugtrack_url
requirements numpy pandas streamlit openpyxl xlrd
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Nanoparticle Atom Counter
=========================

Treating a supported nanoparticle as a spherical cap, NanoparticleAtomCounter rapidly estimates the number of **Total**, **Surface**, **Perimeter**, and **Interfacial** atoms (see below).
Only two inputs are mandatory: the radius and contact angle, readily obtainable from Transmission Electron Microscopy (TEM) images.



.. figure:: https://raw.githubusercontent.com/giolajide/NanoparticleAtomCounter/main/Nanoparticle_Legend.png 
   :width: 450
   :alt: Atom types discriminated
   :align: center



Can be used on the web app_ or on a command line.




Requirements
------------

* numpy>=1.20,<2.3
* pandas>=1.4
* streamlit>=1.4,<2
* openpyxl>=3.1.0
* xlrd>=2.0.1


For testing, these are also required

* pytest>=8,<9
* ase>=3.22.0,<3.25
* tqdm<=4.67.1
* joblib<=1.5.1
* ascii-colors



Installation
------------

First create and activate a new environment::

    mamba create --name env_name "python>=3.10,<3.15"
    mamba activate env_name

To install the latest version::

    pip install NanoparticleAtomCounter
 

Alternatively::

    git clone git@github.com:szilvasi-group/NanoparticleAtomCounter.git
    cd NanoparticleAtomCounter/
    pip install -e .

To be able to run tests::

    pip install NanoparticleAtomCounter[test]


Usage
-------

**1) Prepare your input CSV**

Upload a ``.csv`` with these headers:

::

    r (A), R (A), Theta, Element, Interface Facet, Surface Facet

Definitions:

- ``r (A)`` = footprint radius (in Angstrom); ``R (A)`` = radius of curvature (in Angstrom)

**r vs R**

========== ==========
|acute|    |obtuse|
========== ==========

.. |acute| image:: https://raw.githubusercontent.com/giolajide/nanoparticleatomcounter/main/Acute_1.png
   :width: 340
   :alt: Acute theta

.. |obtuse| image:: https://raw.githubusercontent.com/giolajide/nanoparticleatomcounter/main/Obtuse_1.png
   :width: 340
   :alt: Obtuse theta


- Provide either ``r (A)`` or ``R (A)`` (if both are present, ``R (A)`` is ignored).
- ``Theta`` = contact angle (in degrees)
- ``Element`` = chemical symbol of the element that comprises the nanoparticle, e.g. ``Cr``
- ``Interface Facet`` and ``Surface Facet`` are OPTIONAL; leave blank if unknown.
    - ``Interface Facet`` = facet at the nanoparticle-support interface, e.g. ``(1,1,1)``
    - ``Surface Facet`` = dominant facet at the nanoparticle-gas/vacuum interface, e.g. ``(1,0,0)``

- Here's a sample input file_


**2) Use the web app**

Upload your input file and download the output.

OR


**2) Use the command line**

::

    nanoparticle-atom-count -i input_file.csv -o output_file.csv


Testing
-------

If you have it installed with the tests, then run the following test and please let me know if there are any errors::

    atom-count-test



Contact
-------

Any problems or questions?

* Email me at giolajide@crimson.ua.edu
* Or raise an issue right here_




.. _app: https://nanoparticle-atom-counting.streamlit.app
.. _here: https://github.com/szilvasi-group/NanoparticleAtomCounter/issues
.. _file: https://github.com/giolajide/NanoparticleAtomCounter/blob/main/sample_input.csv


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/szilvasi-group/NanoparticleAtomCounter#readme",
    "name": "NanoparticleAtomCounter",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.15,>=3.10",
    "maintainer_email": null,
    "keywords": "nanoparticle, tem, electron microscopy, active site, catalyst",
    "author": "Gbolagade Olajide, Tibor Szilvasi",
    "author_email": "giolajide@crimson.ua.edu, tszilvasi@crimson.ua.edu",
    "download_url": "https://files.pythonhosted.org/packages/cf/eb/01ab411a3987f066496202855c34fb514f3cf1da7926ccc98937b2d5d5d1/nanoparticleatomcounter-0.1.4.tar.gz",
    "platform": null,
    "description": "Nanoparticle Atom Counter\n=========================\n\nTreating a supported nanoparticle as a spherical cap, NanoparticleAtomCounter rapidly estimates the number of **Total**, **Surface**, **Perimeter**, and **Interfacial** atoms (see below).\nOnly two inputs are mandatory: the radius and contact angle, readily obtainable from Transmission Electron Microscopy (TEM) images.\n\n\n\n.. figure:: https://raw.githubusercontent.com/giolajide/NanoparticleAtomCounter/main/Nanoparticle_Legend.png \n   :width: 450\n   :alt: Atom types discriminated\n   :align: center\n\n\n\nCan be used on the web app_ or on a command line.\n\n\n\n\nRequirements\n------------\n\n* numpy>=1.20,<2.3\n* pandas>=1.4\n* streamlit>=1.4,<2\n* openpyxl>=3.1.0\n* xlrd>=2.0.1\n\n\nFor testing, these are also required\n\n* pytest>=8,<9\n* ase>=3.22.0,<3.25\n* tqdm<=4.67.1\n* joblib<=1.5.1\n* ascii-colors\n\n\n\nInstallation\n------------\n\nFirst create and activate a new environment::\n\n    mamba create --name env_name \"python>=3.10,<3.15\"\n    mamba activate env_name\n\nTo install the latest version::\n\n    pip install NanoparticleAtomCounter\n \n\nAlternatively::\n\n    git clone git@github.com:szilvasi-group/NanoparticleAtomCounter.git\n    cd NanoparticleAtomCounter/\n    pip install -e .\n\nTo be able to run tests::\n\n    pip install NanoparticleAtomCounter[test]\n\n\nUsage\n-------\n\n**1) Prepare your input CSV**\n\nUpload a ``.csv`` with these headers:\n\n::\n\n    r (A), R (A), Theta, Element, Interface Facet, Surface Facet\n\nDefinitions:\n\n- ``r (A)`` = footprint radius (in Angstrom); ``R (A)`` = radius of curvature (in Angstrom)\n\n**r vs R**\n\n========== ==========\n|acute|    |obtuse|\n========== ==========\n\n.. |acute| image:: https://raw.githubusercontent.com/giolajide/nanoparticleatomcounter/main/Acute_1.png\n   :width: 340\n   :alt: Acute theta\n\n.. |obtuse| image:: https://raw.githubusercontent.com/giolajide/nanoparticleatomcounter/main/Obtuse_1.png\n   :width: 340\n   :alt: Obtuse theta\n\n\n- Provide either ``r (A)`` or ``R (A)`` (if both are present, ``R (A)`` is ignored).\n- ``Theta`` = contact angle (in degrees)\n- ``Element`` = chemical symbol of the element that comprises the nanoparticle, e.g. ``Cr``\n- ``Interface Facet`` and ``Surface Facet`` are OPTIONAL; leave blank if unknown.\n    - ``Interface Facet`` = facet at the nanoparticle-support interface, e.g. ``(1,1,1)``\n    - ``Surface Facet`` = dominant facet at the nanoparticle-gas/vacuum interface, e.g. ``(1,0,0)``\n\n- Here's a sample input file_\n\n\n**2) Use the web app**\n\nUpload your input file and download the output.\n\nOR\n\n\n**2) Use the command line**\n\n::\n\n    nanoparticle-atom-count -i input_file.csv -o output_file.csv\n\n\nTesting\n-------\n\nIf you have it installed with the tests, then run the following test and please let me know if there are any errors::\n\n    atom-count-test\n\n\n\nContact\n-------\n\nAny problems or questions?\n\n* Email me at giolajide@crimson.ua.edu\n* Or raise an issue right here_\n\n\n\n\n.. _app: https://nanoparticle-atom-counting.streamlit.app\n.. _here: https://github.com/szilvasi-group/NanoparticleAtomCounter/issues\n.. _file: https://github.com/giolajide/NanoparticleAtomCounter/blob/main/sample_input.csv\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Estimates atom counts in monometallic nanoparticles given radius and contact angle",
    "version": "0.1.4",
    "project_urls": {
        "Bug Tracker": "https://github.com/szilvasi-group/NanoparticleAtomCounter/issues",
        "Documentation": "https://github.com/szilvasi-group/NanoparticleAtomCounter#readme",
        "Homepage": "https://github.com/szilvasi-group/NanoparticleAtomCounter#readme"
    },
    "split_keywords": [
        "nanoparticle",
        " tem",
        " electron microscopy",
        " active site",
        " catalyst"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eee3246b06197e5e489fc0c897eb99c557ccfbe1f11644cf6bdf638441c6a1c8",
                "md5": "6400edcdea2cc13680b57a4e9d477ea5",
                "sha256": "2827746d4e4e3500c7b756928b5a06b440cae9e9214184e37a9644ec5e1e4db7"
            },
            "downloads": -1,
            "filename": "nanoparticleatomcounter-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6400edcdea2cc13680b57a4e9d477ea5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.15,>=3.10",
            "size": 58868,
            "upload_time": "2025-08-11T17:39:33",
            "upload_time_iso_8601": "2025-08-11T17:39:33.580898Z",
            "url": "https://files.pythonhosted.org/packages/ee/e3/246b06197e5e489fc0c897eb99c557ccfbe1f11644cf6bdf638441c6a1c8/nanoparticleatomcounter-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cfeb01ab411a3987f066496202855c34fb514f3cf1da7926ccc98937b2d5d5d1",
                "md5": "9ddad6e96745469fb33f76a8a8279536",
                "sha256": "130314db8905faa86e36bf6ce4443339d049ba1977583f90ce2e2ccc97922eec"
            },
            "downloads": -1,
            "filename": "nanoparticleatomcounter-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "9ddad6e96745469fb33f76a8a8279536",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.15,>=3.10",
            "size": 50875,
            "upload_time": "2025-08-11T17:39:34",
            "upload_time_iso_8601": "2025-08-11T17:39:34.813127Z",
            "url": "https://files.pythonhosted.org/packages/cf/eb/01ab411a3987f066496202855c34fb514f3cf1da7926ccc98937b2d5d5d1/nanoparticleatomcounter-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-11 17:39:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "szilvasi-group",
    "github_project": "NanoparticleAtomCounter#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.20"
                ],
                [
                    "<",
                    "2.3"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.4"
                ]
            ]
        },
        {
            "name": "streamlit",
            "specs": [
                [
                    ">=",
                    "1.4"
                ]
            ]
        },
        {
            "name": "openpyxl",
            "specs": [
                [
                    ">=",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "xlrd",
            "specs": [
                [
                    ">=",
                    "2.0.1"
                ]
            ]
        }
    ],
    "lcname": "nanoparticleatomcounter"
}
        
Elapsed time: 0.55538s