Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connects to #8 remove WITH support #9

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Book build output
_book

# eBook build output
*.epub
*.mobi
*.pdf
11 changes: 8 additions & 3 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@ Teselagen's Manual, based on Gitbook.

Instructions to edit/compile manual within localhost
--
1. Install gitbook: `npm install gitbook -g`
1. Install the gitbook cli tool: `npm install gitbook-cli -g` (https://github.com/GitbookIO/gitbook)
(NOTE: you may need to npm uninstall gitbook first: `npm uninstall gitbook -g` because there is a memory bug
in the old version of gitbook [1.5] that throws an `EMFILE, too many open files` error when you try to build the website)
2. Edit files: SUMMARY.md contains left menu. The structure of this file is defined by gitbook. The body of the manual is under 'chp/' (in markdown).
3. Extra js/css/html is added through a node module installed under node_modules/gitbook-plugin-tesela/
4. Under root folder, execute: `gitbook build . --output=./www`
5. User favorite local web-server to serve 'www/'
4. Under root teselagen-manual folder, execute: `gitbook build . --output=./www`
5. To serve the site locally using gitbook itself simply run `gitbook serve` from the main teselagen-manual directory
and it should start the server on `http://localhost:4000`. Alternatively you can use another web-server to serve 'www/'
(e.g. `python -m SimpleHTTPServer 8000` from within the www directory)



Instructions to push changes to live server (if authorized)
Expand Down
34 changes: 27 additions & 7 deletions chp/chp12/chp12_5.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,15 @@ Rule <i>rule_name</i>([NOT] <i>operand1</i> BEFORE <i>operand2</i>);
Rules utilizing the BEFORE operator (or its [NOT] negated version) only apply to those devices that contain both part <i>operand1</i> and part <i>operand2</i>. In the same linear construct, all instances of part <i>operand1</i> must occur before (to the 5' of) all instances of part <i>operand2</i>. Note that this is equivalent to Rule <i>rule_name</i>(<i>operand2</i> AFTER <i>operand1</i>). This rule is currently ignored for circular constructs. Note that the BEFORE operator does not take into consideration the directionalities (forward/reverse) of <i>operand1</i> and <i>operand2</i>.

**WITH** operator:
Rule <i>rule_name</i>([NOT] <i>operand1</i> WITH <i>operand2</i>);
Part <i>operand1</i> and part <i>operand2</i> must both occur in every construct. Note that this definition of the WITH operator is different from (and much more strict than) its original implementation in j5, which has been migrated to the THEN operator. For backwards compatibility, the NOTWITH operator is currently supported and equivalent to (NOT <i>operand1</i> WITH <i>operand2</i>), although support for NOTWITH may be deprecated going forward.
```
Support for the WITH operator (both parts must occur in every construct) has been
deprecated and is no longer supported. The THEN operator is recommended instead.

This change removes support for the following rules:
Rule rule_name([NOT] operand1 WITH operand2);
and
Rule rule_name(operand1 NOTWITH operand2);
```

**THEN** operator:
Rule <i>rule_name</i>([NOT] <i>operand1</i> THEN <i>operand2</i>);
Expand All @@ -46,10 +53,23 @@ Rule <i>rule_name</i>([NOT] <i>operand1</i> MORETHAN <i>operand2</i>);
Part <i>operand1</i> must occur more than <i>operand2</i> times in each construct. This is a useful rule to set if you are designing a combinatorial library where you would like to have the order of parts shuffled (which requires placing the same part in multiple target part bins (see the target part list file documentation for more information), and you would like the copy number of each part above a certain threshold (i.e. you are not interested in assembling a plasmid without a gene present at least once). For backwards compatibility, the NOTMORETHAN operator is currently supported and equivalent to (NOT <i>operand1</i> MORETHAN <i>operand2</i>), although support for NOTMORETHAN may be deprecated going forward.

Here is an **example Eugene rules list file** (stylized for clarity):

![Eugene rules list](../../images/pastedImage28.png)
```
// Rules preventing multiple instances of the same gene
Rule r1(NOT HMGS_SC_CO MORETHAN 1);
Rule r2(NOT HMGR_SC_CO MORETHAN 1);
Rule r3(NOT HMGS_SA MORETHAN 1);
Rule r4(NOT HMGR_SA MORETHAN 1);
Rule r5(NOT MK_SC_CO MORETHAN 1);
Rule r6(NOT PMK_SC_CO_f MORETHAN 1);
Rule r7(NOT ispA-O MORETHAN 1);
Rule r8(NOT idi-O MORETHAN 1);
Rule r9(NOT atoB MORETHAN 1);

// Rules forcing use of one gene with another
Rule r10(HMGS_SC_CO THEN HMGR_SC_CO);
Rule r11(HMGS_SA THEN HMGR_SA);
Rule r12(HMGR_SC_CO THEN HMGS_SC_CO);
Rule r13(HMGR_SA THEN HMGS_SA);
```

In this example, note that the seemingly redundant rules that contain the THEN operator need to be defined twice to ensure a symmetric dependency.

Here is the actual example Eugene rules list file (eugenerules.eug):
[![](../../images/screenIcon.png)](../../documents/eugenerules00.eug.txt)
11 changes: 8 additions & 3 deletions www/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@ Teselagen's Manual, based on Gitbook.

Instructions to edit/compile manual within localhost
--
1. Install gitbook: `npm install gitbook -g`
1. Install the gitbook cli tool: `npm install gitbook-cli -g` (https://github.com/GitbookIO/gitbook)
(NOTE: you may need to npm uninstall gitbook first: `npm uninstall gitbook -g` because there is a memory bug
in the old version of gitbook [1.5] that throws an `EMFILE, too many open files` error when you try to build the website)
2. Edit files: SUMMARY.md contains left menu. The structure of this file is defined by gitbook. The body of the manual is under 'chp/' (in markdown).
3. Extra js/css/html is added through a node module installed under node_modules/gitbook-plugin-tesela/
4. Under root folder, execute: `gitbook build . --output=./www`
5. User favorite local web-server to serve 'www/'
4. Under root teselagen-manual folder, execute: `gitbook build . --output=./www`
5. To serve the site locally using gitbook itself simply run `gitbook serve` from the main teselagen-manual directory
and it should start the server on `http://localhost:4000`. Alternatively you can use another web-server to serve 'www/'
(e.g. `python -m SimpleHTTPServer 8000` from within the www directory)



Instructions to push changes to live server (if authorized)
Expand Down
Loading