Package: tessellate
==========Tessellate==========.. image:: https://img.shields.io/pypi/v/tessellate.svg:target: https://pypi.python.org/pypi/tessellate.. image:: https://readthedocs.org/projects/tessellate/badge/?version=latest:target: https://tessellate.readthedocs.io/en/latest/?badge=latest:alt: Documentation Status.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1068656.svg:target: https://doi.org/10.5281/zenodo.1068656A package for quantifying cyclic molecule conformations.* Free software: Apache Software License 2.0* Documentation: https://tessellate.readthedocs.io.Using-----.. code:: bashmake install; tessellate  data/example-builtin --input-format=builtin --output-format=jsonmake install; tessellate  data/*DNA --input-format=pdblist --output-format=jsonInstalling----------- Use Python3. For example, Anaconda Python https://www.anaconda.com/download/ https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh- Use a virtual environment or conda environment.- Install with pip or compile the source code.. code:: bash# installing with pippip install tessellate# Alternatively: compile from sourcemake installUsecase 1 - timeseries data---------------------------.. code:: bashtessellate  data/usecase-timeseries --input-format=builtin --output-format=json --output-dir=output-usecase-timeseriesThis data is from an in vacuo ribose simulation stored in data/timeseries-from-VMDTo recreate data use the run.sh script. This calls VMD and runs pucker-bigdcd.tcl.Usecase 2 - RNA and DNA-----------------------.. code:: bashtessellate  data/usecase-*DNA --input-format=pdblist --output-format=json --output-dir=output-usecase-rnadnaUsecase 3 - Alpha Cyclodextrin------------------------------.. code:: bashtessellate  data/usecase-*CD --input-format=pdblist --output-format=json --output-dir=output-usecase-cyclodextrinRun All Usecases----------------.. code:: bashtessellate  data/usecase-timeseries --input-format=builtin --output-format=json --output-dir=output-usecase-timeseriestessellate  data/usecase-*DNA --input-format=pdblist --output-format=json --output-dir=output-usecase-rnadnatessellate  data/usecase-*CD --input-format=pdblist --output-format=json --output-dir=output-usecase-cyclodextrinAdditional UseCases-------------------- `Pandas Dataframes`_  Supported with --output-format=pandas- `Using Tessellate as a library`_Viewing Data------------Try out Montage to create reports for these datasets.For example:.. code:: bashUSECASE_DATA=output-usecase-cyclodextrinmultiqc $USECASE_DATA -m comp_tessellate -f  # -f to overwrite existing reportsgoogle-chrome multiqc_report.htmlCompare all outputs:.. code:: bashmultiqc output* -m comp_tessellate -f  # -f to overwrite existing reportsgoogle-chrome multiqc_report.htmlDevelopment-----------Bump version numbers using bumpversionX=thecurrentversion`bumpversion  --current-version X minor`To bump from x.y.z to x.y.a use patch as the part:`bumpversion  --current-version X patch`Features to include:--------------------* Improve testing and documentation. Port existing tests over.* Tables* include more RAD functionalityUploading to PyPi-----------------Use twine.. code:: bashconda install -c conda-forge twinemake installmake disttwine upload dist/*Issues------Report Issues at https://github.com/scientificomputing/tessellate/issuesKnown issue - only relative paths supportedRead the Docs-------------Docs are here. RTD is authorised to access GitHub repos. The RTD service hook builds doc on push.Pandas Dataframes-----------------.. code:: bashtessellate  data/usecase-timeseries --input-format=builtin --output-format=pandas --output-dir=output-usecase-timeseries.. code:: pythonpythonimport pandas as pddf = pd.read_json('output-usecase-timeseries/tessellate_report_usecase-timeseries.pandas.json')df.head()df.groupby('conformer').count()df.groupby(['ringsize','conformer']).count()Using Tessellate as a library-----------------------------.. code:: pythonimport tessellate as timport tessellate.utils.pucker as pimport collectionsordered_ringatoms=['C3','C4','C5','O5','C1','C2']frame={'C1': (-5.799, -5.308, 4.847), 'C2': (-5.383, -5.328, 3.394), 'C3': (-3.904, -4.906, 3.181),'C4': (-3.576, -3.54, 3.944), 'C5': (-4.115, -3.556, 5.339), 'O5': (-5.551, -3.941, 5.38)}def return_pucker(atomids,frame):import tessellate as timport tessellate.utils.pucker as pimport itertoolsa=[frame[i] for i in atomids]pobj=p.Pucker(tuple(itertools.chain.from_iterable(a)))return pobj.calculate_triangular_tessellation(), pobj.deduce_canonical_conformation()[0],pobj.deduce_canonical_conformation()[-1],pobj.deduce_canonical_conformation(nextguess=True)[0]result=collections.OrderedDict()result["pucker"],result["pucker_conformer"],result["pucker_distance_to_canonical"],result["pucker_next_guess"] = return_pucker(ordered_ringatoms, frame)import pprintpprint.pprint(result)Credits---------This package incorporates work from existing packages (all originally developed by Chris B. Barnett.)* https://bitbucket.org/scientificomputing/triangular-tessellation-class http://git.cem.uct.ac.za/analysis-pucker/triangular-tessellation-class* https://bitbucket.org/scientificomputing/ring-analytics-webserver https://bitbucket.org/rxncor/rad-dev http://git.cem.uct.ac.za/analysis-pucker/ring-analytics-dash* https://bitbucket.org/scientificomputing/triangular-tessellation-in-vmd http://git.cem.uct.ac.za/analysis-pucker/triangular-decomposition-timeseries-in-VMDThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template... _Cookiecutter: https://github.com/audreyr/cookiecutter.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage=======History=======0.3.7 (2018-03-29)------------------* Pandas!* Pandas dataframe output in json and csv is the default* make Pandas default* how to use a library example in the README* biopython and pytest have different signatures beneath a certain version. Fixed this in setup.py* removed hardcoded python interpreter, in some cases machine point to python2.7 with python3 pointing to 3. Remove in *.py files. Removed in Makefile. To use another python in the make file, modify the pythonexe variable* Tested with --user flag. --user flag seems to work for me - e.g. pip3 install --user tessellate0.3.6 (2017-12-18)------------------* Zenodo DOI* empty list bug resolved* feature order json output0.3.5 (2017-11-30)------------------* Includes tcl script for VMD and example data0.3.4 (2017-11-29)------------------* Documentation update. Ring finder update0.3.1 0.3.2 0.3.3  (2017-11-24)------------------* Usecase, documentation update. Update requirements for PyPi0.3.0 (2017-11-23)------------------* First release on PyPi0.2.0 (2017-11-23)------------------* Alpha version that can read PDBlists and builtin, can write json* Include examples and much verbose logging0.1.0 (2017-11-21)------------------* Alpha version. Basic function