1 alias Payload = int; 2 alias J = Join!Payload; 3 alias S = Scaffold!Payload; 4 alias CN = ContigNode; 5 alias CP = ContigPart; 6 // contig 1 contig 2 7 // 8 // o o o o 9 // / e4 10 // o -- o ------- o -- o 11 // e3 12 // 13 // o -- o o -- o o -- o 14 // \ e7 e8 / \ e9 15 // o o o o o o 16 // 17 // contig 5 contig 4 contig 3 18 // 19 auto scaffold1 = buildScaffold!(sumPayloads!Payload, Payload)(5, [ 20 J(CN(1, CP.end), CN(2, CP.begin), 1), // e3 21 J(CN(2, CP.end), CN(2, CP.post ), 1), // e4 22 J(CN(4, CP.end), CN(4, CP.post ), 1), // e7 23 J(CN(3, CP.pre), CN(3, CP.begin), 1), // e8 24 J(CN(3, CP.end), CN(3, CP.post ), 1), // e9 25 ]); 26 27 assert(equal(scaffoldStarts!Payload(scaffold1), [ 28 CN(1, CP.begin), 29 CN(3, CP.pre), 30 CN(4, CP.begin), 31 CN(5, CP.begin), 32 ])); 33 34 // contig 1 contig 2 35 // 36 // o o o o 37 // 38 // e1 39 // o -- o ------- o -- o 40 // \_________________/ 41 // e2 42 // 43 auto scaffold2 = buildScaffold!(sumPayloads!Payload, Payload)(2, [ 44 J(CN(1, CP.end), CN(2, CP.begin), 1), // e1 45 J(CN(2, CP.end), CN(1, CP.begin ), 1), // e2 46 ]); 47 48 assert(equal(scaffoldStarts!Payload(scaffold2), [ 49 CN(1, CP.begin), 50 ]));
Get a range of ContigNodes where full contig walks should start.