Permalink
Browse files

Revised outline for documentation, lot more to be done...

 * write a working basic nuskell tutorial script
 * update copyright statements throughout the library
 * update docstrings throughout the library
 * converge to a small example for library usage
  • Loading branch information...
bad-ants-fleet committed Jan 27, 2017
1 parent 84a7afa commit 7c8ea59c87c6343d36736c9e86450b2275b3b4f1
Showing with 275 additions and 94 deletions.
  1. +1 −1 LICENSE
  2. +2 −4 docs/compiler.rst
  3. +20 −19 docs/conf.py
  4. +123 −7 docs/index.rst
  5. +1 −1 docs/interpreter.rst
  6. +0 −62 docs/nuskell.rst
  7. +128 −0 docs/tlstutorial.rst
View
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2010-2016 Seung Woo Shin, Qing Dong, Robert Johnson,
Copyright (c) 2010-2017 Seung Woo Shin, Qing Dong, Robert Johnson,
Stefan Badelt, Erik Winfree <winfree@caltech.edu>
Permission is hereby granted, free of charge, to any person obtaining a copy of
View
@@ -1,8 +1,6 @@
nuskell.compiler
=================
Documentation of the nuskell.compiler library functions.
==========================
.. automodule:: nuskell.compiler
:members: main, compile, print_as_PIL, print_as_DOM
:members: translate, enumerateTT, printCRN, InvalidSchemeError
View
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
#
# nuskell documentation build configuration file, created by
# Nuskell documentation build configuration file, created by
# sphinx-quickstart on Mon May 9 21:46:13 2016.
#
# This file is execfile()d with the current directory set to its
@@ -30,12 +30,13 @@
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
#'sphinx.ext.doctest',
#'sphinx.ext.intersphinx',
#'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinxcontrib.napoleon', # Google-style doc strings
]
# Add any paths that contain templates here, relative to this directory.
@@ -51,17 +52,17 @@
master_doc = 'index'
# General information about the project.
project = u'nuskell'
copyright = u'2016, Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...'
project = u'Nuskell'
copyright = u'2010-2017, Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.0.1'
version = '0.2'
# The full version, including alpha/beta/rc tags.
release = '0.0.1'
release = '0.2.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -204,8 +205,8 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'nuskell.tex', u'nuskell Documentation',
u'Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...', 'manual'),
('index', 'nuskell.tex', u'Nuskell Documentation',
u'Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -234,8 +235,8 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'nuskell', u'nuskell Documentation',
[u'Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...'], 1)
('index', 'nuskell', u'Nuskell Documentation',
[u'Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree'], 1)
]
# If true, show URL addresses after external links.
@@ -248,8 +249,8 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'nuskell', u'nuskell Documentation',
u'Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...', 'nuskell', 'One line description of project.',
('index', 'nuskell', u'Nuskell Documentation',
u'Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree', 'Nuskell', 'A verifying CRN-to-DSD compiler.',
'Miscellaneous'),
]
@@ -269,13 +270,13 @@
# -- Options for Epub output ----------------------------------------------
# Bibliographic Dublin Core info.
epub_title = u'nuskell'
epub_author = u'Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...'
epub_publisher = u'Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...'
epub_copyright = u'2016, Seung Woo Shin, Erik Winfree, Robert Johnson, Stefan Badelt, ...'
epub_title = u'Nuskell'
epub_author = u'Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree'
epub_publisher = u'Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree'
epub_copyright = u'2010-2017, Seung Woo Shin, Qing Dong, Robert Johnson, Stefan Badelt, Erik Winfree'
# The basename for the epub file. It defaults to the project name.
#epub_basename = u'nuskell'
#epub_basename = u'Nuskell'
# The HTML theme for the epub output. Since the default themes are not optimized
# for small screen space, using the same theme for HTML and epub output is
View
@@ -1,18 +1,93 @@
.. nuskell documentation master file, created by
.. Nuskell documentation master file, created by
sphinx-quickstart on Mon May 9 21:46:13 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
The nuskell compiler documentation
===================================
The Nuskell Documentation
============================
--------------------------
Introduction
--------------------------
``Nuskell`` integrates biophysical modelling of nucleic acids with rigor of
modern compilers to design and characterize *toehold-mediated DNA strand
displacement* networks. It compiles dynamic behavior (algorithms) into using
nucleic acid chemistry, and verifies wether a given nucleic acid network
implements a particular dynamic behavior.
Currently, ``Nuskell`` supports three different I/O formats for domain-level
specifications of DSD networks: **\*.dom** (Nuskell format), **\*.pil** (Pepper
internal language format), **\*.dna** (VisualDSD format).
.. code-block:: bash
nuskell [options] < formal_crn.in > domain-specification.out
The ``Nuskell library`` enables researchers to make custom scripts for their
design ideas. The interface provides a number of different CRN-to-DSD
translation schemes, functions that test different CRN equivalence notions, as
well as reaction enumeration and CRN simulations based on emperical DNA folding
parameters.
.. code-block:: python
from nuskell import translate, verify
testtube = translate('A+B->C', scheme = 'soloveichik2010.ts')
v = verify('A+B->C', testtube, notion = 'bisimulation')
if v :
print("Input CRN and TestTube-Species are bisimulation equivalent.")
else :
print("Input CRN and TestTube-Species are not bisimulation equivalent.")
--------------------------
The Nuskell Language
--------------------------
**Translation schemes** provide instructions for Nuskell to translate a
chemical reaction network (CRN) into a domain-level strand displacement (DSD)
system. The Nuskell programming language is the interface to add a new
translation scheme to the library.
This section describes the philosophy and the ``syntax`` of translation
schemes.
The nuskell compiler translates formal chemical reaction networks (CRNs) into
domain-level (DOM) representations of DNA strand displacement circuits.
.. toctree::
nuskell
API Documentation:
tlstutorial
--------------------------
Compiler API
--------------------------
Reference manual for the ``Nuskell`` compiler library. **Quickstart** introduces
high-level concepts that are supported by library. Base-level functions for
advanced development are described in the **API Reference** section.
Quickstart
-----------------------
* Translate a formal CRN into a TestTube object:
.. code-block:: python
from nuskell import translate
# Test a simple bimolecular reaction
crn = 'A + B -> C + D'
tls = 'soloveichik2010.ts'
solution, _ = translate(foo, tls)
API Reference
-----------------------
.. toctree::
:maxdepth: 2
@@ -22,6 +97,47 @@ API Documentation:
interpreter
verifier
.. Nuskell Objects
.. -----------------------
..
.. Input Parsers
.. -----------------------
..
.. CRN-to-DSD Translation
.. -----------------------
..
.. CRN Equivalence
.. -----------------------
..
.. Output Formats
.. -----------------------
Developer Guidelines
============================
In order to ensure sustainability of the ``Nuskell`` compiler package, there
are a few rules that developers have to respect before submitting a pull request.
Please make sure that your editor or IDE supports these settings.
* **Use two-whitespace indents.**
Tab-characters are strictly forbidden, as they default to four-whitespace
indents. In fact, the only white-space characters that should be used are
' ' and '\\n'.
* **Do not exceed 80 characters per line**
* **Format docstrings according to [Google Docstring Guidelines]**
* other than that, ... try to follow the guides for coding as much as possible,
e.g. Google, Hitchhiker's, ...
The main repository of ``Nuskell`` can be found at ``GitHub``:
https://github.com/bad-ants-fleet/nuskell
Indices and tables
==================
View
@@ -1,5 +1,5 @@
nuskell.interpreter
=================
===================
API documentation of the nuskell.compiler library
View

This file was deleted.

Oops, something went wrong.
Oops, something went wrong.

0 comments on commit 7c8ea59

Please sign in to comment.