Browse Source

Revert "progresss"

This reverts commit 7da992967fd72a313a1e60b2ed706f646f96385c.
Thomas 1 year ago
parent
commit
fde174694b
3 changed files with 253 additions and 329 deletions
  1. 180 163
      Cargo.lock
  2. 0 2
      Cargo.toml
  3. 73 164
      src/variants.rs

+ 180 - 163
Cargo.lock

@@ -31,54 +31,53 @@ dependencies = [
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.18"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "anstream"
-version = "0.6.14"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.7"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.4"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.3"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
  "windows-sys",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.3"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
  "windows-sys",
@@ -86,9 +85,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.83"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "approx"
@@ -101,9 +100,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.3.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "bgzip"
@@ -136,6 +135,12 @@ version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
 [[package]]
 name = "bitflags"
 version = "2.5.0"
@@ -144,9 +149,9 @@ checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bytemuck"
-version = "1.16.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 
 [[package]]
 name = "byteorder"
@@ -173,13 +178,12 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.97"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
- "once_cell",
 ]
 
 [[package]]
@@ -219,7 +223,7 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.63",
+ "syn 2.0.57",
 ]
 
 [[package]]
@@ -239,9 +243,9 @@ dependencies = [
 
 [[package]]
 name = "colorchoice"
-version = "1.0.1"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "confy"
@@ -277,19 +281,6 @@ dependencies = [
  "cfg-if",
 ]
 
-[[package]]
-name = "crossbeam"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-epoch",
- "crossbeam-queue",
- "crossbeam-utils",
-]
-
 [[package]]
 name = "crossbeam-channel"
 version = "0.5.12"
@@ -318,15 +309,6 @@ dependencies = [
  "crossbeam-utils",
 ]
 
-[[package]]
-name = "crossbeam-queue"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
-dependencies = [
- "crossbeam-utils",
-]
-
 [[package]]
 name = "crossbeam-utils"
 version = "0.8.19"
@@ -450,9 +432,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.11.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encode_unicode"
@@ -499,9 +481,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "flate2"
-version = "1.0.30"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -527,9 +509,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.15"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -544,9 +526,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "half"
-version = "2.4.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -554,9 +536,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.5"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -593,9 +575,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hts-sys"
-version = "2.1.4"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9f348d14cb4e50444e39fcd6b00302fe2ed2bc88094142f6278391d349a386d"
+checksum = "deebfb779c734d542e7f14c298597914b9b5425e4089aef482eacb5cab941915"
 dependencies = [
  "bzip2-sys",
  "cc",
@@ -683,12 +665,6 @@ dependencies = [
  "windows-sys",
 ]
 
-[[package]]
-name = "is_terminal_polyfill"
-version = "1.70.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
-
 [[package]]
 name = "itoa"
 version = "1.0.11"
@@ -697,9 +673,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.31"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
@@ -776,9 +752,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.154"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libm"
@@ -792,7 +768,7 @@ version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags",
+ "bitflags 2.5.0",
  "libc",
 ]
 
@@ -827,9 +803,9 @@ checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
 
 [[package]]
 name = "lock_api"
