Although the output of DPA is a single game with variations, this can broken down into separate individual game. Once done you can then remove the duplicates. These individual games with further manipulations like adding game results can be used for building a book like polyglot, arena and ctg books.
EPD's can also be generated out of this individual games, then duplicates can also be removed. A custom book can be created out of this EPD'S too. Like NN you can have
[epd1] [bm1, pr1] [bm2, pr2] ..[bmn, prn] [pos_pr]
[epd2] [...]
...
and so on
where pr1 to prn are the move probabilities, and pos_pr is the win probability of the current EPD position. These pr's can be calculated from the score cp output of the analyzing engine.
Single game
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start after that node } 6. Bc4 { 0.77 } ( 6. Bd3 { 0.77 } 6... g6 { 0.29 } ( 6... Nc6 { 0.29 } 7. Nxc6 { 0.67 } ( 7. Bc4 { 0.67 } ) ( 7. Be2 { 0.67 } ) ) ( 6... Nbd7 { 0.29 } 7. O-O { 0.52 } ( 7. a4 { 0.52 } ) ( 7. h3 { 0.52 } ) ) 7. Nf3 { 0.45 } ( 7. h3 { 0.45 } ) ( 7. O-O { 0.45 } ) ) ( 6. Bg5 { 0.77 } 6... e6 { 0.19 } ( 6... Nbd7 { 0.19 } 7. Be2 { 0.83 } ( 7. Bh4 { 0.83 } ) ( 7. Be3 { 0.83 } ) ) ( 6... Nc6 { 0.19 } 7. Qd3 { 0.74 } ( 7. Be2 { 0.74 } ) ( 7. Bc4 { 0.74 } ) ) 7. Qf3 { 0.67 } ( 7. f4 { 0.67 } ) ( 7. g3 { 0.67 } ) ) 6... e6 { -0.1 } ( 6... e5 { -0.1 } 7. Nde2 { 0.74 } ( 7. Nf5 { 0.74 } ) ( 7. Nf3 { 0.74 } ) ) ( 6... Qc7 { -0.1 } 7. Bb3 { 0.63 } ( 7. Be2 { 0.63 } ) ( 7. Bd3 { 0.63 } ) ) 7. a4 { 0.71 } ( 7. O-O { 0.71 } ) ( 7. Be3 { 0.71 } ) *
Individual game.
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e6 { -0.1 } 7. a4 { 0.71 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... g6 { 0.29 } 7. Nf3 { 0.45 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nc6 { 0.29 } 7. Nxc6 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nc6 { 0.29 } 7. Bc4 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nc6 { 0.29 } 7. Be2 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nbd7 { 0.29 } 7. O-O { 0.52 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nbd7 { 0.29 } 7. a4 { 0.52 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... Nbd7 { 0.29 } 7. h3 { 0.52 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... g6 { 0.29 } 7. h3 { 0.45 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bd3 { 0.77 } 6... g6 { 0.29 } 7. O-O { 0.45 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... e6 { 0.19 } 7. Qf3 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nbd7 { 0.19 } 7. Be2 { 0.83 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nbd7 { 0.19 } 7. Bh4 { 0.83 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nbd7 { 0.19 } 7. Be3 { 0.83 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nc6 { 0.19 } 7. Qd3 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nc6 { 0.19 } 7. Be2 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... Nc6 { 0.19 } 7. Bc4 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... e6 { 0.19 } 7. f4 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bg5 { 0.77 } 6... e6 { 0.19 } 7. g3 { 0.67 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e5 { -0.1 } 7. Nde2 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e5 { -0.1 } 7. Nf5 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e5 { -0.1 } 7. Nf3 { 0.74 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... Qc7 { -0.1 } 7. Bb3 { 0.63 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... Qc7 { -0.1 } 7. Be2 { 0.63 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... Qc7 { -0.1 } 7. Bd3 { 0.63 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e6 { -0.1 } 7. O-O { 0.71 } *
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 { Deep analysis start
after that node } 6. Bc4 { 0.77 } 6... e6 { -0.1 } 7. Be3 { 0.71 } *
You can use pgn-extract to split the single file into individual games.