{ "info": { "author": "Markus Englund", "author_email": "jan.markus.englund@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "pandas-charm\n============\n\n|Build-Status| |Coverage-Status| |PyPI-Status| |License| |DOI-URI|\n\npandas-charm is a small Python package for getting character\nmatrices (alignments) into and out of `pandas `_.\nUse this library to make pandas interoperable with\n`BioPython `_ and `DendroPy `_.\n\nConvert between the following objects:\n\n* BioPython MultipleSeqAlignment <-> pandas DataFrame\n* DendroPy CharacterMatrix <-> pandas DataFrame\n* \"Sequence dictionary\" <-> pandas DataFrame\n\nThe code has been tested with Python 2.7, 3.5 and 3.6.\n\nSource repository: ``_\n\n------------------------------------------\n\n.. contents:: Table of contents\n :backlinks: none\n :local:\n\n\nInstallation\n------------\n\nFor most users, the easiest way is probably to install the latest version\nhosted on `PyPI `_:\n\n.. code-block::\n\n $ pip install pandas-charm\n\nThe project is hosted at https://github.com/jmenglund/pandas-charm and\ncan also be installed using git:\n\n.. code-block::\n\n $ git clone https://github.com/jmenglund/pandas-charm.git\n $ cd pandas-charm\n $ python setup.py install\n\n\nYou may consider installing pandas-charm and its required Python packages\nwithin a virtual environment in order to avoid cluttering your system's\nPython path. See for example the environment management system\n`conda `_ or the package\n`virtualenv `_.\n\n\nRunning the tests\n-----------------\n\nTesting is carried out with `pytest `_:\n\n.. code-block::\n\n $ pytest -v test_pandascharm.py\n\nTest coverage can be calculated with `Coverage.py\n`_ using the following commands:\n\n.. code-block::\n\n $ coverage run -m pytest\n $ coverage report -m pandascharm.py\n\nThe code follow style conventions in `PEP8\n`_, which can be checked\nwith `pycodestyle `_:\n\n.. code-block::\n\n $ pycodestyle pandascharm.py test_pandascharm.py setup.py\n\n\nUsage\n-----\n\nThe following examples show how to use pandas-charm. The examples are\nwritten with Python 3 code, but pandas-charm should work also with\nPython 2.7+. You need to install BioPython and/or DendroPy manually\nbefore you start:\n\n.. code-block::\n\n $ pip install biopython\n $ pip install dendropy\n\n\nDendroPy CharacterMatrix to pandas DataFrame\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> import dendropy\n >>> dna_string = '3 5\\nt1 TCCAA\\nt2 TGCAA\\nt3 TG-AA\\n'\n >>> print(dna_string)\n 3 5\n t1 TCCAA\n t2 TGCAA\n t3 TG-AA\n\n >>> matrix = dendropy.DnaCharacterMatrix.get(\n ... data=dna_string, schema='phylip')\n >>> df = pc.from_charmatrix(matrix)\n >>> df\n t1 t2 t3\n 0 T T T\n 1 C G G\n 2 C C -\n 3 A A A\n 4 A A A\n\nBy default, characters are stored as rows and sequences as columns\nin the DataFrame. If you want rows to hold sequences, just transpose\nthe matrix in pandas:\n\n.. code-block:: pycon\n\n >>> df.transpose()\n 0 1 2 3 4\n t1 T C C A A\n t2 T G C A A\n t3 T G - A A\n\n\npandas DataFrame to Dendropy CharacterMatrix\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> import dendropy\n >>> df = pd.DataFrame({\n ... 't1': ['T', 'C', 'C', 'A', 'A'],\n ... 't2': ['T', 'G', 'C', 'A', 'A'],\n ... 't3': ['T', 'G', '-', 'A', 'A']})\n >>> df\n t1 t2 t3\n 0 T T T\n 1 C G G\n 2 C C -\n 3 A A A\n 4 A A A\n\n >>> matrix = pc.to_charmatrix(df, data_type='dna')\n >>> print(matrix.as_string('phylip'))\n 3 5\n t1 TCCAA\n t2 TGCAA\n t3 TG-AA\n\n\nBioPython MultipleSeqAlignment to pandas DataFrame\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> from io import StringIO\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> from Bio import AlignIO\n >>> dna_string = '3 5\\nt1 TCCAA\\nt2 TGCAA\\nt3 TG-AA\\n'\n >>> f = StringIO(dna_string) # make the string a file-like object\n >>> alignment = AlignIO.read(f, 'phylip-relaxed')\n >>> print(alignment)\n SingleLetterAlphabet() alignment with 3 rows and 5 columns\n TCCAA t1\n TGCAA t2\n TG-AA t3\n >>> df = pc.from_bioalignment(alignment)\n >>> df\n t1 t2 t3\n 0 T T T\n 1 C G G\n 2 C C -\n 3 A A A\n 4 A A A\n\n\npandas DataFrame to BioPython MultipleSeqAlignment\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> import Bio\n >>> df = pd.DataFrame({\n ... 't1': ['T', 'C', 'C', 'A', 'A'],\n ... 't2': ['T', 'G', 'C', 'A', 'A'],\n ... 't3': ['T', 'G', '-', 'A', 'A']})\n >>> df\n t1 t2 t3\n 0 T T T\n 1 C G G\n 2 C C -\n 3 A A A\n 4 A A A\n\n >>> alignment = pc.to_bioalignment(df, alphabet='generic_dna')\n >>> print(alignment)\n SingleLetterAlphabet() alignment with 3 rows and 5 columns\n TCCAA t1\n TGCAA t2\n TG-AA t3\n\n\n\"Sequence dictionary\" to pandas DataFrame\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> d = {\n ... 't1': 'TCCAA',\n ... 't2': 'TGCAA',\n ... 't3': 'TG-AA'\n ... }\n >>> df = pc.from_sequence_dict(d)\n >>> df\n t1 t2 t3\n 0 T T T\n 1 C G G\n 2 C C -\n 3 A A A\n 4 A A A\n\n\npandas DataFrame to \"sequence dictionary\"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code-block:: pycon\n\n >>> import pandas as pd\n >>> import pandascharm as pc\n >>> df = pd.DataFrame({\n ... 't1': ['T', 'C', 'C', 'A', 'A'],\n ... 't2': ['T', 'G', 'C', 'A', 'A'],\n ... 't3': ['T', 'G', '-', 'A', 'A']})\n >>> pc.to_sequence_dict(df)\n {'t1': 'TCCAA', 't2': 'TGCAA', 't3': 'TG-AA'}\n\n\nThe name\n--------\n\npandas-charm got its name from the pandas library plus an acronym for\nCHARacter Matrix.\n\n\nLicense\n-------\n\npandas-charm is distributed under the `MIT license `_.\n\n\nCiting\n------\n\nIf you use results produced with this package in a scientific\npublication, please just mention the package name in the text and\ncite the Zenodo DOI of this project:\n\n|DOI-URI|\n\nChoose your preferred citation style in the \"Cite as\" section on the Zenodo\npage.\n\n\nAuthor\n------\n\nMarkus Englund, `orcid.org/0000-0003-1688-7112 `_\n\n\n.. |Build-Status| image:: https://travis-ci.org/jmenglund/pandas-charm.svg?branch=master\n :target: https://travis-ci.org/jmenglund/pandas-charm\n :alt: Build status\n.. |Coverage-Status| image:: https://codecov.io/gh/jmenglund/pandas-charm/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/jmenglund/pandas-charm\n :alt: Coverage status\n.. |PyPI-Status| image:: https://img.shields.io/pypi/v/pandas-charm.svg\n :target: https://pypi.python.org/pypi/pandas-charm\n :alt: PyPI status\n.. |License| image:: https://img.shields.io/pypi/l/pandas-charm.svg\n :target: https://raw.githubusercontent.com/jmenglund/pandas-charm/master/LICENSE.txt\n :alt: License\n.. |DOI-URI| image:: https://zenodo.org/badge/62513333.svg\n :target: https://zenodo.org/badge/latestdoi/62513333\n :alt: DOI\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jmenglund/pandas-charm", "keywords": "alignment,BioPython,DendroPy,pandas", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pandas-charm", "package_url": "https://pypi.org/project/pandas-charm/", "platform": "", "project_url": "https://pypi.org/project/pandas-charm/", "project_urls": { "Homepage": "https://github.com/jmenglund/pandas-charm" }, "release_url": "https://pypi.org/project/pandas-charm/0.3.0/", "requires_dist": [ "pandas (>=0.21)", "coverage ; extra == 'testing'", "pytest ; extra == 'testing'", "biopython ; extra == 'testing'", "dendropy ; extra == 'testing'" ], "requires_python": "", "summary": "A small Python library for getting character matrices (alignments) into and out of pandas", "version": "0.3.0" }, "last_serial": 5288077, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "25a51d8425b965a3bc0b89bd12ba339a", "sha256": "e780c048815600f8be50dc823feb0fce08aeea1c5d298939c6fc3825267d36b2" }, "downloads": -1, "filename": "pandas_charm-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25a51d8425b965a3bc0b89bd12ba339a", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 7599, "upload_time": "2016-07-05T07:43:59", "url": "https://files.pythonhosted.org/packages/f3/89/edc4409f127ec7c8431b92f7345eb175e43f4196e26c9a1f4f44aa1dc1fa/pandas_charm-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab29972cb32d53f520abbc6c0ecd1ef3", "sha256": "577417c34a481c1d4a1b316ceac2d89a1b8287a725b3b8b7f163b507d0e0c276" }, "downloads": -1, "filename": "pandas-charm-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ab29972cb32d53f520abbc6c0ecd1ef3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6252, "upload_time": "2016-07-05T07:43:26", "url": "https://files.pythonhosted.org/packages/b3/98/f6bd3c770ee17239a5c5c5d24576f40522f7a7092139ebc460359c1c9be5/pandas-charm-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "868b061ebebf88e022b977e79f858b68", "sha256": "55161cb1c6274f5c5a072ace7c7e23a84ec8ddc61afc7f8a500496bd822ab95a" }, "downloads": -1, "filename": "pandas_charm-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "868b061ebebf88e022b977e79f858b68", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 7628, "upload_time": "2016-07-05T13:01:32", "url": "https://files.pythonhosted.org/packages/88/ec/1cb857e235840478f07dc14a791fc468ffe355530a2d4f1f276df7df2e61/pandas_charm-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6cf3053beb43b557e73196bf8e72a4d1", "sha256": "db3ffdfa57ee2cebda29cba6dad31980bc28bf220df576cbea355c05e6403b3d" }, "downloads": -1, "filename": "pandas-charm-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6cf3053beb43b557e73196bf8e72a4d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6343, "upload_time": "2016-07-05T12:59:58", "url": "https://files.pythonhosted.org/packages/46/f3/1322edc47e1ac299d20b619c600b43a79659ef3ceeafbe0ff46096690aac/pandas-charm-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "08a8d595abfe4ea7fad9d08c812961ce", "sha256": "95b8feaaf9dbb77c8b2fe9f73db6774e023f4b7a327e48c7706325e91cf0f835" }, "downloads": -1, "filename": "pandas_charm-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08a8d595abfe4ea7fad9d08c812961ce", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 8176, "upload_time": "2016-08-08T11:12:29", "url": "https://files.pythonhosted.org/packages/e5/66/8b476e09a6b917685052b43ea8b74d49a248fcc717504f0475f7d62487b3/pandas_charm-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b2af2e2de792be200a8561cd365b255", "sha256": "88f29e507944f1d158f851b0ada5ee1c0d1c163cd2d4c552921d6b55707b88ae" }, "downloads": -1, "filename": "pandas-charm-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0b2af2e2de792be200a8561cd365b255", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6847, "upload_time": "2016-08-08T11:11:56", "url": "https://files.pythonhosted.org/packages/36/c0/85f15c6860a6d93a6d34ba58a23879f39c9836695ce4890cdf28b042afba/pandas-charm-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "0bd0d559966e1e32d14d0e8f1dfb54c9", "sha256": "1e20832e49c6d2537f2c710112e419e6d7e53b783ea183c49cee5e63f12167b4" }, "downloads": -1, "filename": "pandas_charm-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0bd0d559966e1e32d14d0e8f1dfb54c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8150, "upload_time": "2017-08-25T16:31:32", "url": "https://files.pythonhosted.org/packages/65/3e/53fb8916b037a92dfe6518c057065bcb5a234d552e180ab85140502a72ae/pandas_charm-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69b169a658003c32a9775662c141624b", "sha256": "e0ed773d70ab552a35ef08afb46211d88915bd6c1cde7e9c88eae5d0d64340d2" }, "downloads": -1, "filename": "pandas-charm-0.1.3.tar.gz", "has_sig": false, "md5_digest": "69b169a658003c32a9775662c141624b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7028, "upload_time": "2017-08-25T16:31:34", "url": "https://files.pythonhosted.org/packages/ec/bd/cf68b1f84b914f8305da5828b97791ee596e443d7631f8dfcb1c72ef308f/pandas-charm-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "67f4287b45402f240cefa5c937883c6e", "sha256": "38403e2fc6844916fc84bfe671c2f075d97bff84a0b2a25ee68fd02084c39e0d" }, "downloads": -1, "filename": "pandas_charm-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "67f4287b45402f240cefa5c937883c6e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5206, "upload_time": "2019-02-23T18:47:08", "url": "https://files.pythonhosted.org/packages/d7/20/37a55f19c42e71e328da38b1e671009b90fe3c800b26f8fe4c6b56e7278f/pandas_charm-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb12866de0ca3abea3787f777df012b2", "sha256": "9d28082adb3d94197e8644f1beb86121b0d5504523fb15ff01a4e9e1f502c235" }, "downloads": -1, "filename": "pandas-charm-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bb12866de0ca3abea3787f777df012b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7479, "upload_time": "2019-02-23T18:47:09", "url": "https://files.pythonhosted.org/packages/da/50/fcd96018838369e5f9774a4ee7cc62a15c70f0adb2a25544e3f39b0a5d2e/pandas-charm-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0f0e4570ae82bafa641acb2dee59ddcc", "sha256": "242befd3a41fe4802c388ab5acaa16971ae2aacb816c490696dab4e05a731205" }, "downloads": -1, "filename": "pandas_charm-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f0e4570ae82bafa641acb2dee59ddcc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6100, "upload_time": "2019-05-19T11:52:36", "url": "https://files.pythonhosted.org/packages/30/6a/dacff58029f81bcd3b96ffd65bbe6269cadf59e5b459a77d36029a3eb8ea/pandas_charm-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d5f2d59537324f8e4490659529aec50", "sha256": "203d1c6c369d1f966fd7ff06053dd641db214f5bc16dd694e269f03de10ee45b" }, "downloads": -1, "filename": "pandas-charm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9d5f2d59537324f8e4490659529aec50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7597, "upload_time": "2019-05-19T11:52:38", "url": "https://files.pythonhosted.org/packages/03/75/25aefca0824d8d9d1ae7de872fd418da4121859d4fb82010d0b63e4f1975/pandas-charm-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f0e4570ae82bafa641acb2dee59ddcc", "sha256": "242befd3a41fe4802c388ab5acaa16971ae2aacb816c490696dab4e05a731205" }, "downloads": -1, "filename": "pandas_charm-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f0e4570ae82bafa641acb2dee59ddcc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6100, "upload_time": "2019-05-19T11:52:36", "url": "https://files.pythonhosted.org/packages/30/6a/dacff58029f81bcd3b96ffd65bbe6269cadf59e5b459a77d36029a3eb8ea/pandas_charm-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d5f2d59537324f8e4490659529aec50", "sha256": "203d1c6c369d1f966fd7ff06053dd641db214f5bc16dd694e269f03de10ee45b" }, "downloads": -1, "filename": "pandas-charm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9d5f2d59537324f8e4490659529aec50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7597, "upload_time": "2019-05-19T11:52:38", "url": "https://files.pythonhosted.org/packages/03/75/25aefca0824d8d9d1ae7de872fd418da4121859d4fb82010d0b63e4f1975/pandas-charm-0.3.0.tar.gz" } ] }