Metadata-Version: 2.1
Name: freezerbox
Version: 0.23.0
Summary: Database of DNA sequences.
Home-page: https://github.com/kalekundert/freezerbox
Author: Kale Kundert
Author-email: kale@thekunderts.net
Requires-Python: ~=3.8
Description-Content-Type: text/x-rst
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: appcli
Requires-Dist: autoprop
Requires-Dist: autosnapgene
Requires-Dist: biopython
Requires-Dist: docopt
Requires-Dist: entrypoints
Requires-Dist: exmemo
Requires-Dist: inform~=1.21
Requires-Dist: mako
Requires-Dist: mergedeep
Requires-Dist: more_itertools~=8.0
Requires-Dist: natsort
Requires-Dist: networkx
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: parsy
Requires-Dist: rtoml
Requires-Dist: sklearn
Requires-Dist: stepwise~=0.23
Requires-Dist: stringcase
Requires-Dist: tidyexc
Requires-Dist: tqdm
Requires-Dist: voluptuous
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: sphinx_rtd_theme ; extra == "doc"
Requires-Dist: autoclasstoc ; extra == "doc"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Requires-Dist: coveralls ; extra == "test"
Requires-Dist: parametrize_from_file ; extra == "test"
Requires-Dist: re_assert ; extra == "test"
Project-URL: Bug Tracker, https://github.com/kalekundert/freezerbox/issues
Project-URL: Continuous Integration, https://github.com/kalekundert/freezerbox/actions
Project-URL: Documentation, https://freezerbox.readthedocs.io/en/latest/
Project-URL: Test Coverage, https://coveralls.io/github/kalekundert/freezerbox
Project-URL: Version Control, https://github.com/kalekundert/freezerbox
Provides-Extra: doc
Provides-Extra: test

**********
FreezerBox
**********

.. image:: https://img.shields.io/pypi/v/freezerbox.svg
   :alt: Last release
   :target: https://pypi.python.org/pypi/freezerbox

.. image:: https://img.shields.io/pypi/pyversions/freezerbox.svg
   :alt: Python version
   :target: https://pypi.python.org/pypi/freezerbox

.. image:: https://img.shields.io/readthedocs/freezerbox.svg
   :alt: Documentation
   :target: https://freezerbox.readthedocs.io/en/latest/?badge=latest

.. image:: https://img.shields.io/github/workflow/status/kalekundert/freezerbox/Test%20and%20release/master
   :alt: Test status
   :target: https://github.com/kalekundert/freezerbox/actions

.. image:: https://img.shields.io/coveralls/kalekundert/freezerbox.svg
   :alt: Test coverage
   :target: https://coveralls.io/github/kalekundert/freezerbox?branch=master

.. image:: https://img.shields.io/github/last-commit/kalekundert/freezerbox?logo=github
   :alt: GitHub last commit
   :target: https://github.com/kalekundert/freezerbox

FreezerBox is a tool for keeping track of biochemistry lab reagents such as 
plasmids, oligos, proteins, buffers, etc.  It emphasizes keeping track of *how* 
each construct was made, and aims to be compatible with existing 
reagent-management systems.

Example
=======
- Your want a tool to better manage your plasmids, but you don't want to spend 
  a bunch of time re-entering the information for your existing plasmids, which 
  is stored in a big Excel spreadsheet.  After installing FreezerBox, you 
  quickly  configure it to recognize the column headers in your spreadsheet.  
  Nothing about your existing spreadsheet needs to change.

- You just designed primers to clone a new plasmid.  You enter both the primers 
  and the plasmid into your spreadsheet.  While it's fresh in your head, you 
  also describe how the plasmid will be made in a column labeled 
  "Construction".  The description might look like::

      INV: template=p2 primers=o2,o3

  This syntax indicates that the plasmid is constructed by inverse PCR ("INV") 
  using the plasmid "p2" as a template and the oligos "o1" and "o2" as primers.

- You just received the primers you designed last week, but you don't remember 
  exactly how you were planning to use them.  You use FreezerBox---in 
  conjunction with `stepwise <https://github.com/kalekundert/stepwise>`__---to 
  generate an protocol specifying all the relevant details: volumes, 
  concentrations, construct names, etc.  If you are making several constructs, 
  the protocol will even group similar constructs and create master mixes of 
  common reagents when possible::

      $ stepwise make p3
      March 27, 2020

      $ stepwise make p3

      1. Prepare 10x primer mix [1]:

         Reagent   Stock    Volume
         ─────────────────────────
         o2       100 µM   0.50 µL
         o3       100 µM   0.50 µL
         water             9.00 µL
         ─────────────────────────
                          10.00 µL

      2. Setup 1 PCR reaction and 1 negative control [2]:

         Reagent           Stock    Volume
         ─────────────────────────────────
         water                     3.00 µL
         p2             20 pg/µL   1.00 µL
         primer mix          10x   1.00 µL
         Q5 master mix        2x   5.00 µL
         ─────────────────────────────────
                                  10.00 µL

      3. Run the following thermocycler protocol:

         - 98°C for 30s
         - Repeat 35x:
           - 98°C for 10s
           - 60°C for 20s
           - 72°C for 3 min
         - 72°C for 2 min

      4. Run 1 ligation reaction:

         Reagent              Stock    Volume
         ────────────────────────────────────
         water                        6.75 µL
         T4 ligase buffer       10x   1.00 µL
         T4 PNK             10 U/µL   0.25 µL
         T4 DNA ligase     400 U/µL   0.25 µL
         DpnI               20 U/µL   0.25 µL
         PCR product       50 ng/µL   1.50 µL
         ────────────────────────────────────
                                     10.00 µL

         - Incubate at room temperature for 1h.

      Notes:
      [1] For resuspending lyophilized primers:
          100 µM = 10 µL/nmol

      [2] For diluting template DNA to 20 pg/µL:
          Dilute 1 µL twice into 7*sqrt(DNA) µL

Installation
============
Install FreezerBox using ``pip``::

    $ pip install freezerbox

Usage
=====
More details coming soon...

