title "version = 1.10 of libdef.inst 2002 May 3 Testing Delila";
(* These are example instructions used for testing various abilities
of Delila, as defined in the library definition, "libdef":
https://alum.mit.edu/www/toms/ftp/libdef
These instructions are to be used with the example library libdef.lib1:
https://alum.mit.edu/www/toms/ftp/libdef.lib1
*)
(* Delila can now handle two kinds of comments. The first kind uses
paranthesis and astrisks. The second uses curly brackets: {}. The two kinds
can be nested inside each other. You can use the {} to block off segments of
instructions. *)
organism E.xamples;
chromosome E.xamples;
(* Test linear and circular pieces. Case numbers refer to the
configurational cases inside the Delila code. *)
piece LINEAR;
name "Delila case 1 tests";
name "get from 1 to 20;"; get from 1 to 20;
name "get from 1 to 1;"; get from 1 to 1;
name "get from 3 to 10;"; get from 3 to 10;
name "get from 10 to 3;"; get from 10 to 3;
organism E.xamples;
chromosome E.xamples;
piece CIRCULAR; (* read in but don't use *)
piece LINEAR; (* should switch to linear case ok *)
name "get from 1 to 3;"; get from 1 to 3;
name "get from 3 to 1;"; get from 3 to 1;
name "get from 6 to 1;"; get from 6 to 1;
name "get from 10 to 1;"; get from 10 to 1;
(* these couldn't be handled by the earlier delila: *)
name "get from 1 to 1 direction complement;"; get from 1 to 1 direction complement;
name "get from 1 to 1 direction -;"; get from 1 to 1 direction -;
piece CIRCULAR;
name "Delila case 2 tests";
name "get from 1 to 1;"; get from 1 to 1;
name "get from 1 to 20;"; get from 1 to 20;
name "get all;"; get all piece;
name "get all cut 7 ;"; get all piece cut 7;
name "get all cut 7 -;"; get all piece cut 7 direction -;
name "Delila case 3 tests";
name "get from 15 to 6 direction +;"; get from 15 to 6 direction +;
name "get from 15 to 6;"; get from 15 to 6;
name "get from 20 to 1 direction +;"; get from 20 to 1 direction +;
name "get from 1 to 20 direction +;"; get from 1 to 20 direction +;
name "get from 2 to 20 direction +;"; get from 2 to 20 direction +;
name "get from 7 to 20 direction +;"; get from 7 to 20 direction +;
name "get from 6 to 15 direction -;"; get from 6 to 15 direction -;
(**************************************************************************)
set doubling on;
piece LINEAR;
name "Begin testing mutations in LIBDEF document";
(* convert EcoRI site to to HindIII: *)
(* illegal a2a: Delila will object to this since there is no change.
get from 1 to 20 with g1a.a2a.a3g.t4c.t5t.c6t;
*)
name "";
get from 1 to 6 with g1t;
(* The mutation coordinates and bases refer to the positive
orientation of the piece, as shown in this example. *)
name " for the complement";
get from 6 to 1 with g1t;
name "";
get from 1 to 6 with i2,3cc;
name " as replacement";
get from 1 to 6 with i1,4cc;
name " Case 1";
get from 1 to 6 with i1,4ccaa; (* Insert Case 1, gives gccaattc *)
name " Case 2";
get from 1 to 6 with i1,4~ccaa; (* Insert Case 2, gives gttggttc *)
name " Case 3";
get from 6 to 1 with i1,4ccaa; (* Insert Case 3, gives gaattggc *)
name " Case 4";
get from 6 to 1 with i1,4~ccaa; (* Insert Case 4, gives gaaccaac *)
name " as deletion";
get from 1 to 6 with i1,4;
name "";
get from 1 to 6 with d2,5;
name ".";
get from 1 to 6 with g1t.i1,4ccc;
(**************************************************************************)
(* more tests *)
name "Markers are sorted!";
get from 1 to 6 with t5g.i1,4cc.g1t;
name "simple change";
get from 1 to 6 with g1t;
name "different arrow size";
set arrow 3;
get from 1 to 6 with g1t.c6g;
set arrow 1.5; (* set it back to "normal" *)
get from 1 to 6 with a2t;
get from 1 to 20 with i1,4cc;
get from 1 to 6 with d3,3;
get from 1 to 6 with i3,4cc;
get from 1 to 6 with i3,4ggttgg;
name "tricky reversal!";
get from 6 to 1 with i3,4ggttgg;
name "insertion first";
get from 1 to 25 with g1t.c6g.i7,8c.g12c;
name "insertion later - same result!";
get from 1 to 25 with g1t.g12c.c6g.i7,8c;
name "longer insertion";
get from 1 to 25 with g1t.c6g.i7,8cc.g12c;
name "deletion propagation";
get from 1 to 25 with g1t.c6g.d3,4;
name "insertion propagation";
get from 1 to 25 with g1t.c6g.i3,4gc;
name "delete";
get from 1 to 25 with g1t.c6g.d3,4;
name "delete";
get from 1 to 25 with g1t.c6g.d8,8.g12c;
name "delete: d18,22 coordinates unaffected by earlier d8,8!";
get from 1 to 25 with g1t.c6g.d8,8.g12c.d18,22;
name "complex!";
get from 1 to 25 with g1t.c6g.d8,8.i9,10a.g12c.d18,22.d3,4;
name "insert 1";
get from 1 to 25 with g1t.c6g.i9,10a.g12c.d18,22;
name "insert 2";
get from 1 to 25 with g1t.c6g.i9,10aa.g12c.d18,22;
name "another complex delete and insert";
get from 1 to 25 with g1t.c6g.d8,8.i9,10a.g12c.d18,22;
name "delete NEXT TO insert!";
get from 1 to 25 with g1t.c6g.d8,8.i7,8a.g12c.d18,22;
name "complex case";
get from 1 to 10 with g1t.c6g.d8,8.i9,10a;
name "insert cgc BEFORE sequence";
get from 1 to 20 with i-10,-3cgc;
get from 1 to 20 with i0,1cgc;
name "insert cgc AFTER sequence";
get from 1 to 20 with i21,22cgc;
(**************************************************************************)
(* insertion and deletion on the complement have special code
that must be specifically tested: *)
set doubling on;
piece LINEAR;
name "insertion on homologous";
get from 1 to 20 with i3,4aaa;
name "insertion on complement";
get from 20 to 1 with i3,4aaa;
name "deletion on homologous";
get from 1 to 20 with d3,4;
name "deletion on complement";
get from 20 to 1 with d3,4;
(**************************************************************************)
(* "inst.indel 1999 May 23 Testing insert/deletes"; *)
(* A huge set of insert and delete tests. Some can be used to check that the
marks are correct for wrapping. Set lister line length to 10 for these *)
set doubling on;
organism E.xamples;
chromosome E.xamples;
piece LINEAR;
get from 1 to 6 with g1a;
get from 1 to 50 with i30,36a;
get from 1 to 50 with i30,36;
get from 50 to 1 with i30,36a;
get from 50 to 1 with i30,36;
get from 1 to 50 with i25,36;
get from 50 to 1 with i25,36;
get from 1 to 8 with d2,2;
get from 1 to 8 with d1,2;
get from 1 to 8 with d0,2;
get from 1 to 8 with d4,5;
get from 1 to 8 with d4,6;
get from 1 to 8 with d4,7;
get from 1 to 8 with d4,8;
get from 1 to 8 with d4,9;
get from 8 to 1 with d2,2;
get from 8 to 1 with d1,2;
get from 8 to 1 with d0,2;
get from 8 to 1 with d4,4;
get from 8 to 1 with d4,5;
get from 8 to 1 with d4,6;
get from 8 to 1 with d4,7;
get from 8 to 1 with d4,8;
get from 8 to 1 with d4,9;
get from 1 to 6 with i2,5;
get from 1 to 6 with i2,5c;
get from 1 to 6 with i2,5cc;
get from 6 to 1 with i2,5cc;
get from 1 to 6 with i5,6aaaa;
get from 6 to 1 with i5,6aaaa;
get from 15 to 1 with i5,6cccc;
get from 1 to 10 with i5,6aaaa;
get from 50 to 1 with i33,36a;
get from 50 to 1 with i35,36aaaa;
get from 50 to 1 with g45t.t40g.i35,36aaaa;
get from 50 to 1 with i25,36tttttttttt;
(* 1234567890 *)
get from 1 to 50 with i25,36tttttttttt;
get from 1 to 50 with i26,27c;
get from 1 to 50 with i26,27cc;
get from 1 to 50 with i25,27c;
get from 1 to 50 with i25,27cc;
get from 1 to 50 with i25,27cccccc;
get from 1 to 50 with i24,35caaaaaaaac;
get from 1 to 50 with i26,35;
get from 50 to 1 with i26,35;
get from 50 to 1 with d26,35;
get from 1 to 50 with d26,400;
get from 1 to 75 with a2g.a25g.g36a.d26,35.i55,56aattaa;
get from 75 to 1 with a2g.a25g.g36a.d26,35.i55,56aattaa;
get from 1 to 75 with a2g.d26,35.i55,56aattaa;
(* note how the base change is done on the *complement* *)
get from 1 to 75 with a2g.i26,28atgaaaatg;
get from 75 to 1 with a2g.i26,28atgaaaatg;
(* Cases That Halt Delila: *)
(* get from 8 to 1 with d1,9; (@ full deletion *)
(**************************************************************************)
(* propagation tests *)
get from 1 to 25 with g1t.c6g.d7,8.g12c;
get from 1 to 25 with g1t.c6g.i7,8a.g12c;
get from 1 to 25 with g1t.d7,8.i0,1aa.g12c.c6t.t9g.i8,9aa;
get from 1 to 25 with g1t.c6g.d7,8.g12c.t10c.t9g;
get from 1 to 25 with g1t.c6g.d7,8.g12c.t10c.t9g.i8,9aa;
get from 1 to 25 with g1t.c6g.g12c.t10c.t9g.i8,9aa;
get from 1 to 25 with g1t.c6g.d7,8.g12c.t10c.t9g.i8,9aaaaa;
(**************************************************************************)
(* some tests that get so complex the marks fail: *)
piece LINEAR;
name "complex mutations";
get from 1 to 20;
get from 1 to 6;
get from 1 to 6 with g1t;
get from 1 to 6 with g1c;
get from 1 to 6 with g1a;
get from 1 to 6 with a2c;
get from 1 to 6 with i1,2t;
get from 1 to 6 with i1,2ttt;
get from 1 to 6 with i5,6ggg;
get from 1 to 6 with i1,2tct;
get from 1 to 6 with i1,2tct.i5,6ggg;
name "Now can handle marks beyond here (changes ok)";
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8;
get from 1 to 6 with i1,2tct;
get from 1 to 6 with i1,2tct.i2,3ggg;
get from 1 to 6 with i1,2tct.i2,3ggg.d3,4;
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8;
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d1,1;
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d0,1;
(**************************************************************************)
name "This is a subtle propagation problem.";
(* The original problem has a complex background.
The second of these two didn't propagate correctly: *)
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d3,4;
name "i1,3 must propagate past tct!";
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d3,4.i1,3;
name "Reduce the problem to its two components; first component";
get from 1 to 6 with i1,3;
name "second component";
get from 1 to 6 with i1,2tct ;
name "In the combined form, the second base should be deleted";
get from 1 to 6 with i1,2tct.i1,3;
name "a deletion functions correctly as a control";
get from 1 to 6 with i1,2tct.d2,2;
(**************************************************************************)
get from 1 to 6 with d2,2;
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d3,4.d2,2;
get from 1 to 6 with i1,2tct.i5,6ggg.d6,8.d3,4.d2,2;
get from 1 to 6 with i1,6ggcc;
get from 1 to 20 with i11,14cc;
get from 1 to 20 with i2,5cc;
get from 1 to 20 with d-5,6;
(* this fails appropriately:
get from 1 to 6 with g3t;
*)
(* Cases delila will object to. No change but they mess
up the marks file: *)
get from 8 to 8 with d-3,2; (* off the end *)
get from 8 to 8 with d9,13; (* off the end *)
{
You can use this for your own tests:
piece LINEAR;
set doubling on;
get from 1 to 75 with a2g.i26,28atgaaaatg;
get from 75 to 1 with a2g.i26,28atgaaaatg;
}