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": ftp://ftp.ncifcrf.gov/pub/delila/libdef These instructions are to be used with the example library libdef.lib1: ftp://ftp.ncifcrf.gov/pub/delila/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; }