{ "info": { "author": "Keith Hughitt", "author_email": "khughitt@umd.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Bio-Informatics" ], "description": "Labnote\n=======\n\n.. image:: https://travis-ci.org/khughitt/labnote.svg?branch=master\n :target: https://travis-ci.org/khughitt/labnote\n :alt: Build Status\n.. image:: https://readthedocs.org/projects/labnote/badge/?version=latest\n :target: http://labnote.readthedocs.org/en/latest/?badge=latest\n :alt: Documentation Status\n\nOverview\n--------\n\nLabnote is a flexible and lightweight tool for generating\nHTML-based `electronic lab\nnotebooks `__.\n\nRather than attempting to provide a unified tool for creating and sharing lab\nnotebook entries, Labnote simply ties together existing documents and analyses\noutputs and builds and creates an HTML index of these resources.\n\nIn short, it helps you go from something like this:\n\n::\n\n \u251c\u2500\u2500 co-expression\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 coex-clustering-comparison\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 README.html\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 hsapiens-coex-network\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 README.html\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 lmajor-coex-network\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 README.html\n \u251c\u2500\u2500 exploratory_data_analysis\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 biplot_eda.ipynb\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 nmf_comparison.py\n \u2514\u2500\u2500 host-pathogen_networks\n \u00a0\u00a0 \u2514\u2500\u2500 hpi-module-network\n \u00a0\u00a0 \u2514\u2500\u2500 hpi_network_construction.py\n\nTo something like this:\n\n.. figure:: docs/images/example_screenshot_bioinf.png\n :alt: A simple lab notebook\n\nLabnote works by scanning a set of one or more directories for files\nmatching a pattern that you specify as pertaining to notebook entries\n(e.g. a single log, script, or document describing some particular\nproject or analysis.) It then constructs an HTML table of contents\npointing to each of the matching files. By default, results are sorted\nby last-modified date. Categories can be defined and used to separate \nentries relating to different topics.\n\nIn order to support as many different work styles as possible, labnote\ntries and make as few assumptions as possible about how your files are\norganized, and provides configuration options allowing for a wide range of\ndirectory structures and file types.\n\nFinally, labnote is designed to be extensible. While currently there is\nonly a single no-frills theme, the\n`jinga2 `__ templating system used by\nLabnote makes it trivial to create themes.\n\nInstallation\n------------\n\nRequirements\n~~~~~~~~~~~~\n\nTo use labnote, you must have a recent version of \n`Python (>=3.3) `__) available on your machine.\n\nAdditionally, labnote requires the following Python libraries:\n\n- `Beautiful Soup 4 `__\n- `Jinja2 `__\n- `PyYAML `__\n\nIf you are using pip to install labnote, all of the required\ndependencies should be automatically installed for you.\n\nLabnote is currently aimed at supporting Windows, Linux, and OS X setups.\n\nInstalling labnote\n~~~~~~~~~~~~~~~~~~\n\nTo install labnote using\n`pip `__, run:\n\n::\n\n pip install labnote\n\nTesting installation\n~~~~~~~~~~~~~~~~~~~~\n\nTo generate the example notebook, clone the labnote github repo and `cd` to\nthe `examples/bioinformatics` directory and run:\n\n::\n\n labnote -c example.config.yml \\\n -o research/index.html\n\nA file named ``index.html`` should be outputted to the ``research/``\nsub-directory and should look something like what is shown in the screenshot\nabove.\n\nAutomating notebook generation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nLabnote can be easily automated using \n`Cron `__. For example, to have labnote\nregenerate your lab notebook once a day, run ``crontab -e`` to edit your\nuser-level cron jobs, and add:\n\n::\n\n @daily labnote\n\nIf you have created a user configuration for labnote in\n``$HOME/.config/labnote/config.yml``, then you are all set. Otherwise simply\nadd whatever options you would use when calling Labnote from the command-line\nto the cronjob, e.g.:\n\n::\n\n @daily labnote -c /path/to/config.yml\n\nFor more information on how to create and customize cron jobs on your system,\nsee the `Ubuntu Cron Tutorial `__.\n\nConfiguration\n-------------\n\nNotebook configuration\n~~~~~~~~~~~~~~~~~~~~~~\n\nLabnote settings can be specified either via the\ncommand-line at run-time (e.g.\n``labnote -i /some/path/* -o /output/dir``), or using a\n`YAML `__ config file, or both.\n\nBy default, Labnote looks for a file named ``config.yml`` located in\n``$HOME/.config/labnote/``. If this file exists, then it will be used\nused to configure Labnote's behavior.\n\nThe configuration file should look something like:\n\n.. code:: yaml\n\n ---\n # General information\n title: Lab Notebook\n author: Your Name\n email: email@address.com\n\n # Notebook contents\n input_dirs:\n - /home/user/Dropbox/research/201[2-5]/*\n - /home/user/Dropbox/research/2016/*/*\n \n output_file: /home/user/Dropbox/research/index.html\n\n include_files: ['*.html', '*.py', '*.ipynb', 'README.*']\n\n # Research categories\n categories:\n 'Sequence Analysis': ['seq', 'dna', 'rna']\n 'Differential Expression': ['dea', 'differential-expression']\n 'Network Analysis': ['network']\n 'Visualization': ['viz']\n\nThe main settings that are important to define are:\n\n1. ``input_dirs`` - One or more\n `wildcard `__\n filepath expressions\n2. ``output_file`` - Path to save resulting HTML and its associated files\n to. Most often, this will be located some parent directory of the input\n directories, possibly in a web-accessible location (e.g.\n ``/var/www/index.html`` or ``~/public_html/notebook.html``).\n3. ``include_files`` - Files to link to in your notebook.\n4. ``categories`` - A set of categories you would like to use to\n organise your notebook, along with some search strings which can be\n used to find project directories that should be placed under those\n categories.\\*\n\nYou can also point to a config file located in a different location\nusing the ``-c`` option, e.g. ``labnote -c /path/to/config.yml``. If a\nsetting is specified both in a configuration file and using a\ncommand-line switch, the option specified on the command-line will take\nprecedence.\n\n\\*Depending on how you have organized your files, this may be difficult\nto setup. It works best if you can normalize your directory names such\nthat related analyses all include a similar component (e.g.\n'xx-network-analysis').\n\nIf that is not possible or convenient, Labnote also supports\nmanually specifying a projects categorization using hidden `.labnote` metafiles\ninside each project directory.\n\nCustomizing individual entries\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn addition to the automatic processing of entries that labnote normally uses\nto render notebook entries, directory-specific `.labnote` files can also be\nused to control the behavior and appearance of entries. These are YAML files,\nand should follow the format:\n\n.. code:: yaml\n\n ---\n README.html:\n title: Custom Title\n pipeline.sh:\n title: My Interesting Analysis Pipeline\n\nFurthermore, `.labnote` files can be used to specify additional entry metadata\nthat can't be automatically detected such as a description of the notebook\nentry and links to external resources such as web-pages, presentation slides, \netc:\n\n.. code:: yaml\n\n ---\n README.html:\n title: Custom Title\n description: Description of the notebook entry\n links:\n - http://www.google.com\n - research/extra/presentation.ppt\n\n(NOTE 2016/03/02: the description and external link support haven't been implemented yet,\nbut should be shortly...)\n\nDevelopment\n-----------\n\nContributing\n~~~~~~~~~~~~\n\nThe project is just getting started and is changing rapidly.\n`Let me know `__ if you have suggestions or\nwould like to contribute.\n\nRunning tests\n~~~~~~~~~~~~~\n\nThe easiest way to run the unit tests for labnote is to create a\nvirtualenv container and run the tests from within there. For example,\nif you have\n`virtualenvwrapper `__,\nyou can run:\n\n::\n\n git clone https://github.com/khughitt/labnote && cd labnote\n mkvirtualenv labnote\n pip install -e .\n pip install pytest\n hash -r\n py.test\n\nIf you already cloned the labnote repo, you can skip the first step\nabove and simply ``cd`` to the repo directory.\n\nThe ``hash -r`` command in the above is needed after installing py.test\nto ensure that the virtualenv version of py.test is used, and not a\nsystem version.\n\nTo run the tests for a different version of Python, you can simply\ncreate a second virtualenv for that version of Python and repeat the\nprocess:\n\n::\n\n mkvirtualenv --python=python3.5 labnote35\n\nNote that virtualenvwrapper is not needed to run the tests, and the\ncommands for using the base version of virtualenv are pretty similar.\n\nTODO\n~~~~\n\nThings to be added...\n\n- Should entries be added via .labnote files, even if they aren't detected in\n the search paths? If so, may want to first add entries as-is, and then in a\n second round, scan for .labnote files and update affected entries / add new\n ones.\n- Add option to automatically generate README.html files for each README.md\n found (check last modified date to determine whether file should be\n regenerated.)\n- Add option to automatically convert ipynb files to HTML (use runipy)\n- Add option to use icons for entry links.\n- Check for git revision and link to repo if on Github\n- Add option to show short git commit hashes next to entries which associated\n with repos.\n- Allow sorting of categories by order in settings (default), name, or\n date-modified.\n- Add option to show entries in a \"journal mode\" with all entries displayed\n together, sorted from most recent to oldest. Category divisions can either be\n hidden entirely, or displayed as (colored) tags to the right side of the\n entry titles.\n- Color output.\n- Add verbose option (default on?)\n - Print out warning messages for missing images.\n - Print out warning messages for missing titles.\n - Print out message about excluded files\n- Show entry descriptions as tooltips.\n\n.. |Build Status| image:: https://travis-ci.org/khughitt/labnote.svg?branch=master\n :target: https://travis-ci.org/khughitt/labnote", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/khughitt/labnote/tarball/0.9.3", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/khughitt/labnote", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "labnote", "package_url": "https://pypi.org/project/labnote/", "platform": "Linux", "project_url": "https://pypi.org/project/labnote/", "project_urls": { "Download": "https://github.com/khughitt/labnote/tarball/0.9.3", "Homepage": "https://github.com/khughitt/labnote" }, "release_url": "https://pypi.org/project/labnote/0.9.3/", "requires_dist": null, "requires_python": "", "summary": "Flexible and lightweight tool for generating HTML-based electronic lab notebooks", "version": "0.9.3" }, "last_serial": 3623337, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "1a4d0b743bfc3e8e35539b820febc47b", "sha256": "4cf3ad32c34170aeb3c3349c1a8958625c6a0aea05e8c46a47cbe98798bdae02" }, "downloads": -1, "filename": "labnote-0.6.tar.gz", "has_sig": false, "md5_digest": "1a4d0b743bfc3e8e35539b820febc47b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108387, "upload_time": "2016-02-27T23:06:47", "url": "https://files.pythonhosted.org/packages/f9/ce/969c81865563edbfa78d5eadab0ff4ffeedcb9addb9d10c8bcc3fde8f4cd/labnote-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "e69ab8d0968dc2769c3c02bdd2328ee7", "sha256": "82dc12e599b412513c5ecff8928c3c9f0bd687ddecbd7e7f9b1b2f390445ed68" }, "downloads": -1, "filename": "labnote-0.7.tar.gz", "has_sig": false, "md5_digest": "e69ab8d0968dc2769c3c02bdd2328ee7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 377919, "upload_time": "2016-03-06T03:15:22", "url": "https://files.pythonhosted.org/packages/92/7c/2a1b65761e5c947cd048c5a18b7c35f054487370768034f4d2ad47c35adc/labnote-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "3d41ababba7d880d0d212dbb8e82b856", "sha256": "d205197f41bccce3ceb042aa971327694895e3129ef7bb587fdd2df9ef6b2985" }, "downloads": -1, "filename": "labnote-0.8.tar.gz", "has_sig": false, "md5_digest": "3d41ababba7d880d0d212dbb8e82b856", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 406317, "upload_time": "2016-03-13T14:35:50", "url": "https://files.pythonhosted.org/packages/34/14/a42062889fa356c2a4e1d78a59f641e743c04027c965ba3f306ad1fa0d4c/labnote-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "472af15f025b41a98665278dbcfe7e1e", "sha256": "b447cdab4ad2d2de5a71554d99f40dce752aeabaca1398da8c72454746450c94" }, "downloads": -1, "filename": "labnote-0.9.tar.gz", "has_sig": false, "md5_digest": "472af15f025b41a98665278dbcfe7e1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 913854, "upload_time": "2016-03-15T19:47:43", "url": "https://files.pythonhosted.org/packages/b5/da/3f44e7c6b5330b6cfaaf07612c6aeeae6c0864e835e37b54694199cf3fa7/labnote-0.9.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "baad343485bfa383838d2dc939d247bc", "sha256": "af8c7ea8fed51159573dbb909d1d5c77261084e96aebfb19c1099e0dde56750e" }, "downloads": -1, "filename": "labnote-0.9.2.tar.gz", "has_sig": false, "md5_digest": "baad343485bfa383838d2dc939d247bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1889156, "upload_time": "2018-02-27T22:47:51", "url": "https://files.pythonhosted.org/packages/ec/e4/c4d7506cc2322110f546f1b7b1a4147a44d45ef41a26a76c29b9d4e282b0/labnote-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "aa6f09b97c2076ccbc6a982d424a512b", "sha256": "b977d3d073653a96b6b31d9990189ebc9cd2768ca9b9b12d3ae131807c497647" }, "downloads": -1, "filename": "labnote-0.9.3.tar.gz", "has_sig": false, "md5_digest": "aa6f09b97c2076ccbc6a982d424a512b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1889161, "upload_time": "2018-02-27T22:59:42", "url": "https://files.pythonhosted.org/packages/c2/3d/d803f803f0becd27d82f04063f4205dae49a4e9dbdf5d6854850514e4ed6/labnote-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa6f09b97c2076ccbc6a982d424a512b", "sha256": "b977d3d073653a96b6b31d9990189ebc9cd2768ca9b9b12d3ae131807c497647" }, "downloads": -1, "filename": "labnote-0.9.3.tar.gz", "has_sig": false, "md5_digest": "aa6f09b97c2076ccbc6a982d424a512b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1889161, "upload_time": "2018-02-27T22:59:42", "url": "https://files.pythonhosted.org/packages/c2/3d/d803f803f0becd27d82f04063f4205dae49a4e9dbdf5d6854850514e4ed6/labnote-0.9.3.tar.gz" } ] }