-version = "0.4.12"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1012,7 +988,7 @@ version = "0.49.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b94966806ac7aec118d41eea7080bfbd0e8b843ba64f46522c57f0f55cfb1f0"
 dependencies = [
- "bitflags",
+ "bitflags 2.5.0",
  "indexmap",
  "lexical-core",
  "memchr",
@@ -1052,9 +1028,9 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.6"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
@@ -1070,19 +1046,20 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.2"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
 dependencies = [
+ "autocfg",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.19"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -1122,15 +1099,6 @@ dependencies = [
  "vcpkg",
 ]
 
-[[package]]
-name = "pandora_lib_report"
-version = "0.1.0"
-source = "git+https://git.t0m4.fr/Thomas/pandora_lib_report.git#c4a9a89fae8ee8a4cc2790fe7acee0102e366aa3"
-dependencies = [
- "crossbeam",
- "indicatif",
-]
-
 [[package]]
 name = "pandora_lib_variants"
 version = "0.1.0"
@@ -1157,7 +1125,6 @@ dependencies = [
  "noodles-tabix",
  "noodles-vcf",
  "num-integer",
- "pandora_lib_report",
  "pot",
  "prettytable-rs",
  "rayon",
@@ -1173,22 +1140,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.10"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.15"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "percent-encoding"
@@ -1241,9 +1208,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.82"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -1256,9 +1223,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.36"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1331,11 +1298,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.5.1"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -1384,7 +1351,7 @@ version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
 dependencies = [
- "bitflags",
+ "bitflags 2.5.0",
  "fallible-iterator",
  "fallible-streaming-iterator",
  "hashlink",
@@ -1433,15 +1400,15 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.17"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.18"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safe_arch"
@@ -1466,29 +1433,29 @@ checksum = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
 
 [[package]]
 name = "serde"
-version = "1.0.202"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.202"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.63",
+ "syn 2.0.57",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.117"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "itoa",
  "ryu",
@@ -1551,9 +1518,9 @@ dependencies = [
 
 [[package]]
 name = "strsim"
-version = "0.11.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "strum_macros"
@@ -1565,7 +1532,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.63",
+ "syn 2.0.57",
 ]
 
 [[package]]
@@ -1581,9 +1548,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.63"
+version = "2.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
+checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1612,22 +1579,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.60"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.60"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.63",
+ "syn 2.0.57",
 ]
 
 [[package]]
@@ -1693,9 +1660,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-width"
-version = "0.1.12"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "url"
@@ -1744,9 +1711,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wide"
-version = "0.7.19"
+version = "0.7.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aab6594190de06d718a5dbc5fa781ab62f8903797056480e549ca74add6b7065"
+checksum = "89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c"
 dependencies = [
  "bytemuck",
  "safe_arch",
@@ -1770,11 +1737,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.8"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
- "windows-sys",
+ "winapi",
 ]
 
 [[package]]
@@ -1789,89 +1756,139 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.52.5"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_gnullvm",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.5"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.5"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.5"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.5"
+name = "windows_i686_gnu"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.5"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.5"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.5"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.5"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.34"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.34"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.63",
+ "syn 2.0.57",
 ]

+ 0 - 2
Cargo.toml

@@ -41,5 +41,3 @@ dashmap = { version = "5.5.3", features = ["rayon", "serde"] }
 crossbeam-deque = "0.8.5"
 trc = "1.2.4"
 pot = "=3.0.0"
-pandora_lib_report = { git = "https://git.t0m4.fr/Thomas/pandora_lib_report.git" }
-

+ 73 - 164
src/variants.rs

@@ -30,15 +30,15 @@ use anyhow::{anyhow, Context, Ok, Result};
 use csv::ReaderBuilder;
 use dashmap::DashMap;
 use hashbrown::HashMap;
-use indicatif::{MultiProgress, ParallelProgressIterator, ProgressBar};
+use indicatif::{MultiProgress, ParallelProgressIterator};
 use log::{info, warn};
 use noodles_core::{region::Region, Position};
 use noodles_fasta::indexed_reader::Builder as FastaBuilder;
 use noodles_gff as gff;
 
-use pandora_lib_report::Reporter;
 use rayon::prelude::*;
 use serde::{Deserialize, Serialize};
+use std::io::Write;
 use std::{
     env::temp_dir,
     fmt,
@@ -49,7 +49,6 @@ use std::{
         Arc,
     },
 };
-use std::{io::Write, path::Path};
 
 // chr12:25116542|G>T KRAS
 #[derive(Debug, Clone)]
@@ -60,7 +59,7 @@ pub struct Variants {
     pub stats_vcf: StatsVCF,
     pub stats_bam: StatsBAM,
     pub cfg: Config,
-    pub reporter: Reporter,
+    pub mp: MultiProgress,
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize, Default)]
@@ -109,7 +108,7 @@ impl fmt::Display for StatsBAM {
 }
 
 impl Variants {
-    pub fn from_vec(name: String, reporter: Reporter, data: Vec<Variant>) -> Self {
+    pub fn from_vec(name: String, mp: &MultiProgress, data: Vec<Variant>) -> Self {
         Self {
             name,
             data,
@@ -117,7 +116,7 @@ impl Variants {
             stats_vcf: StatsVCF::default(),
             stats_bam: StatsBAM::default(),
             cfg: Config::get().unwrap(),
-            reporter,
+            mp: mp.clone(),
         }
     }
 
@@ -125,19 +124,16 @@ impl Variants {
         name: String,
         v: Vec<(&str, &VCFSource, &VariantType)>,
         cfg: &Config,
-        reporter: Reporter,
+        mp: MultiProgress,
     ) -> Result<Self> {
-        let reporter_msg = "Reading VCF".to_string();
-        if reporter.with_multi_progress {
-            reporter.create_counter(&reporter_msg, Some(v.len() as u64));
-        } else {
-            reporter.create_counter(&reporter_msg, None);
-        }
+        let pg = mp.add(new_pg(v.len() as u64));
+        pg.set_message("Reading VCF");
 
         let constit: Arc<DashMap<String, Variant>> = Arc::new(DashMap::new());
         let n_constit = AtomicI32::new(0);
         let data: Vec<Variant> = v
             .par_iter()
+            // .progress_count(v.len() as u64)
             .flat_map(|(path, source, variant_type)| {
                 let r = match variant_type {
                     VariantType::Somatic => read_vcf(path, source, variant_type).unwrap(),
@@ -158,7 +154,7 @@ impl Variants {
                         vec![]
                     }
                 };
-                reporter.inc(&reporter_msg);
+                pg.inc(1);
                 r
             })
             .collect();
@@ -167,10 +163,9 @@ impl Variants {
         let stats_bam = StatsBAM::default();
 
         let constit = Arc::try_unwrap(constit).unwrap();
-
-        let (val, elapsed) = reporter.finish(&reporter_msg)?;
+        let elapsed = pg.elapsed();
+        pg.finish();
         info!("{} variants parsed from somatic VCFs and {} variants positions parsed from constitutionnal VCFs. Executed in {}s", data.len(), constit.len(), elapsed.as_secs());
-
         let cfg = cfg.clone();
 
         return Ok(Self {
@@ -180,20 +175,14 @@ impl Variants {
             stats_vcf,
             stats_bam,
             cfg,
-            reporter,
+            mp: mp.clone(),
         });
     }
 
     pub fn vcf_filters(&mut self) {
         let cfg = &self.cfg;
-
-        let reporter_msg = "Filtering variations with VCF data".to_string();
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(self.data.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
+        let pg = self.mp.add(new_pg_speed(self.data.len() as u64));
+        pg.set_message("VCF filtering");
 
         let n_tumoral_init = self.len();
         let n_constit_init = self.constit_len();
@@ -272,7 +261,7 @@ impl Variants {
                         }
                     }
                 }
-                self.reporter.inc(&reporter_msg);
+                pg.inc(1);
                 tumoral
             })
             .collect();
@@ -288,22 +277,18 @@ impl Variants {
             n_loh,
             n_low_mrd_depth,
         };
-
-        let (_, d) = self.reporter.finish(&reporter_msg).unwrap();
-        info!("{}. Executed in {}s", self.stats_vcf, d.as_secs());
+        // let elapsed = start.elapsed();
+        let elapsed = pg.elapsed();
+        pg.finish();
+        info!("{}. Executed in {}s", self.stats_vcf, elapsed.as_secs());
     }
 
     /// Filter variants by reading informations from constist BAM.
     pub fn bam_filters(&mut self, mrd_bam: &str) {
         let cfg = &self.cfg;
-
-        let reporter_msg = "Filtering variations with BAM data".to_string();
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(self.data.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
+        // let start = Instant::now();
+        let pg = self.mp.add(new_pg_speed(self.data.len() as u64));
+        pg.set_message("BAM filtering");
 
         let min_mrd_depth = cfg.min_mrd_depth;
         info!("Filtering Constitutionnal (Alt base found in BAM pileup), LowDiversity (sequence +/- 20nt around variant with entropy < {}), LowMRDDepth (BAM pileup depth < {}) variants by BAM pileup fetching of {} likely somatic variants", cfg.min_diversity, min_mrd_depth, self.stats_vcf.n_tumoral_init - (self.stats_vcf.n_constit + self.stats_vcf.n_loh + self.stats_vcf.n_low_mrd_depth) as usize);
@@ -322,7 +307,7 @@ impl Variants {
                 .unwrap();
 
             for tumoral in chunk.iter_mut() {
-                self.reporter.inc(&reporter_msg);
+                pg.inc(1);
 
                 if tumoral.annotations.len() > 0 {
                     n_already.fetch_add(1, Ordering::SeqCst);
@@ -438,27 +423,18 @@ impl Variants {
             n_low_diversity,
             n_somatic,
         };
-        let (_, d) = self.reporter.finish(&reporter_msg).unwrap();
-        info!("{}. Executed in {}s", self.stats_bam, d.as_secs());
+        let elapsed = pg.elapsed();
+        pg.finish();
+        info!("{}. Executed in {}s", self.stats_vcf, elapsed.as_secs());
     }
 
-    /// Retrieve variants annotated with VariantCategory
     pub fn get_cat(&mut self, cat: &VariantCategory) -> Vec<Variant> {
-        let reporter_msg = format!("Filtering category {cat:?}");
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(self.data.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
-
-        let data = self
-            .data
+        let pg = self.mp.add(new_pg_speed(self.data.len() as u64));
+        pg.set_message(format!("Get cat {:?}", cat));
+        self.data
             .par_iter()
+            .progress_with(pg)
             .flat_map(|e| {
-                self.reporter.inc(&reporter_msg);
-
                 if e.annotations
                     .iter()
                     .filter(|e| match e {
@@ -473,67 +449,36 @@ impl Variants {
                     vec![]
                 }
             })
-            .collect::<Vec<Variant>>();
-        let (_, d) = self.reporter.finish(&reporter_msg).unwrap();
-        info!(
-            "{} variants annotated with category {cat:?} retrieved. Executed in {}s",
-            data.len(),
-            d.as_secs()
-        );
-        data
+            .collect::<Vec<Variant>>()
     }
 
-    /// Write VCF of variants annotated with the specified the category.
     pub fn write_vcf_cat(&mut self, path: &str, cat: &VariantCategory) -> Result<()> {
-        let mut to_write = sort_variants(self.get_cat(cat), &self.cfg.dict_file)?;
+        info!("Writing VCF {}", path);
 
-        let reporter_msg = format!(
-            "Writing VCF {}",
-            Path::new(path).file_name().unwrap().to_str().unwrap()
-        );
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(to_write.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
+        let mut to_write = sort_variants(self.get_cat(cat), &self.cfg.dict_file)?;
+        let pg = self.mp.add(new_pg_speed(to_write.len() as u64));
+        pg.set_message("Writing VCF");
 
         let mut w = VariantWritter::new(path, &self.cfg.dict_file)?;
         for row in to_write.iter_mut() {
             w.write_variant(row)?;
-            self.reporter.inc(&reporter_msg);
+            pg.inc(1);
         }
         w.write_index_finish()?;
-        let (n, d) = self.reporter.finish(&reporter_msg)?;
-        info!(
-            "{} variants with category {cat:?} written. Executed in {}s",
-            n,
-            d.as_secs()
-        );
-
         Ok(())
     }
 
-    /// Keep variants annotated Somatic and Variants without annotation.
+    /// Keep variants annotated Somatic
     pub fn keep_somatics_un(&mut self) {
-        let reporter_msg = "Keeping somatic variants".to_string();
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(self.data.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
+        let pg = self.mp.add(new_pg_speed(self.data.len() as u64));
+        pg.set_message("Filtering Variants");
 
-        let mut filtered_out = 0u64;
-        let mut keeped = 0u64;
         self.data = self
             .data
             .par_iter_mut()
+            .progress_with(pg)
             .flat_map(|e| {
-                self.reporter.inc(&reporter_msg);
-                // Keep un annotated and somatic
+                // keep unannotated and somatic
                 if e.annotations
                     .iter()
                     .filter(|a| match a {
@@ -546,42 +491,23 @@ impl Variants {
                     .count()
                     == 0
                 {
-                    keeped += 1;
                     vec![e]
                 } else {
-                    filtered_out += 1;
                     vec![]
                 }
             })
             .map(|e| e.clone())
             .collect();
-
-        let (_, d) = self.reporter.finish(&reporter_msg).unwrap();
-        info!(
-            "{keeped} variants conserved and {filtered_out} filtered out. Executed in {}s",
-            d.as_secs()
-        );
     }
 
-    /// Annotate with VEP.
+    /// Annotate with VEP
     pub fn vep(&mut self) {
-        let reporter_msg = "VEP annotation".to_string();
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter.create_counter(
-                &reporter_msg,
-                Some((self.len() as f64 / self.cfg.vep_chunk_size as f64) as u64),
-            );
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
-
+        let pg = self.mp.add(new_pg_speed(self.len() as u64));
+        pg.set_message("VEP");
         self.data
             .par_chunks_mut(self.cfg.vep_chunk_size)
-            .for_each(|chunks| {
-                vep_chunk(chunks).unwrap();
-                self.reporter.inc(&reporter_msg);
-            });
+            .progress_with(pg)
+            .for_each(|chunks| vep_chunk(chunks).unwrap());
     }
 
     /// sort_variants TODO
@@ -591,20 +517,12 @@ impl Variants {
         Ok(())
     }
 
-    /// Merge identical variants (same position, reference and alternative).
+    /// 
     pub fn merge(&mut self) {
-        let reporter_msg =
-            "Merging identical variants (same position, reference and alternative)".to_string();
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter
-                .create_counter(&reporter_msg, Some(self.len() as u64));
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
-
+        let pg = self.mp.add(new_pg_speed(self.len() as u64));
+        pg.set_message("Merging Variants by contig, positions, ref, alt");
         let hm: DashMap<String, Variant> = DashMap::new();
-        self.data.par_iter().for_each(|e| {
+        self.data.par_iter().progress_with(pg).for_each(|e| {
             let k = format!(
                 "{}:{}|{}>{}",
                 e.contig, e.position, e.reference, e.alternative
@@ -621,7 +539,6 @@ impl Variants {
             } else {
                 hm.insert(k, e.clone());
             }
-            self.reporter.inc(&reporter_msg);
         });
         self.data = hm.iter().map(|e| e.value().clone()).collect();
     }
@@ -629,39 +546,31 @@ impl Variants {
     pub fn annotate_gff_feature(&mut self, gff_path: &str) -> Result<()> {
         let gff_path = gff_path.to_string();
         let len = self.data.len();
-        let gff_chunk_size = len / 33;
-
-        let reporter_msg = "GFF annotation".to_string();
-        info!("{reporter_msg}");
-        if self.reporter.with_multi_progress {
-            self.reporter.create_counter(
-                &reporter_msg,
-                Some((len as f64 / gff_chunk_size as f64) as u64),
-            );
-        } else {
-            self.reporter.create_counter(&reporter_msg, None);
-        }
-
-        self.data.par_chunks_mut(gff_chunk_size).for_each(|chunk| {
-            let mut reader = File::open(gff_path.to_string())
-                .map(noodles_bgzf::Reader::new)
-                .map(gff::Reader::new)
-                .unwrap();
+        let pg = self.mp.add(new_pg_speed(self.len() as u64));
+        pg.set_message("GFF Annotate");
 
-            let index = noodles_csi::read(format!("{}.csi", gff_path)).unwrap();
-
-            for v in chunk.iter_mut() {
-                let start = Position::try_from(v.position as usize).unwrap();
-                let r = Region::new(v.contig.to_string(), start..=start);
-                if let std::result::Result::Ok(rows) = reader.query(&index, &r.clone()) {
-                    for row in rows {
-                        let ncbi = NCBIGFF::try_from(row.unwrap()).unwrap();
-                        v.annotations.push(AnnotationType::NCBIGFF(ncbi));
+        self.data
+            .par_chunks_mut(len / 33)
+            .progress_with(pg)
+            .for_each(|chunk| {
+                let mut reader = File::open(gff_path.to_string())
+                    .map(noodles_bgzf::Reader::new)
+                    .map(gff::Reader::new)
+                    .unwrap();
+
+                let index = noodles_csi::read(format!("{}.csi", gff_path)).unwrap();
+
+                for v in chunk.iter_mut() {
+                    let start = Position::try_from(v.position as usize).unwrap();
+                    let r = Region::new(v.contig.to_string(), start..=start);
+                    if let std::result::Result::Ok(rows) = reader.query(&index, &r.clone()) {
+                        for row in rows {
+                            let ncbi = NCBIGFF::try_from(row.unwrap()).unwrap();
+                            v.annotations.push(AnnotationType::NCBIGFF(ncbi));
+                        }
                     }
                 }
-            }
-            self.reporter.inc(&reporter_msg);
-        });
+            });
         Ok(())
     }