ElliptiCBn


NameElliptiCBn JSON
Version 1.0.9 PyPI version JSON
download
home_pagehttps://github.com/harmslab/ElliptiC
SummaryPython package for analyzing Cucurbituril crystal structures automatically
upload_time2023-07-10 18:24:58
maintainer
docs_urlNone
authorMichael Shavlik
requires_python>=3.7.0
licenseMIT
keywords cbn; crystal structure
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ElliptiC - an automated command line tool for visualizing and measuring ellipticity of cucurbituril host/guest structures

<br />


## How to install
**In a terminal, the command for installation is a simple**

_pip install ElliptiCBn_

**If you would rather not use pip and prefer installing source, the installation of the package can be done by the following:**
* Clone this git repository to your local machine
* In the cloned repository, install the cbn_analysis package through _python -m pip install . vv_ 
* Next, install the required dependencies by running _pip install -r requirements.txt_

<br />

## How to run the analysis
### The ElliptiC package takes a single command line argument: an xyz file containing atom coordinates, or a folder of xyz files containing atom coordinates

**To run the analysis package on a single file, navigate to the directory with the ElliptiC script and execute it:**
(NOTE: if there are spaces in your file name, you will need quotes around the file name)
![](https://github.com/harmslab/ElliptiC/raw/main/images/single_file.png)


**The same convention can be used to execute the package on a folder of xyz files**
![](https://github.com/harmslab/ElliptiC/raw/main/images/folder_test.png)
    
<br />

## How the package works
### Below is a diagram of the analysis steps the software completes on any given file
![](https://github.com/harmslab/ElliptiC/raw/main/images/pipeline_image.svg)

### 1. In a given XYZ file, extract the coordinates of all carbon atoms (and oxygen atoms used later on in the analysis).
### 2. Identify strongly connected components to differentiate between host and guest structures.
### 3. Remove the guest structure since we only care about calculating ellipticity of the host.
### 4. Using proximity to oxygen atoms, remove the top and bottom rings of the hosts for accurate ellipticity calculation.
### 5 & 6. Using a Principal Components Analysis, calculate the variance along both major axes of the host ring. The ellipticity is thus (Vax1-Vax2)/Vax1 where Vax1 is the variance on the longest axis (length) and Vax2 is the variance on the second-longest axis (width). 
### 7. Output graphs of both the single ring hosts and the full host-guest structures, as well as a spreadsheet with the calculated ellipticity for each structure.

<br />
<br />

## How to interpret the output

### Each xyz file analyzed with this package will produce at least 3 pieces of data: 
* 1 interactive 3D scatter plot with all carbons in the CBn structures visualized 
* 1 interactive 3D scatter plot with only the central carbon ring of the CBn structures visualized
* 1 spreadsheet with all of the carbons, their positions, distance to the centroid of the structure, and the measured ellipticity

**In the case of host CBn structures with an internally situated guest structure, an additional 3D graph will be produced with the guests visualized in the structures (see below)**

![](https://github.com/harmslab/ElliptiC/raw/main/images/testing_cbn_interactive.png)

To see the interactive version of this plot that gets generated from the script, [Click Here](https://plotly.com/~Mshavlik/63/)

**The user can visually see the ellipticity in the structues and compare them to the measured values in the spreadsheets:**                 
_CB7 structures from above with guests removed_
![](https://github.com/harmslab/ElliptiC/raw/main/images/CB7_circular.png)

Calculated ellipticity for each structure on a scale of circular (0) to linear (1)  
![](https://github.com/harmslab/ElliptiC/raw/main/images/circular_ellipticity.png)


_CB10 wide structures with guests removed_
![](https://github.com/harmslab/ElliptiC/raw/main/images/ellipsoid_example.png)

Calculated ellipticity for each structure on a scale of circular (0) to linear (1)  
![](https://github.com/harmslab/ElliptiC/raw/main/images/ellipse_ellipticity.png)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/harmslab/ElliptiC",
    "name": "ElliptiCBn",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7.0",
    "maintainer_email": "",
    "keywords": "CBn; Crystal structure",
    "author": "Michael Shavlik",
    "author_email": "Michael Shavlik <mshavlik@uoregon.edu>",
    "download_url": "https://files.pythonhosted.org/packages/7f/36/bf58b5486b485766bde02ca6425730661c48a0dc656e080d1b3637aba9d1/ElliptiCBn-1.0.9.tar.gz",
    "platform": null,
    "description": "# ElliptiC - an automated command line tool for visualizing and measuring ellipticity of cucurbituril host/guest structures\r\n\r\n<br />\r\n\r\n\r\n## How to install\r\n**In a terminal, the command for installation is a simple**\r\n\r\n_pip install ElliptiCBn_\r\n\r\n**If you would rather not use pip and prefer installing source, the installation of the package can be done by the following:**\r\n* Clone this git repository to your local machine\r\n* In the cloned repository, install the cbn_analysis package through _python -m pip install . vv_ \r\n* Next, install the required dependencies by running _pip install -r requirements.txt_\r\n\r\n<br />\r\n\r\n## How to run the analysis\r\n### The ElliptiC package takes a single command line argument: an xyz file containing atom coordinates, or a folder of xyz files containing atom coordinates\r\n\r\n**To run the analysis package on a single file, navigate to the directory with the ElliptiC script and execute it:**\r\n(NOTE: if there are spaces in your file name, you will need quotes around the file name)\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/single_file.png)\r\n\r\n\r\n**The same convention can be used to execute the package on a folder of xyz files**\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/folder_test.png)\r\n    \r\n<br />\r\n\r\n## How the package works\r\n### Below is a diagram of the analysis steps the software completes on any given file\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/pipeline_image.svg)\r\n\r\n### 1. In a given XYZ file, extract the coordinates of all carbon atoms (and oxygen atoms used later on in the analysis).\r\n### 2. Identify strongly connected components to differentiate between host and guest structures.\r\n### 3. Remove the guest structure since we only care about calculating ellipticity of the host.\r\n### 4. Using proximity to oxygen atoms, remove the top and bottom rings of the hosts for accurate ellipticity calculation.\r\n### 5 & 6. Using a Principal Components Analysis, calculate the variance along both major axes of the host ring. The ellipticity is thus (Vax1-Vax2)/Vax1 where Vax1 is the variance on the longest axis (length) and Vax2 is the variance on the second-longest axis (width). \r\n### 7. Output graphs of both the single ring hosts and the full host-guest structures, as well as a spreadsheet with the calculated ellipticity for each structure.\r\n\r\n<br />\r\n<br />\r\n\r\n## How to interpret the output\r\n\r\n### Each xyz file analyzed with this package will produce at least 3 pieces of data: \r\n* 1 interactive 3D scatter plot with all carbons in the CBn structures visualized \r\n* 1 interactive 3D scatter plot with only the central carbon ring of the CBn structures visualized\r\n* 1 spreadsheet with all of the carbons, their positions, distance to the centroid of the structure, and the measured ellipticity\r\n\r\n**In the case of host CBn structures with an internally situated guest structure, an additional 3D graph will be produced with the guests visualized in the structures (see below)**\r\n\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/testing_cbn_interactive.png)\r\n\r\nTo see the interactive version of this plot that gets generated from the script, [Click Here](https://plotly.com/~Mshavlik/63/)\r\n\r\n**The user can visually see the ellipticity in the structues and compare them to the measured values in the spreadsheets:**                 \r\n_CB7 structures from above with guests removed_\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/CB7_circular.png)\r\n\r\nCalculated ellipticity for each structure on a scale of circular (0) to linear (1)  \r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/circular_ellipticity.png)\r\n\r\n\r\n_CB10 wide structures with guests removed_\r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/ellipsoid_example.png)\r\n\r\nCalculated ellipticity for each structure on a scale of circular (0) to linear (1)  \r\n![](https://github.com/harmslab/ElliptiC/raw/main/images/ellipse_ellipticity.png)\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python package for analyzing Cucurbituril crystal structures automatically",
    "version": "1.0.9",
    "project_urls": {
        "Homepage": "https://github.com/harmslab/ElliptiC"
    },
    "split_keywords": [
        "cbn;",
        "crystal",
        "structure"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5ce05dcb288bb7aa398ae7199cdf9bd987b7cf1cd544542497ae5413f3041516",
                "md5": "661726dbf3169c7ecb7c4e3a6e10044c",
                "sha256": "567d1dd7cbc95ceb128b3978c1dc645ca0d56416b59ce895126e4f09a3158f2c"
            },
            "downloads": -1,
            "filename": "ElliptiCBn-1.0.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "661726dbf3169c7ecb7c4e3a6e10044c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7.0",
            "size": 11091,
            "upload_time": "2023-07-10T18:24:57",
            "upload_time_iso_8601": "2023-07-10T18:24:57.340954Z",
            "url": "https://files.pythonhosted.org/packages/5c/e0/5dcb288bb7aa398ae7199cdf9bd987b7cf1cd544542497ae5413f3041516/ElliptiCBn-1.0.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f36bf58b5486b485766bde02ca6425730661c48a0dc656e080d1b3637aba9d1",
                "md5": "c0016d3c626c978c8278d0b6ee001496",
                "sha256": "4a7e767d1008d7879afcaac5ec3e2e0dd6595e4d2e14dca582f8c05999c69210"
            },
            "downloads": -1,
            "filename": "ElliptiCBn-1.0.9.tar.gz",
            "has_sig": false,
            "md5_digest": "c0016d3c626c978c8278d0b6ee001496",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7.0",
            "size": 11047,
            "upload_time": "2023-07-10T18:24:58",
            "upload_time_iso_8601": "2023-07-10T18:24:58.866013Z",
            "url": "https://files.pythonhosted.org/packages/7f/36/bf58b5486b485766bde02ca6425730661c48a0dc656e080d1b3637aba9d1/ElliptiCBn-1.0.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-10 18:24:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "harmslab",
    "github_project": "ElliptiC",
    "github_not_found": true,
    "lcname": "ellipticbn"
}
        
Elapsed time: 0.08680s