From 69a708c7cc3ede50977958a3ad01cacfec10388e Mon Sep 17 00:00:00 2001 From: Peter van Heusden Date: Sun, 18 Dec 2022 14:07:11 +0200 Subject: [PATCH] Add publication and release of Farhat lab RLC, update TBProfiler drug resistance regions --- README.md | 9 +- bedfiles/farhat_rlc_lowmap.bed | 1324 ++++++++++++++++ setup.cfg | 2 +- .../filters/region_filter.py | 2 + src/tb_variant_filter/masks/__init__.py | 2 + src/tb_variant_filter/masks/farhat_rlc.py | 7 +- .../masks/farhat_rlc_lowmap.py | 1363 +++++++++++++++++ src/tb_variant_filter/masks/tbprofiler.py | 103 +- src/tb_variant_filter/region_list.py | 24 +- src/tests/test_farhat_rlc_lowmap.py | 18 + src/tests/test_tbprofiler.py | 4 +- tox.ini | 2 +- 12 files changed, 2794 insertions(+), 66 deletions(-) create mode 100644 bedfiles/farhat_rlc_lowmap.bed create mode 100644 src/tb_variant_filter/masks/farhat_rlc_lowmap.py create mode 100644 src/tests/test_farhat_rlc_lowmap.py diff --git a/README.md b/README.md index 4824b63..3c9943a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This tool offers multiple options for filtering variants (in VCF files, relative It currently has 5 main modes: 1. Filter by region. Mask out variants in certain regions. Region lists available as: - 1. `farhat_rlc`: Refined Low Confidence regions from [Marin et al](https://www.biorxiv.org/content/10.1101/2021.04.08.438862v1.full) + 1. `farhat_rlc` and `farhat_rlc_lowmap`: Refined Low Confidence (RLC) and RLC plus low mappability regions from [Marin et al](https://doi.org/10.1093/bioinformatics/btac023) 1. `pe_ppe`: PE/PPE genes from [Fishbein et al 2015](https://onlinelibrary.wiley.com/doi/full/10.1111/mmi.12981) 2. `tbprofiler`: [TBProfiler](http://tbdr.lshtm.ac.uk/) list of antibiotic resistant genes 3. `mtbseq`: [MTBseq](https://github.com/ngs-fzb/MTBseq_source) list of antibiotic resistant genes @@ -80,12 +80,12 @@ To export a region (from the list of possible region masks) in BED format, use t ``` usage: tb_region_list_to_bed [-h] [--chromosome_name CHROMOSOME_NAME] - {farhat_rlc, mtbseq,pe_ppe,tbprofiler,uvp} [output_file] + {farhat_rlc,farhat_rlc_lowmap,mtbseq,pe_ppe,tbprofiler,uvp} [output_file] Output region filter in BED format positional arguments: - {mtbseq,pe_ppe,tbprofiler,uvp} + {farhat_rlc,farhat_rlc_lowmap,mtbseq,pe_ppe,tbprofiler,uvp} Name of region list output_file File to write output to @@ -98,8 +98,7 @@ optional arguments: ### Testing and development environment The repository contains a file, [test_environment.yml](test_environment.yml), for creating a [conda](https://docs.conda.io/en/latest/#) -environment for testing and development. Tests can be run with `pytest` and `tox`, where `tox` also uses conda -to create the testing environment. +environment for testing and development. Tests can be run with `pytest` and `tox`, where `tox` also uses conda to create the testing environment. For some tests, locus locations are looked up using the [COMBAT-TB NeoDB](https://combattb.org/combat-tb-neodb/). This requires an environment variable, `COMBATTB_BOLT_URL`. If this is not set, tests requiring this lookup are skipped. The default in `tox.ini` uses the [SANBI](https://www.sanbi.ac.za/) hosted NeoDB instance. diff --git a/bedfiles/farhat_rlc_lowmap.bed b/bedfiles/farhat_rlc_lowmap.bed new file mode 100644 index 0000000..a078ef0 --- /dev/null +++ b/bedfiles/farhat_rlc_lowmap.bed @@ -0,0 +1,1324 @@ +NC_000962.3 23173 23238 +NC_000962.3 24720 24738 +NC_000962.3 39029 39030 +NC_000962.3 55548 55647 +NC_000962.3 71464 71584 +NC_000962.3 79499 83035 +NC_000962.3 86778 86779 +NC_000962.3 86780 86782 +NC_000962.3 103702 104811 +NC_000962.3 104813 105137 +NC_000962.3 131785 131844 +NC_000962.3 131928 131979 +NC_000962.3 131980 131982 +NC_000962.3 131992 131993 +NC_000962.3 132077 132079 +NC_000962.3 132159 132189 +NC_000962.3 132518 132684 +NC_000962.3 149499 149526 +NC_000962.3 149634 149760 +NC_000962.3 149825 150890 +NC_000962.3 154109 154245 +NC_000962.3 157278 157331 +NC_000962.3 157382 157433 +NC_000962.3 161526 161577 +NC_000962.3 171456 171457 +NC_000962.3 171778 171779 +NC_000962.3 177094 177180 +NC_000962.3 177225 177322 +NC_000962.3 177337 177408 +NC_000962.3 192336 192398 +NC_000962.3 197077 197130 +NC_000962.3 197191 197311 +NC_000962.3 197837 198006 +NC_000962.3 198089 198170 +NC_000962.3 198477 198537 +NC_000962.3 198936 199041 +NC_000962.3 199750 199832 +NC_000962.3 201952 202014 +NC_000962.3 206494 206519 +NC_000962.3 234446 234492 +NC_000962.3 253598 253666 +NC_000962.3 267757 267812 +NC_000962.3 272848 272957 +NC_000962.3 279525 279601 +NC_000962.3 293724 293792 +NC_000962.3 294285 294337 +NC_000962.3 308321 308413 +NC_000962.3 309084 309191 +NC_000962.3 309927 310110 +NC_000962.3 332699 333141 +NC_000962.3 333157 333223 +NC_000962.3 333292 333406 +NC_000962.3 333436 336385 +NC_000962.3 336399 336400 +NC_000962.3 336402 336403 +NC_000962.3 336404 336405 +NC_000962.3 336496 336497 +NC_000962.3 336503 336504 +NC_000962.3 336534 336535 +NC_000962.3 336536 336537 +NC_000962.3 336539 336540 +NC_000962.3 336545 336546 +NC_000962.3 336552 337173 +NC_000962.3 337265 337381 +NC_000962.3 337492 337617 +NC_000962.3 337714 339148 +NC_000962.3 339715 339822 +NC_000962.3 340429 340470 +NC_000962.3 340472 340484 +NC_000962.3 341205 341267 +NC_000962.3 350296 350360 +NC_000962.3 351570 351659 +NC_000962.3 351890 351940 +NC_000962.3 361634 361726 +NC_000962.3 361740 361973 +NC_000962.3 361987 362010 +NC_000962.3 362620 362748 +NC_000962.3 362751 362764 +NC_000962.3 362769 362916 +NC_000962.3 362960 363020 +NC_000962.3 366149 372764 +NC_000962.3 372777 372834 +NC_000962.3 373194 373249 +NC_000962.3 373280 373372 +NC_000962.3 373394 373471 +NC_000962.3 373527 373657 +NC_000962.3 373972 374026 +NC_000962.3 374051 374185 +NC_000962.3 374464 374983 +NC_000962.3 375259 375329 +NC_000962.3 400147 401706 +NC_000962.3 410552 410570 +NC_000962.3 424007 424150 +NC_000962.3 424843 425033 +NC_000962.3 425096 425154 +NC_000962.3 425168 425272 +NC_000962.3 425284 425410 +NC_000962.3 425411 425593 +NC_000962.3 426576 426680 +NC_000962.3 426736 426861 +NC_000962.3 426910 426998 +NC_000962.3 427070 427200 +NC_000962.3 427296 427383 +NC_000962.3 428403 428503 +NC_000962.3 428525 428762 +NC_000962.3 429119 429181 +NC_000962.3 429632 429716 +NC_000962.3 429791 430174 +NC_000962.3 431043 431094 +NC_000962.3 431126 431184 +NC_000962.3 431192 431263 +NC_000962.3 431273 431442 +NC_000962.3 431454 431551 +NC_000962.3 431884 431935 +NC_000962.3 432375 432436 +NC_000962.3 432533 432592 +NC_000962.3 432605 432804 +NC_000962.3 433691 433801 +NC_000962.3 433848 433930 +NC_000962.3 433940 434006 +NC_000962.3 434227 434311 +NC_000962.3 456207 456210 +NC_000962.3 456211 456212 +NC_000962.3 459877 459930 +NC_000962.3 460997 461069 +NC_000962.3 461350 461432 +NC_000962.3 472443 472496 +NC_000962.3 473741 474045 +NC_000962.3 474047 474109 +NC_000962.3 475807 476111 +NC_000962.3 476125 476183 +NC_000962.3 488167 488222 +NC_000962.3 496254 496354 +NC_000962.3 531536 531591 +NC_000962.3 538775 538840 +NC_000962.3 543555 543639 +NC_000962.3 560891 560941 +NC_000962.3 561274 561339 +NC_000962.3 561532 561658 +NC_000962.3 562303 562397 +NC_000962.3 566271 566345 +NC_000962.3 569811 569985 +NC_000962.3 577281 577503 +NC_000962.3 580566 580821 +NC_000962.3 594517 594569 +NC_000962.3 595330 595453 +NC_000962.3 598879 598932 +NC_000962.3 606506 608064 +NC_000962.3 622890 622945 +NC_000962.3 623098 624417 +NC_000962.3 631282 631440 +NC_000962.3 642735 642818 +NC_000962.3 663428 663429 +NC_000962.3 669263 669314 +NC_000962.3 672009 672011 +NC_000962.3 672014 672070 +NC_000962.3 672104 672108 +NC_000962.3 672161 672246 +NC_000962.3 672265 672274 +NC_000962.3 672443 672462 +NC_000962.3 672477 672524 +NC_000962.3 672532 672563 +NC_000962.3 672648 672805 +NC_000962.3 672827 672919 +NC_000962.3 672945 672951 +NC_000962.3 672955 672959 +NC_000962.3 673102 673134 +NC_000962.3 673135 673623 +NC_000962.3 673635 673637 +NC_000962.3 673647 673668 +NC_000962.3 673940 673995 +NC_000962.3 674121 674132 +NC_000962.3 674142 674163 +NC_000962.3 674218 674220 +NC_000962.3 674227 674233 +NC_000962.3 674240 674272 +NC_000962.3 674311 674319 +NC_000962.3 674343 674358 +NC_000962.3 674434 674507 +NC_000962.3 674546 674556 +NC_000962.3 674780 675029 +NC_000962.3 675034 675405 +NC_000962.3 675486 675548 +NC_000962.3 675555 675615 +NC_000962.3 677064 677128 +NC_000962.3 685345 685398 +NC_000962.3 685459 685579 +NC_000962.3 686123 686292 +NC_000962.3 686375 686456 +NC_000962.3 686763 686823 +NC_000962.3 687245 687325 +NC_000962.3 687887 687969 +NC_000962.3 690079 690141 +NC_000962.3 699610 699640 +NC_000962.3 701242 701311 +NC_000962.3 701313 701438 +NC_000962.3 702055 702169 +NC_000962.3 702279 702358 +NC_000962.3 702538 702627 +NC_000962.3 709420 709489 +NC_000962.3 709492 709544 +NC_000962.3 709581 709666 +NC_000962.3 711563 711705 +NC_000962.3 716627 716678 +NC_000962.3 717242 717295 +NC_000962.3 717640 717717 +NC_000962.3 718309 718366 +NC_000962.3 718811 718863 +NC_000962.3 718864 718926 +NC_000962.3 719128 719200 +NC_000962.3 719383 719465 +NC_000962.3 719466 719546 +NC_000962.3 719637 719688 +NC_000962.3 725208 725233 +NC_000962.3 735079 735081 +NC_000962.3 736226 736298 +NC_000962.3 737308 737390 +NC_000962.3 737989 738061 +NC_000962.3 738337 738419 +NC_000962.3 738723 738788 +NC_000962.3 738922 738974 +NC_000962.3 738981 739052 +NC_000962.3 739053 739144 +NC_000962.3 742562 742638 +NC_000962.3 747949 748000 +NC_000962.3 755259 755331 +NC_000962.3 767365 767366 +NC_000962.3 767367 767371 +NC_000962.3 776715 776768 +NC_000962.3 786025 786081 +NC_000962.3 795468 795527 +NC_000962.3 798663 798739 +NC_000962.3 798998 799069 +NC_000962.3 806193 806194 +NC_000962.3 806195 806199 +NC_000962.3 806202 806219 +NC_000962.3 812848 812898 +NC_000962.3 818308 818358 +NC_000962.3 829702 829773 +NC_000962.3 830629 830685 +NC_000962.3 830712 830765 +NC_000962.3 831188 831263 +NC_000962.3 831965 832028 +NC_000962.3 832083 832362 +NC_000962.3 832654 832758 +NC_000962.3 832980 833508 +NC_000962.3 833514 833517 +NC_000962.3 833529 833539 +NC_000962.3 835080 835203 +NC_000962.3 835405 835458 +NC_000962.3 835700 838052 +NC_000962.3 838450 840856 +NC_000962.3 840959 841073 +NC_000962.3 841142 841208 +NC_000962.3 841224 841666 +NC_000962.3 841941 842016 +NC_000962.3 842058 842470 +NC_000962.3 844884 844888 +NC_000962.3 846903 846905 +NC_000962.3 849912 849965 +NC_000962.3 863185 863260 +NC_000962.3 888762 891466 +NC_000962.3 908176 909351 +NC_000962.3 917606 917740 +NC_000962.3 921573 921897 +NC_000962.3 925070 925133 +NC_000962.3 925262 926393 +NC_000962.3 926515 926596 +NC_000962.3 926626 927518 +NC_000962.3 927890 927940 +NC_000962.3 928675 928791 +NC_000962.3 928868 928936 +NC_000962.3 929015 929360 +NC_000962.3 929367 929373 +NC_000962.3 929463 929470 +NC_000962.3 929476 929605 +NC_000962.3 929666 929961 +NC_000962.3 958454 958522 +NC_000962.3 960161 960332 +NC_000962.3 964577 965082 +NC_000962.3 968779 968829 +NC_000962.3 969615 969752 +NC_000962.3 969874 969934 +NC_000962.3 972605 972657 +NC_000962.3 972658 972720 +NC_000962.3 972922 972994 +NC_000962.3 973177 973259 +NC_000962.3 973260 973340 +NC_000962.3 973431 973482 +NC_000962.3 973762 973786 +NC_000962.3 976897 976913 +NC_000962.3 977517 977570 +NC_000962.3 977979 978031 +NC_000962.3 978087 978143 +NC_000962.3 996027 996089 +NC_000962.3 1000741 1000799 +NC_000962.3 1025867 1025899 +NC_000962.3 1025901 1025904 +NC_000962.3 1056823 1056824 +NC_000962.3 1056825 1056829 +NC_000962.3 1064047 1064118 +NC_000962.3 1066998 1067002 +NC_000962.3 1070325 1070330 +NC_000962.3 1071258 1071318 +NC_000962.3 1090782 1090783 +NC_000962.3 1090788 1090789 +NC_000962.3 1090790 1090793 +NC_000962.3 1090803 1090814 +NC_000962.3 1090938 1090940 +NC_000962.3 1090957 1091137 +NC_000962.3 1091147 1091152 +NC_000962.3 1091362 1091368 +NC_000962.3 1091373 1091379 +NC_000962.3 1091388 1091846 +NC_000962.3 1091888 1092021 +NC_000962.3 1092056 1092089 +NC_000962.3 1092102 1092104 +NC_000962.3 1092246 1092263 +NC_000962.3 1093232 1093320 +NC_000962.3 1093450 1093647 +NC_000962.3 1093650 1094593 +NC_000962.3 1094865 1094953 +NC_000962.3 1095203 1095325 +NC_000962.3 1095331 1096699 +NC_000962.3 1121040 1121090 +NC_000962.3 1121121 1121171 +NC_000962.3 1121657 1121731 +NC_000962.3 1133280 1133283 +NC_000962.3 1145287 1145317 +NC_000962.3 1159195 1159245 +NC_000962.3 1160331 1160421 +NC_000962.3 1160537 1161159 +NC_000962.3 1161301 1161365 +NC_000962.3 1162562 1162612 +NC_000962.3 1164564 1165555 +NC_000962.3 1169292 1170739 +NC_000962.3 1179346 1179397 +NC_000962.3 1182321 1182382 +NC_000962.3 1188518 1188908 +NC_000962.3 1188949 1188955 +NC_000962.3 1188972 1189047 +NC_000962.3 1189073 1189075 +NC_000962.3 1189081 1189157 +NC_000962.3 1189158 1190177 +NC_000962.3 1190249 1190299 +NC_000962.3 1190854 1190944 +NC_000962.3 1190969 1191112 +NC_000962.3 1191130 1191221 +NC_000962.3 1191248 1191901 +NC_000962.3 1200523 1200544 +NC_000962.3 1203334 1203396 +NC_000962.3 1211559 1213863 +NC_000962.3 1216548 1216649 +NC_000962.3 1216717 1216769 +NC_000962.3 1216817 1216921 +NC_000962.3 1216922 1217162 +NC_000962.3 1217167 1217181 +NC_000962.3 1217416 1217422 +NC_000962.3 1217423 1218426 +NC_000962.3 1218436 1218676 +NC_000962.3 1218702 1218703 +NC_000962.3 1218968 1218970 +NC_000962.3 1224338 1224340 +NC_000962.3 1224341 1224345 +NC_000962.3 1224348 1224350 +NC_000962.3 1224356 1224357 +NC_000962.3 1230571 1230648 +NC_000962.3 1251678 1251752 +NC_000962.3 1262918 1263031 +NC_000962.3 1263084 1263190 +NC_000962.3 1263707 1263760 +NC_000962.3 1267219 1267269 +NC_000962.3 1275555 1275607 +NC_000962.3 1275922 1276056 +NC_000962.3 1276289 1278829 +NC_000962.3 1281895 1282022 +NC_000962.3 1283487 1283493 +NC_000962.3 1283512 1283548 +NC_000962.3 1283554 1283562 +NC_000962.3 1284407 1284473 +NC_000962.3 1284491 1284557 +NC_000962.3 1287559 1287627 +NC_000962.3 1287810 1288095 +NC_000962.3 1293002 1293070 +NC_000962.3 1305490 1305665 +NC_000962.3 1313129 1313134 +NC_000962.3 1313384 1313385 +NC_000962.3 1313389 1313394 +NC_000962.3 1319185 1319262 +NC_000962.3 1326283 1326333 +NC_000962.3 1335476 1335507 +NC_000962.3 1335508 1335513 +NC_000962.3 1339343 1339839 +NC_000962.3 1339886 1340001 +NC_000962.3 1340006 1340060 +NC_000962.3 1340061 1340397 +NC_000962.3 1340491 1342739 +NC_000962.3 1351194 1351283 +NC_000962.3 1357060 1357129 +NC_000962.3 1357247 1357302 +NC_000962.3 1363470 1363471 +NC_000962.3 1385096 1385437 +NC_000962.3 1385572 1385580 +NC_000962.3 1385586 1385667 +NC_000962.3 1385669 1385672 +NC_000962.3 1386008 1386036 +NC_000962.3 1386073 1386081 +NC_000962.3 1386112 1386113 +NC_000962.3 1386118 1386121 +NC_000962.3 1386125 1386129 +NC_000962.3 1386136 1386140 +NC_000962.3 1386154 1386214 +NC_000962.3 1386285 1386359 +NC_000962.3 1386451 1386501 +NC_000962.3 1388110 1388170 +NC_000962.3 1408678 1408729 +NC_000962.3 1414620 1414621 +NC_000962.3 1414628 1414629 +NC_000962.3 1414643 1414644 +NC_000962.3 1414652 1414653 +NC_000962.3 1441364 1441725 +NC_000962.3 1443427 1443428 +NC_000962.3 1443433 1443486 +NC_000962.3 1445086 1445117 +NC_000962.3 1445118 1445121 +NC_000962.3 1451772 1452003 +NC_000962.3 1456572 1456625 +NC_000962.3 1457459 1457568 +NC_000962.3 1468160 1469623 +NC_000962.3 1479348 1479409 +NC_000962.3 1479487 1479538 +NC_000962.3 1479716 1479925 +NC_000962.3 1480944 1480945 +NC_000962.3 1480947 1481670 +NC_000962.3 1482823 1482878 +NC_000962.3 1483109 1483165 +NC_000962.3 1483196 1483254 +NC_000962.3 1483264 1483318 +NC_000962.3 1488082 1488147 +NC_000962.3 1488383 1488410 +NC_000962.3 1488413 1488420 +NC_000962.3 1488429 1488757 +NC_000962.3 1488760 1488766 +NC_000962.3 1488776 1488788 +NC_000962.3 1488791 1488794 +NC_000962.3 1488807 1488810 +NC_000962.3 1488813 1488839 +NC_000962.3 1488843 1488848 +NC_000962.3 1488896 1489512 +NC_000962.3 1489537 1489647 +NC_000962.3 1489738 1489798 +NC_000962.3 1524571 1524574 +NC_000962.3 1532535 1532922 +NC_000962.3 1532986 1533658 +NC_000962.3 1541944 1543431 +NC_000962.3 1543453 1543457 +NC_000962.3 1543462 1543480 +NC_000962.3 1568048 1568106 +NC_000962.3 1572184 1572482 +NC_000962.3 1572499 1572621 +NC_000962.3 1572744 1573530 +NC_000962.3 1573555 1573606 +NC_000962.3 1606514 1606565 +NC_000962.3 1612562 1612665 +NC_000962.3 1618208 1619684 +NC_000962.3 1625354 1625422 +NC_000962.3 1630814 1630825 +NC_000962.3 1630827 1630837 +NC_000962.3 1630839 1630872 +NC_000962.3 1630874 1630875 +NC_000962.3 1630996 1631117 +NC_000962.3 1631391 1631908 +NC_000962.3 1631936 1631955 +NC_000962.3 1632057 1632128 +NC_000962.3 1632218 1632220 +NC_000962.3 1632231 1632289 +NC_000962.3 1632355 1632824 +NC_000962.3 1632856 1632858 +NC_000962.3 1633191 1634797 +NC_000962.3 1636003 1638399 +NC_000962.3 1644242 1644372 +NC_000962.3 1654154 1654206 +NC_000962.3 1655670 1655721 +NC_000962.3 1655814 1655815 +NC_000962.3 1656096 1656098 +NC_000962.3 1656099 1656208 +NC_000962.3 1656328 1656410 +NC_000962.3 1656516 1656596 +NC_000962.3 1672405 1672466 +NC_000962.3 1678950 1679019 +NC_000962.3 1685477 1685546 +NC_000962.3 1699863 1699920 +NC_000962.3 1702156 1702206 +NC_000962.3 1702384 1702470 +NC_000962.3 1702676 1702854 +NC_000962.3 1703071 1703128 +NC_000962.3 1710884 1710945 +NC_000962.3 1712842 1712892 +NC_000962.3 1713497 1713547 +NC_000962.3 1713673 1713753 +NC_000962.3 1722650 1722700 +NC_000962.3 1722809 1722890 +NC_000962.3 1723227 1723284 +NC_000962.3 1723515 1723595 +NC_000962.3 1725516 1725566 +NC_000962.3 1730045 1730095 +NC_000962.3 1730876 1730956 +NC_000962.3 1731135 1731203 +NC_000962.3 1735541 1735635 +NC_000962.3 1753012 1753062 +NC_000962.3 1753287 1753337 +NC_000962.3 1773952 1774109 +NC_000962.3 1779266 1789872 +NC_000962.3 1814850 1815130 +NC_000962.3 1828800 1828860 +NC_000962.3 1830066 1830125 +NC_000962.3 1863481 1863575 +NC_000962.3 1863723 1863733 +NC_000962.3 1864008 1864112 +NC_000962.3 1864256 1864323 +NC_000962.3 1864394 1864468 +NC_000962.3 1864554 1864567 +NC_000962.3 1864568 1864580 +NC_000962.3 1864702 1864872 +NC_000962.3 1864885 1864924 +NC_000962.3 1865012 1865070 +NC_000962.3 1875415 1875504 +NC_000962.3 1875877 1875967 +NC_000962.3 1876150 1876234 +NC_000962.3 1876404 1876592 +NC_000962.3 1876600 1876674 +NC_000962.3 1879287 1879381 +NC_000962.3 1879425 1879426 +NC_000962.3 1879494 1879503 +NC_000962.3 1879504 1879619 +NC_000962.3 1879631 1879638 +NC_000962.3 1879650 1879659 +NC_000962.3 1880680 1880748 +NC_000962.3 1880756 1880809 +NC_000962.3 1880823 1880877 +NC_000962.3 1880884 1880943 +NC_000962.3 1881812 1881901 +NC_000962.3 1882244 1882358 +NC_000962.3 1882541 1882625 +NC_000962.3 1882694 1882760 +NC_000962.3 1882792 1882979 +NC_000962.3 1882988 1883062 +NC_000962.3 1883354 1883404 +NC_000962.3 1885850 1885902 +NC_000962.3 1886335 1886387 +NC_000962.3 1886690 1886751 +NC_000962.3 1886989 1887057 +NC_000962.3 1887065 1887118 +NC_000962.3 1887132 1887186 +NC_000962.3 1887193 1887252 +NC_000962.3 1889505 1889555 +NC_000962.3 1895347 1895599 +NC_000962.3 1907452 1907583 +NC_000962.3 1914970 1914986 +NC_000962.3 1914987 1914995 +NC_000962.3 1914998 1914999 +NC_000962.3 1933297 1933384 +NC_000962.3 1933712 1933762 +NC_000962.3 1946846 1947027 +NC_000962.3 1955433 1955483 +NC_000962.3 1955581 1955615 +NC_000962.3 1955638 1955672 +NC_000962.3 1963153 1963221 +NC_000962.3 1963420 1963705 +NC_000962.3 1963888 1963956 +NC_000962.3 1967880 1967931 +NC_000962.3 1971233 1971334 +NC_000962.3 1981613 1984775 +NC_000962.3 1987173 1987241 +NC_000962.3 1987344 1987406 +NC_000962.3 1987693 1989068 +NC_000962.3 1989894 1989972 +NC_000962.3 1989982 1990093 +NC_000962.3 1990109 1990114 +NC_000962.3 1990322 1990823 +NC_000962.3 1991181 1991480 +NC_000962.3 1991569 1992029 +NC_000962.3 1992054 1992111 +NC_000962.3 1992282 1992334 +NC_000962.3 1996092 1998618 +NC_000962.3 2000924 2000998 +NC_000962.3 2001009 2001062 +NC_000962.3 2001205 2001716 +NC_000962.3 2002029 2002036 +NC_000962.3 2002125 2002328 +NC_000962.3 2002405 2002406 +NC_000962.3 2025296 2025858 +NC_000962.3 2025891 2026167 +NC_000962.3 2028420 2029246 +NC_000962.3 2030328 2030648 +NC_000962.3 2030703 2030986 +NC_000962.3 2039731 2039781 +NC_000962.3 2043797 2043858 +NC_000962.3 2045048 2045107 +NC_000962.3 2045963 2045964 +NC_000962.3 2045969 2045970 +NC_000962.3 2046100 2046195 +NC_000962.3 2047627 2047721 +NC_000962.3 2048789 2048842 +NC_000962.3 2050287 2050398 +NC_000962.3 2059425 2059608 +NC_000962.3 2061412 2061430 +NC_000962.3 2061431 2062159 +NC_000962.3 2062286 2062369 +NC_000962.3 2062448 2062515 +NC_000962.3 2069016 2069069 +NC_000962.3 2074430 2074840 +NC_000962.3 2088461 2088499 +NC_000962.3 2088773 2088933 +NC_000962.3 2088946 2088949 +NC_000962.3 2089092 2089162 +NC_000962.3 2089292 2089348 +NC_000962.3 2096825 2096840 +NC_000962.3 2096843 2096849 +NC_000962.3 2102846 2102899 +NC_000962.3 2115708 2115758 +NC_000962.3 2133474 2133475 +NC_000962.3 2133993 2134046 +NC_000962.3 2134922 2134975 +NC_000962.3 2135424 2135493 +NC_000962.3 2135533 2135616 +NC_000962.3 2135665 2135748 +NC_000962.3 2146058 2146132 +NC_000962.3 2156798 2156878 +NC_000962.3 2157477 2157557 +NC_000962.3 2162931 2167311 +NC_000962.3 2167846 2167901 +NC_000962.3 2168808 2168872 +NC_000962.3 2168886 2168950 +NC_000962.3 2168982 2169056 +NC_000962.3 2169060 2169134 +NC_000962.3 2169571 2169628 +NC_000962.3 2170281 2170334 +NC_000962.3 2181376 2181412 +NC_000962.3 2193009 2193021 +NC_000962.3 2195906 2196780 +NC_000962.3 2196856 2197248 +NC_000962.3 2197279 2197365 +NC_000962.3 2198685 2198819 +NC_000962.3 2230720 2230773 +NC_000962.3 2244992 2245020 +NC_000962.3 2260253 2260309 +NC_000962.3 2260343 2260439 +NC_000962.3 2261440 2261518 +NC_000962.3 2262004 2263175 +NC_000962.3 2266486 2266487 +NC_000962.3 2266507 2266508 +NC_000962.3 2266516 2266517 +NC_000962.3 2266549 2266550 +NC_000962.3 2266552 2266553 +NC_000962.3 2266582 2266583 +NC_000962.3 2266597 2266598 +NC_000962.3 2266603 2266604 +NC_000962.3 2266623 2266624 +NC_000962.3 2268721 2268725 +NC_000962.3 2294815 2294911 +NC_000962.3 2295174 2295242 +NC_000962.3 2295289 2296015 +NC_000962.3 2296029 2296427 +NC_000962.3 2296959 2297045 +NC_000962.3 2298089 2298160 +NC_000962.3 2299186 2300128 +NC_000962.3 2300207 2300388 +NC_000962.3 2300446 2300580 +NC_000962.3 2300911 2301007 +NC_000962.3 2301264 2301332 +NC_000962.3 2301379 2302105 +NC_000962.3 2302112 2302517 +NC_000962.3 2303046 2303132 +NC_000962.3 2304131 2304202 +NC_000962.3 2305255 2306197 +NC_000962.3 2306276 2306457 +NC_000962.3 2306512 2306646 +NC_000962.3 2317128 2317129 +NC_000962.3 2317135 2317136 +NC_000962.3 2329858 2330072 +NC_000962.3 2330143 2330214 +NC_000962.3 2337968 2338102 +NC_000962.3 2338206 2338215 +NC_000962.3 2338216 2338217 +NC_000962.3 2338415 2338416 +NC_000962.3 2338421 2338422 +NC_000962.3 2338424 2338425 +NC_000962.3 2338427 2338428 +NC_000962.3 2338430 2338431 +NC_000962.3 2338433 2338434 +NC_000962.3 2338456 2338457 +NC_000962.3 2338676 2338677 +NC_000962.3 2338678 2338679 +NC_000962.3 2338691 2338692 +NC_000962.3 2338700 2338702 +NC_000962.3 2338703 2338704 +NC_000962.3 2338706 2338707 +NC_000962.3 2338715 2338716 +NC_000962.3 2338719 2338720 +NC_000962.3 2339363 2339432 +NC_000962.3 2339441 2339510 +NC_000962.3 2339512 2339573 +NC_000962.3 2339888 2340051 +NC_000962.3 2340561 2340695 +NC_000962.3 2341429 2341479 +NC_000962.3 2347386 2347620 +NC_000962.3 2356873 2356918 +NC_000962.3 2356927 2356933 +NC_000962.3 2357181 2357185 +NC_000962.3 2357249 2357268 +NC_000962.3 2357291 2357297 +NC_000962.3 2357314 2357321 +NC_000962.3 2357417 2357420 +NC_000962.3 2357426 2357607 +NC_000962.3 2357841 2357901 +NC_000962.3 2358659 2358715 +NC_000962.3 2358755 2358832 +NC_000962.3 2358918 2358991 +NC_000962.3 2358995 2359057 +NC_000962.3 2359163 2359213 +NC_000962.3 2359554 2359613 +NC_000962.3 2359778 2359852 +NC_000962.3 2359923 2359982 +NC_000962.3 2360650 2360660 +NC_000962.3 2360730 2360740 +NC_000962.3 2361908 2361909 +NC_000962.3 2363680 2363682 +NC_000962.3 2365407 2366778 +NC_000962.3 2366889 2366967 +NC_000962.3 2367028 2367060 +NC_000962.3 2372430 2372565 +NC_000962.3 2380217 2380261 +NC_000962.3 2381446 2381513 +NC_000962.3 2387281 2387659 +NC_000962.3 2401813 2401936 +NC_000962.3 2423328 2423387 +NC_000962.3 2423424 2423425 +NC_000962.3 2423526 2423687 +NC_000962.3 2423705 2423775 +NC_000962.3 2423789 2424293 +NC_000962.3 2424483 2424537 +NC_000962.3 2430107 2431481 +NC_000962.3 2439177 2439954 +NC_000962.3 2440279 2440334 +NC_000962.3 2449219 2449221 +NC_000962.3 2458391 2458471 +NC_000962.3 2461322 2461510 +NC_000962.3 2462528 2462594 +NC_000962.3 2466995 2467029 +NC_000962.3 2470043 2470086 +NC_000962.3 2482061 2482111 +NC_000962.3 2482418 2482468 +NC_000962.3 2522186 2522192 +NC_000962.3 2522194 2522219 +NC_000962.3 2523182 2523239 +NC_000962.3 2531886 2532244 +NC_000962.3 2546432 2546497 +NC_000962.3 2550002 2551378 +NC_000962.3 2554864 2554933 +NC_000962.3 2577285 2577362 +NC_000962.3 2577679 2577732 +NC_000962.3 2617342 2617407 +NC_000962.3 2625882 2626688 +NC_000962.3 2627503 2627556 +NC_000962.3 2629274 2629354 +NC_000962.3 2629593 2629672 +NC_000962.3 2630144 2630239 +NC_000962.3 2630868 2630926 +NC_000962.3 2631042 2631119 +NC_000962.3 2631358 2631437 +NC_000962.3 2631598 2631599 +NC_000962.3 2631619 2631620 +NC_000962.3 2631900 2631995 +NC_000962.3 2632922 2637037 +NC_000962.3 2637255 2637534 +NC_000962.3 2638349 2638560 +NC_000962.3 2638985 2639622 +NC_000962.3 2651435 2651440 +NC_000962.3 2651445 2651447 +NC_000962.3 2651843 2651910 +NC_000962.3 2683501 2683554 +NC_000962.3 2687129 2687257 +NC_000962.3 2693239 2693589 +NC_000962.3 2693609 2693854 +NC_000962.3 2700466 2700531 +NC_000962.3 2703891 2704019 +NC_000962.3 2704885 2704886 +NC_000962.3 2716308 2716392 +NC_000962.3 2720671 2721448 +NC_000962.3 2721812 2721867 +NC_000962.3 2724201 2724221 +NC_000962.3 2729618 2729620 +NC_000962.3 2729832 2729834 +NC_000962.3 2740574 2740601 +NC_000962.3 2751596 2751658 +NC_000962.3 2784601 2785982 +NC_000962.3 2795376 2795395 +NC_000962.3 2795561 2795578 +NC_000962.3 2795674 2795724 +NC_000962.3 2795854 2795868 +NC_000962.3 2795872 2796011 +NC_000962.3 2796483 2796488 +NC_000962.3 2796490 2796492 +NC_000962.3 2796747 2796761 +NC_000962.3 2796871 2796923 +NC_000962.3 2797259 2797355 +NC_000962.3 2801405 2801452 +NC_000962.3 2801456 2801471 +NC_000962.3 2801822 2802329 +NC_000962.3 2802330 2802331 +NC_000962.3 2802743 2802850 +NC_000962.3 2802853 2803162 +NC_000962.3 2803467 2803712 +NC_000962.3 2803721 2803725 +NC_000962.3 2803726 2803773 +NC_000962.3 2803777 2803783 +NC_000962.3 2803823 2803883 +NC_000962.3 2804102 2804164 +NC_000962.3 2804375 2804706 +NC_000962.3 2804720 2804723 +NC_000962.3 2804746 2804750 +NC_000962.3 2804756 2804823 +NC_000962.3 2804906 2805754 +NC_000962.3 2806110 2806206 +NC_000962.3 2822573 2822586 +NC_000962.3 2822617 2822669 +NC_000962.3 2828486 2829938 +NC_000962.3 2836272 2836324 +NC_000962.3 2850917 2850999 +NC_000962.3 2866465 2866759 +NC_000962.3 2866851 2867786 +NC_000962.3 2877243 2877305 +NC_000962.3 2878035 2878097 +NC_000962.3 2880155 2880261 +NC_000962.3 2883832 2883904 +NC_000962.3 2884038 2884153 +NC_000962.3 2887448 2887449 +NC_000962.3 2921969 2922026 +NC_000962.3 2922097 2922119 +NC_000962.3 2922181 2922254 +NC_000962.3 2922357 2922373 +NC_000962.3 2922436 2922459 +NC_000962.3 2922725 2922835 +NC_000962.3 2922867 2922930 +NC_000962.3 2922937 2922960 +NC_000962.3 2923091 2923143 +NC_000962.3 2935119 2935172 +NC_000962.3 2943754 2943801 +NC_000962.3 2944205 2945233 +NC_000962.3 2953436 2953513 +NC_000962.3 2960226 2960592 +NC_000962.3 2960877 2960880 +NC_000962.3 2960929 2961063 +NC_000962.3 2961069 2961071 +NC_000962.3 2961078 2961083 +NC_000962.3 2961085 2961231 +NC_000962.3 2961334 2961341 +NC_000962.3 2961355 2961356 +NC_000962.3 2961366 2961401 +NC_000962.3 2961409 2961412 +NC_000962.3 2961446 2961938 +NC_000962.3 2961961 2961962 +NC_000962.3 2971755 2971868 +NC_000962.3 2971940 2971990 +NC_000962.3 2972101 2973473 +NC_000962.3 2974050 2974162 +NC_000962.3 2974273 2974345 +NC_000962.3 2974410 2974651 +NC_000962.3 2974652 2974758 +NC_000962.3 2974767 2974912 +NC_000962.3 2974913 2975136 +NC_000962.3 2975263 2975329 +NC_000962.3 2975390 2975461 +NC_000962.3 2975465 2975697 +NC_000962.3 2975726 2975962 +NC_000962.3 2978905 2979050 +NC_000962.3 2980970 2980998 +NC_000962.3 2982937 2983859 +NC_000962.3 2989950 2989952 +NC_000962.3 2990578 2990706 +NC_000962.3 2996000 2996173 +NC_000962.3 3000927 3000997 +NC_000962.3 3001076 3001136 +NC_000962.3 3001304 3001385 +NC_000962.3 3001421 3001480 +NC_000962.3 3001760 3001811 +NC_000962.3 3002296 3002366 +NC_000962.3 3002445 3002505 +NC_000962.3 3002673 3002754 +NC_000962.3 3002790 3002849 +NC_000962.3 3003129 3003180 +NC_000962.3 3007032 3007227 +NC_000962.3 3018717 3018767 +NC_000962.3 3018795 3018854 +NC_000962.3 3022728 3022778 +NC_000962.3 3022806 3022865 +NC_000962.3 3026262 3026284 +NC_000962.3 3054576 3054577 +NC_000962.3 3054578 3054941 +NC_000962.3 3054952 3055236 +NC_000962.3 3059792 3059850 +NC_000962.3 3073062 3073136 +NC_000962.3 3076898 3076962 +NC_000962.3 3078168 3078218 +NC_000962.3 3082462 3082661 +NC_000962.3 3082704 3082763 +NC_000962.3 3097654 3097715 +NC_000962.3 3100170 3100401 +NC_000962.3 3100446 3100511 +NC_000962.3 3100515 3100571 +NC_000962.3 3100694 3100799 +NC_000962.3 3100879 3100939 +NC_000962.3 3100965 3101132 +NC_000962.3 3101235 3101377 +NC_000962.3 3101429 3101543 +NC_000962.3 3101660 3101731 +NC_000962.3 3101861 3101911 +NC_000962.3 3102099 3102229 +NC_000962.3 3102340 3102390 +NC_000962.3 3104976 3105044 +NC_000962.3 3112312 3112313 +NC_000962.3 3112459 3112460 +NC_000962.3 3113017 3113104 +NC_000962.3 3113775 3113862 +NC_000962.3 3116414 3116522 +NC_000962.3 3116682 3116766 +NC_000962.3 3116843 3116989 +NC_000962.3 3119560 3119563 +NC_000962.3 3119566 3122702 +NC_000962.3 3122803 3122918 +NC_000962.3 3122931 3122942 +NC_000962.3 3122948 3122954 +NC_000962.3 3123027 3123283 +NC_000962.3 3123316 3123353 +NC_000962.3 3123422 3123424 +NC_000962.3 3132887 3133461 +NC_000962.3 3135783 3136357 +NC_000962.3 3138022 3138085 +NC_000962.3 3147107 3147108 +NC_000962.3 3147110 3147119 +NC_000962.3 3155875 3156094 +NC_000962.3 3160526 3160587 +NC_000962.3 3162643 3162703 +NC_000962.3 3162806 3162923 +NC_000962.3 3163470 3163548 +NC_000962.3 3163615 3163617 +NC_000962.3 3163619 3164033 +NC_000962.3 3171459 3171634 +NC_000962.3 3189479 3189617 +NC_000962.3 3192190 3192363 +NC_000962.3 3194136 3194535 +NC_000962.3 3194658 3194763 +NC_000962.3 3194791 3194794 +NC_000962.3 3194935 3195045 +NC_000962.3 3195058 3195120 +NC_000962.3 3195203 3195283 +NC_000962.3 3196071 3196122 +NC_000962.3 3201556 3201655 +NC_000962.3 3226325 3226402 +NC_000962.3 3232506 3232871 +NC_000962.3 3239466 3239794 +NC_000962.3 3245098 3245166 +NC_000962.3 3245321 3245389 +NC_000962.3 3247233 3247304 +NC_000962.3 3247313 3247471 +NC_000962.3 3247557 3247739 +NC_000962.3 3247809 3248173 +NC_000962.3 3248283 3248335 +NC_000962.3 3251411 3251470 +NC_000962.3 3252647 3252718 +NC_000962.3 3252727 3252885 +NC_000962.3 3252971 3253153 +NC_000962.3 3253223 3253587 +NC_000962.3 3253733 3253738 +NC_000962.3 3257962 3258024 +NC_000962.3 3258181 3258232 +NC_000962.3 3258342 3258404 +NC_000962.3 3262593 3262652 +NC_000962.3 3266035 3266081 +NC_000962.3 3276956 3277006 +NC_000962.3 3277821 3277904 +NC_000962.3 3281070 3281123 +NC_000962.3 3281221 3281240 +NC_000962.3 3284730 3284810 +NC_000962.3 3287950 3288005 +NC_000962.3 3290432 3290482 +NC_000962.3 3291393 3291510 +NC_000962.3 3292983 3293052 +NC_000962.3 3293178 3293237 +NC_000962.3 3295507 3295562 +NC_000962.3 3296594 3296665 +NC_000962.3 3297173 3297238 +NC_000962.3 3307727 3307761 +NC_000962.3 3311027 3311090 +NC_000962.3 3311308 3311393 +NC_000962.3 3311534 3311599 +NC_000962.3 3313346 3313396 +NC_000962.3 3314116 3314179 +NC_000962.3 3314397 3314482 +NC_000962.3 3314623 3314688 +NC_000962.3 3317572 3317743 +NC_000962.3 3319468 3319665 +NC_000962.3 3333753 3333984 +NC_000962.3 3333990 3334184 +NC_000962.3 3334239 3334370 +NC_000962.3 3334557 3334609 +NC_000962.3 3334646 3334739 +NC_000962.3 3334822 3334960 +NC_000962.3 3335016 3335084 +NC_000962.3 3335246 3335317 +NC_000962.3 3335357 3335410 +NC_000962.3 3335447 3335497 +NC_000962.3 3335504 3335566 +NC_000962.3 3335741 3335815 +NC_000962.3 3336500 3336803 +NC_000962.3 3343348 3343447 +NC_000962.3 3348477 3348544 +NC_000962.3 3351084 3351220 +NC_000962.3 3369930 3369931 +NC_000962.3 3369937 3369942 +NC_000962.3 3376515 3376543 +NC_000962.3 3376746 3376809 +NC_000962.3 3376921 3377368 +NC_000962.3 3377645 3378276 +NC_000962.3 3378329 3378443 +NC_000962.3 3378895 3378960 +NC_000962.3 3379196 3379285 +NC_000962.3 3379358 3380715 +NC_000962.3 3380907 3381021 +NC_000962.3 3381307 3382755 +NC_000962.3 3415197 3415211 +NC_000962.3 3430332 3430388 +NC_000962.3 3451379 3451439 +NC_000962.3 3463548 3463559 +NC_000962.3 3477289 3477404 +NC_000962.3 3481318 3482769 +NC_000962.3 3483942 3485117 +NC_000962.3 3491173 3491238 +NC_000962.3 3491292 3491383 +NC_000962.3 3491605 3491662 +NC_000962.3 3491745 3491860 +NC_000962.3 3501334 3501335 +NC_000962.3 3502155 3502265 +NC_000962.3 3524464 3524527 +NC_000962.3 3528083 3528084 +NC_000962.3 3528086 3528087 +NC_000962.3 3528098 3528099 +NC_000962.3 3528101 3528102 +NC_000962.3 3528116 3528117 +NC_000962.3 3528118 3528120 +NC_000962.3 3528128 3528129 +NC_000962.3 3528139 3528140 +NC_000962.3 3528143 3528144 +NC_000962.3 3528157 3528159 +NC_000962.3 3528164 3528165 +NC_000962.3 3528191 3528192 +NC_000962.3 3528197 3528198 +NC_000962.3 3528674 3529181 +NC_000962.3 3537803 3537820 +NC_000962.3 3551223 3554075 +NC_000962.3 3558759 3558794 +NC_000962.3 3572554 3572610 +NC_000962.3 3590630 3590687 +NC_000962.3 3594262 3594465 +NC_000962.3 3595987 3596005 +NC_000962.3 3598349 3598405 +NC_000962.3 3598436 3598532 +NC_000962.3 3598641 3598719 +NC_000962.3 3617102 3617103 +NC_000962.3 3626606 3626667 +NC_000962.3 3628084 3628147 +NC_000962.3 3658635 3658712 +NC_000962.3 3663723 3664000 +NC_000962.3 3690944 3691077 +NC_000962.3 3704903 3704991 +NC_000962.3 3707577 3707634 +NC_000962.3 3710374 3712827 +NC_000962.3 3724548 3724618 +NC_000962.3 3729448 3729597 +NC_000962.3 3729626 3729676 +NC_000962.3 3730345 3732799 +NC_000962.3 3734471 3734529 +NC_000962.3 3735634 3736288 +NC_000962.3 3736501 3736555 +NC_000962.3 3736693 3736747 +NC_000962.3 3737092 3737207 +NC_000962.3 3737268 3737497 +NC_000962.3 3737804 3737808 +NC_000962.3 3737814 3737818 +NC_000962.3 3737828 3737836 +NC_000962.3 3737992 3738961 +NC_000962.3 3738977 3738985 +NC_000962.3 3739052 3739056 +NC_000962.3 3739131 3739133 +NC_000962.3 3739159 3739163 +NC_000962.3 3739194 3739202 +NC_000962.3 3739207 3739899 +NC_000962.3 3739960 3740010 +NC_000962.3 3740065 3740131 +NC_000962.3 3740138 3740140 +NC_000962.3 3740161 3740208 +NC_000962.3 3740214 3740229 +NC_000962.3 3740302 3740322 +NC_000962.3 3740338 3740574 +NC_000962.3 3740592 3740604 +NC_000962.3 3740617 3740620 +NC_000962.3 3740630 3740632 +NC_000962.3 3740644 3740655 +NC_000962.3 3740659 3740666 +NC_000962.3 3740681 3740698 +NC_000962.3 3740702 3740939 +NC_000962.3 3741172 3741178 +NC_000962.3 3741286 3741394 +NC_000962.3 3741502 3741604 +NC_000962.3 3741624 3741678 +NC_000962.3 3741681 3741914 +NC_000962.3 3741942 3742247 +NC_000962.3 3742250 3742256 +NC_000962.3 3742316 3742371 +NC_000962.3 3743211 3743502 +NC_000962.3 3743507 3743603 +NC_000962.3 3743710 3753184 +NC_000962.3 3753326 3754368 +NC_000962.3 3756036 3756185 +NC_000962.3 3756410 3756480 +NC_000962.3 3756941 3757478 +NC_000962.3 3757570 3757629 +NC_000962.3 3757773 3757828 +NC_000962.3 3757879 3757971 +NC_000962.3 3757972 3758040 +NC_000962.3 3758117 3758193 +NC_000962.3 3758716 3759099 +NC_000962.3 3759107 3759186 +NC_000962.3 3759331 3759390 +NC_000962.3 3759534 3759589 +NC_000962.3 3759679 3759738 +NC_000962.3 3759826 3759909 +NC_000962.3 3760356 3760409 +NC_000962.3 3760417 3760675 +NC_000962.3 3760753 3760985 +NC_000962.3 3762384 3762655 +NC_000962.3 3762661 3762818 +NC_000962.3 3763048 3763101 +NC_000962.3 3763223 3763275 +NC_000962.3 3763282 3763332 +NC_000962.3 3764059 3764114 +NC_000962.3 3764134 3764237 +NC_000962.3 3764251 3764523 +NC_000962.3 3764809 3764862 +NC_000962.3 3764980 3765076 +NC_000962.3 3765161 3765219 +NC_000962.3 3765798 3765987 +NC_000962.3 3766018 3766179 +NC_000962.3 3766215 3766396 +NC_000962.3 3766435 3766518 +NC_000962.3 3766552 3766722 +NC_000962.3 3766760 3766819 +NC_000962.3 3766829 3767099 +NC_000962.3 3769527 3769724 +NC_000962.3 3769749 3769854 +NC_000962.3 3770993 3771089 +NC_000962.3 3779545 3779766 +NC_000962.3 3779809 3779899 +NC_000962.3 3779936 3779981 +NC_000962.3 3780156 3780175 +NC_000962.3 3794868 3796422 +NC_000962.3 3800030 3800120 +NC_000962.3 3801824 3801874 +NC_000962.3 3802056 3802113 +NC_000962.3 3802122 3803827 +NC_000962.3 3803844 3803919 +NC_000962.3 3808262 3808421 +NC_000962.3 3820387 3820598 +NC_000962.3 3820711 3820772 +NC_000962.3 3835202 3835264 +NC_000962.3 3841619 3842454 +NC_000962.3 3842471 3842551 +NC_000962.3 3842560 3842670 +NC_000962.3 3842725 3842907 +NC_000962.3 3842979 3843117 +NC_000962.3 3843182 3843275 +NC_000962.3 3843317 3843468 +NC_000962.3 3843519 3843520 +NC_000962.3 3843523 3843705 +NC_000962.3 3843713 3843714 +NC_000962.3 3843748 3843749 +NC_000962.3 3843750 3843753 +NC_000962.3 3843759 3843760 +NC_000962.3 3844681 3844756 +NC_000962.3 3845970 3847246 +NC_000962.3 3847305 3847404 +NC_000962.3 3847446 3847581 +NC_000962.3 3847700 3847711 +NC_000962.3 3847714 3847896 +NC_000962.3 3862570 3862575 +NC_000962.3 3862576 3862578 +NC_000962.3 3873526 3873540 +NC_000962.3 3878561 3878637 +NC_000962.3 3883543 3884926 +NC_000962.3 3890771 3892143 +NC_000962.3 3894402 3894790 +NC_000962.3 3894863 3895078 +NC_000962.3 3895083 3895137 +NC_000962.3 3895184 3895525 +NC_000962.3 3909753 3909823 +NC_000962.3 3920470 3920549 +NC_000962.3 3926568 3930714 +NC_000962.3 3930985 3936710 +NC_000962.3 3939616 3944963 +NC_000962.3 3945089 3945604 +NC_000962.3 3945774 3950263 +NC_000962.3 3950821 3951336 +NC_000962.3 3953332 3953403 +NC_000962.3 3971370 3971455 +NC_000962.3 3971458 3971524 +NC_000962.3 3971981 3972034 +NC_000962.3 3972081 3972195 +NC_000962.3 3972211 3972290 +NC_000962.3 3972337 3972393 +NC_000962.3 3991561 3991619 +NC_000962.3 3998150 3998204 +NC_000962.3 3998607 3998613 +NC_000962.3 3998824 3998942 +NC_000962.3 3998991 3999071 +NC_000962.3 4021388 4021460 +NC_000962.3 4031606 4031660 +NC_000962.3 4031821 4031838 +NC_000962.3 4031924 4031943 +NC_000962.3 4031955 4032014 +NC_000962.3 4032019 4032024 +NC_000962.3 4032382 4032639 +NC_000962.3 4032757 4032820 +NC_000962.3 4036846 4037194 +NC_000962.3 4037349 4037350 +NC_000962.3 4037353 4037354 +NC_000962.3 4037446 4037497 +NC_000962.3 4037832 4037883 +NC_000962.3 4038741 4038794 +NC_000962.3 4038844 4038845 +NC_000962.3 4038846 4038882 +NC_000962.3 4039675 4039747 +NC_000962.3 4040022 4040104 +NC_000962.3 4052949 4053603 +NC_000962.3 4053634 4053852 +NC_000962.3 4059977 4060595 +NC_000962.3 4061422 4061526 +NC_000962.3 4070033 4070083 +NC_000962.3 4070261 4070347 +NC_000962.3 4077656 4077706 +NC_000962.3 4077788 4077860 +NC_000962.3 4077890 4077961 +NC_000962.3 4077977 4078205 +NC_000962.3 4087476 4087626 +NC_000962.3 4090857 4090910 +NC_000962.3 4091336 4091423 +NC_000962.3 4094066 4094346 +NC_000962.3 4101192 4101256 +NC_000962.3 4107450 4107526 +NC_000962.3 4120913 4121197 +NC_000962.3 4134600 4134730 +NC_000962.3 4139502 4139566 +NC_000962.3 4139567 4139569 +NC_000962.3 4143900 4143956 +NC_000962.3 4155453 4155589 +NC_000962.3 4156793 4156975 +NC_000962.3 4168470 4168482 +NC_000962.3 4175392 4175410 +NC_000962.3 4189439 4189509 +NC_000962.3 4190056 4190144 +NC_000962.3 4199122 4199189 +NC_000962.3 4201240 4201294 +NC_000962.3 4216126 4216272 +NC_000962.3 4216347 4216431 +NC_000962.3 4216591 4216699 +NC_000962.3 4221245 4221301 +NC_000962.3 4221341 4221418 +NC_000962.3 4221504 4221577 +NC_000962.3 4221581 4221643 +NC_000962.3 4221749 4221799 +NC_000962.3 4222095 4222154 +NC_000962.3 4222319 4222393 +NC_000962.3 4222464 4222523 +NC_000962.3 4222572 4222639 +NC_000962.3 4231319 4232393 +NC_000962.3 4237930 4237998 +NC_000962.3 4240442 4240492 +NC_000962.3 4247057 4247107 +NC_000962.3 4252876 4254339 +NC_000962.3 4265704 4265757 +NC_000962.3 4266206 4266275 +NC_000962.3 4266315 4266398 +NC_000962.3 4266447 4266530 +NC_000962.3 4288132 4288218 +NC_000962.3 4293984 4294056 +NC_000962.3 4294402 4294459 +NC_000962.3 4294717 4294773 +NC_000962.3 4296685 4296735 +NC_000962.3 4297903 4297956 +NC_000962.3 4301213 4301287 +NC_000962.3 4301540 4301806 +NC_000962.3 4301861 4302004 +NC_000962.3 4302084 4302144 +NC_000962.3 4302170 4302248 +NC_000962.3 4302440 4302523 +NC_000962.3 4302527 4302577 +NC_000962.3 4302652 4302715 +NC_000962.3 4302868 4302924 +NC_000962.3 4302976 4303029 +NC_000962.3 4303123 4303185 +NC_000962.3 4303304 4303433 +NC_000962.3 4317963 4318064 +NC_000962.3 4318102 4318154 +NC_000962.3 4318336 4319378 +NC_000962.3 4320040 4320112 +NC_000962.3 4340937 4340993 +NC_000962.3 4348719 4348834 +NC_000962.3 4353179 4353460 +NC_000962.3 4353839 4353891 +NC_000962.3 4359134 4359135 +NC_000962.3 4361058 4361100 +NC_000962.3 4368618 4368637 +NC_000962.3 4369564 4369624 +NC_000962.3 4383309 4383359 diff --git a/setup.cfg b/setup.cfg index dc10894..b1c06d9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = tb_variant_filter -version = 0.3.5 +version = 0.3.6 author = "Peter van Heusden" author_email = pvh@sanbi.ac.za description = This tool offers multiple options for filtering variants (in VCF files, relative to M. tuberculosis H37Rv). diff --git a/src/tb_variant_filter/filters/region_filter.py b/src/tb_variant_filter/filters/region_filter.py index f0d8d20..d38e0fc 100644 --- a/src/tb_variant_filter/filters/region_filter.py +++ b/src/tb_variant_filter/filters/region_filter.py @@ -21,6 +21,7 @@ import sys from tb_variant_filter.masks import ( FarhatLab_RLC_Regions, + FarhatLab_RLC_LowMap_Regions, MTBseqRegions, PE_PPE_Regions, TBProfilerRegions, @@ -31,6 +32,7 @@ REGIONS = { "farhat_rlc": FarhatLab_RLC_Regions(), + "farhat_rlc_lowmap": FarhatLab_RLC_LowMap_Regions(), "mtbseq": MTBseqRegions(), "pe_ppe": PE_PPE_Regions(), "tbprofiler": TBProfilerRegions(), diff --git a/src/tb_variant_filter/masks/__init__.py b/src/tb_variant_filter/masks/__init__.py index 8d9a1d6..9a63b4d 100644 --- a/src/tb_variant_filter/masks/__init__.py +++ b/src/tb_variant_filter/masks/__init__.py @@ -13,6 +13,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . from .farhat_rlc import FarhatLab_RLC_Regions +from .farhat_rlc_lowmap import FarhatLab_RLC_LowMap_Regions from .mtbseq import MTBseqRegions from .pe_ppe import PE_PPE_Regions from .tbprofiler import TBProfilerRegions @@ -20,6 +21,7 @@ __all__ = [ "FarhatLab_RLC_Regions", + "FarhatLab_RLC_LowMap_Regions", "MTBseqRegions", "PE_PPE_Regions", "TBProfilerRegions", diff --git a/src/tb_variant_filter/masks/farhat_rlc.py b/src/tb_variant_filter/masks/farhat_rlc.py index 6ee994f..480ca91 100644 --- a/src/tb_variant_filter/masks/farhat_rlc.py +++ b/src/tb_variant_filter/masks/farhat_rlc.py @@ -21,12 +21,11 @@ # noinspection PyPep8Naming class FarhatLab_RLC_Regions(RegionList): - url = "https://www.biorxiv.org/content/biorxiv/early/2021/04/11/2021.04.08.438862/DC12/embed/media-12.tsv" + url = "https://raw.githubusercontent.com/farhat-lab/mtb-illumina-wgs-evaluation/main/Results/A_Manuscript_AdditionalFiles/AF13_RLC_Regions.H37Rv.bed" name = "FarhatLab_RLC" description = "Refined Low Confidence regions from Farhat Lab" - project_url = ( - "https://www.biorxiv.org/content/10.1101/2021.04.08.438862v1.full" - ) # URL of the Marin et al preprint + # these regions are in the AF13_RLC_Regions.H37Rv.bed supplementary file in the publication + project_url = "https://doi.org/10.1093/bioinformatics/btac023" regions = [ Location(locus="region1", start=24720, end=24738, strand=1), Location(locus="region2", start=39029, end=39030, strand=1), diff --git a/src/tb_variant_filter/masks/farhat_rlc_lowmap.py b/src/tb_variant_filter/masks/farhat_rlc_lowmap.py new file mode 100644 index 0000000..7600b8b --- /dev/null +++ b/src/tb_variant_filter/masks/farhat_rlc_lowmap.py @@ -0,0 +1,1363 @@ + +# Copyright (C) 2022 Peter van Heusden +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from .. import Location, doc_inherit +from io import StringIO +import requests + +from ..region_list import RegionList, bed_to_regions + +from ..region_list import RegionList, bed_to_regions + +# noinspection PyPep8Naming +class FarhatLab_RLC_LowMap_Regions(RegionList): + url = "https://raw.githubusercontent.com/farhat-lab/mtb-illumina-wgs-evaluation/main/Results/A_Manuscript_AdditionalFiles/AF14_RLC_Regions.Plus.LowPmapK50E4.H37Rv.bed" + name = "FarhatLab_RLC_LowMap" + description = "Refined Low Confidence and low mappability from Farhat Lab" + # these regions are in the AF14_RLC_Regions.Plus.LowPmapK50E4.H37Rv.bed supplementary file in the publication + project_url = "https://doi.org/10.1093/bioinformatics/btac023" + regions = [ + Location(locus='region1', start=23173, end=23238, strand=1), + Location(locus='region2', start=24720, end=24738, strand=1), + Location(locus='region3', start=39029, end=39030, strand=1), + Location(locus='region4', start=55548, end=55647, strand=1), + Location(locus='region5', start=71464, end=71584, strand=1), + Location(locus='region6', start=79499, end=83035, strand=1), + Location(locus='region7', start=86778, end=86779, strand=1), + Location(locus='region8', start=86780, end=86782, strand=1), + Location(locus='region9', start=103702, end=104811, strand=1), + Location(locus='region10', start=104813, end=105137, strand=1), + Location(locus='region11', start=131785, end=131844, strand=1), + Location(locus='region12', start=131928, end=131979, strand=1), + Location(locus='region13', start=131980, end=131982, strand=1), + Location(locus='region14', start=131992, end=131993, strand=1), + Location(locus='region15', start=132077, end=132079, strand=1), + Location(locus='region16', start=132159, end=132189, strand=1), + Location(locus='region17', start=132518, end=132684, strand=1), + Location(locus='region18', start=149499, end=149526, strand=1), + Location(locus='region19', start=149634, end=149760, strand=1), + Location(locus='region20', start=149825, end=150890, strand=1), + Location(locus='region21', start=154109, end=154245, strand=1), + Location(locus='region22', start=157278, end=157331, strand=1), + Location(locus='region23', start=157382, end=157433, strand=1), + Location(locus='region24', start=161526, end=161577, strand=1), + Location(locus='region25', start=171456, end=171457, strand=1), + Location(locus='region26', start=171778, end=171779, strand=1), + Location(locus='region27', start=177094, end=177180, strand=1), + Location(locus='region28', start=177225, end=177322, strand=1), + Location(locus='region29', start=177337, end=177408, strand=1), + Location(locus='region30', start=192336, end=192398, strand=1), + Location(locus='region31', start=197077, end=197130, strand=1), + Location(locus='region32', start=197191, end=197311, strand=1), + Location(locus='region33', start=197837, end=198006, strand=1), + Location(locus='region34', start=198089, end=198170, strand=1), + Location(locus='region35', start=198477, end=198537, strand=1), + Location(locus='region36', start=198936, end=199041, strand=1), + Location(locus='region37', start=199750, end=199832, strand=1), + Location(locus='region38', start=201952, end=202014, strand=1), + Location(locus='region39', start=206494, end=206519, strand=1), + Location(locus='region40', start=234446, end=234492, strand=1), + Location(locus='region41', start=253598, end=253666, strand=1), + Location(locus='region42', start=267757, end=267812, strand=1), + Location(locus='region43', start=272848, end=272957, strand=1), + Location(locus='region44', start=279525, end=279601, strand=1), + Location(locus='region45', start=293724, end=293792, strand=1), + Location(locus='region46', start=294285, end=294337, strand=1), + Location(locus='region47', start=308321, end=308413, strand=1), + Location(locus='region48', start=309084, end=309191, strand=1), + Location(locus='region49', start=309927, end=310110, strand=1), + Location(locus='region50', start=332699, end=333141, strand=1), + Location(locus='region51', start=333157, end=333223, strand=1), + Location(locus='region52', start=333292, end=333406, strand=1), + Location(locus='region53', start=333436, end=336385, strand=1), + Location(locus='region54', start=336399, end=336400, strand=1), + Location(locus='region55', start=336402, end=336403, strand=1), + Location(locus='region56', start=336404, end=336405, strand=1), + Location(locus='region57', start=336496, end=336497, strand=1), + Location(locus='region58', start=336503, end=336504, strand=1), + Location(locus='region59', start=336534, end=336535, strand=1), + Location(locus='region60', start=336536, end=336537, strand=1), + Location(locus='region61', start=336539, end=336540, strand=1), + Location(locus='region62', start=336545, end=336546, strand=1), + Location(locus='region63', start=336552, end=337173, strand=1), + Location(locus='region64', start=337265, end=337381, strand=1), + Location(locus='region65', start=337492, end=337617, strand=1), + Location(locus='region66', start=337714, end=339148, strand=1), + Location(locus='region67', start=339715, end=339822, strand=1), + Location(locus='region68', start=340429, end=340470, strand=1), + Location(locus='region69', start=340472, end=340484, strand=1), + Location(locus='region70', start=341205, end=341267, strand=1), + Location(locus='region71', start=350296, end=350360, strand=1), + Location(locus='region72', start=351570, end=351659, strand=1), + Location(locus='region73', start=351890, end=351940, strand=1), + Location(locus='region74', start=361634, end=361726, strand=1), + Location(locus='region75', start=361740, end=361973, strand=1), + Location(locus='region76', start=361987, end=362010, strand=1), + Location(locus='region77', start=362620, end=362748, strand=1), + Location(locus='region78', start=362751, end=362764, strand=1), + Location(locus='region79', start=362769, end=362916, strand=1), + Location(locus='region80', start=362960, end=363020, strand=1), + Location(locus='region81', start=366149, end=372764, strand=1), + Location(locus='region82', start=372777, end=372834, strand=1), + Location(locus='region83', start=373194, end=373249, strand=1), + Location(locus='region84', start=373280, end=373372, strand=1), + Location(locus='region85', start=373394, end=373471, strand=1), + Location(locus='region86', start=373527, end=373657, strand=1), + Location(locus='region87', start=373972, end=374026, strand=1), + Location(locus='region88', start=374051, end=374185, strand=1), + Location(locus='region89', start=374464, end=374983, strand=1), + Location(locus='region90', start=375259, end=375329, strand=1), + Location(locus='region91', start=400147, end=401706, strand=1), + Location(locus='region92', start=410552, end=410570, strand=1), + Location(locus='region93', start=424007, end=424150, strand=1), + Location(locus='region94', start=424843, end=425033, strand=1), + Location(locus='region95', start=425096, end=425154, strand=1), + Location(locus='region96', start=425168, end=425272, strand=1), + Location(locus='region97', start=425284, end=425410, strand=1), + Location(locus='region98', start=425411, end=425593, strand=1), + Location(locus='region99', start=426576, end=426680, strand=1), + Location(locus='region100', start=426736, end=426861, strand=1), + Location(locus='region101', start=426910, end=426998, strand=1), + Location(locus='region102', start=427070, end=427200, strand=1), + Location(locus='region103', start=427296, end=427383, strand=1), + Location(locus='region104', start=428403, end=428503, strand=1), + Location(locus='region105', start=428525, end=428762, strand=1), + Location(locus='region106', start=429119, end=429181, strand=1), + Location(locus='region107', start=429632, end=429716, strand=1), + Location(locus='region108', start=429791, end=430174, strand=1), + Location(locus='region109', start=431043, end=431094, strand=1), + Location(locus='region110', start=431126, end=431184, strand=1), + Location(locus='region111', start=431192, end=431263, strand=1), + Location(locus='region112', start=431273, end=431442, strand=1), + Location(locus='region113', start=431454, end=431551, strand=1), + Location(locus='region114', start=431884, end=431935, strand=1), + Location(locus='region115', start=432375, end=432436, strand=1), + Location(locus='region116', start=432533, end=432592, strand=1), + Location(locus='region117', start=432605, end=432804, strand=1), + Location(locus='region118', start=433691, end=433801, strand=1), + Location(locus='region119', start=433848, end=433930, strand=1), + Location(locus='region120', start=433940, end=434006, strand=1), + Location(locus='region121', start=434227, end=434311, strand=1), + Location(locus='region122', start=456207, end=456210, strand=1), + Location(locus='region123', start=456211, end=456212, strand=1), + Location(locus='region124', start=459877, end=459930, strand=1), + Location(locus='region125', start=460997, end=461069, strand=1), + Location(locus='region126', start=461350, end=461432, strand=1), + Location(locus='region127', start=472443, end=472496, strand=1), + Location(locus='region128', start=473741, end=474045, strand=1), + Location(locus='region129', start=474047, end=474109, strand=1), + Location(locus='region130', start=475807, end=476111, strand=1), + Location(locus='region131', start=476125, end=476183, strand=1), + Location(locus='region132', start=488167, end=488222, strand=1), + Location(locus='region133', start=496254, end=496354, strand=1), + Location(locus='region134', start=531536, end=531591, strand=1), + Location(locus='region135', start=538775, end=538840, strand=1), + Location(locus='region136', start=543555, end=543639, strand=1), + Location(locus='region137', start=560891, end=560941, strand=1), + Location(locus='region138', start=561274, end=561339, strand=1), + Location(locus='region139', start=561532, end=561658, strand=1), + Location(locus='region140', start=562303, end=562397, strand=1), + Location(locus='region141', start=566271, end=566345, strand=1), + Location(locus='region142', start=569811, end=569985, strand=1), + Location(locus='region143', start=577281, end=577503, strand=1), + Location(locus='region144', start=580566, end=580821, strand=1), + Location(locus='region145', start=594517, end=594569, strand=1), + Location(locus='region146', start=595330, end=595453, strand=1), + Location(locus='region147', start=598879, end=598932, strand=1), + Location(locus='region148', start=606506, end=608064, strand=1), + Location(locus='region149', start=622890, end=622945, strand=1), + Location(locus='region150', start=623098, end=624417, strand=1), + Location(locus='region151', start=631282, end=631440, strand=1), + Location(locus='region152', start=642735, end=642818, strand=1), + Location(locus='region153', start=663428, end=663429, strand=1), + Location(locus='region154', start=669263, end=669314, strand=1), + Location(locus='region155', start=672009, end=672011, strand=1), + Location(locus='region156', start=672014, end=672070, strand=1), + Location(locus='region157', start=672104, end=672108, strand=1), + Location(locus='region158', start=672161, end=672246, strand=1), + Location(locus='region159', start=672265, end=672274, strand=1), + Location(locus='region160', start=672443, end=672462, strand=1), + Location(locus='region161', start=672477, end=672524, strand=1), + Location(locus='region162', start=672532, end=672563, strand=1), + Location(locus='region163', start=672648, end=672805, strand=1), + Location(locus='region164', start=672827, end=672919, strand=1), + Location(locus='region165', start=672945, end=672951, strand=1), + Location(locus='region166', start=672955, end=672959, strand=1), + Location(locus='region167', start=673102, end=673134, strand=1), + Location(locus='region168', start=673135, end=673623, strand=1), + Location(locus='region169', start=673635, end=673637, strand=1), + Location(locus='region170', start=673647, end=673668, strand=1), + Location(locus='region171', start=673940, end=673995, strand=1), + Location(locus='region172', start=674121, end=674132, strand=1), + Location(locus='region173', start=674142, end=674163, strand=1), + Location(locus='region174', start=674218, end=674220, strand=1), + Location(locus='region175', start=674227, end=674233, strand=1), + Location(locus='region176', start=674240, end=674272, strand=1), + Location(locus='region177', start=674311, end=674319, strand=1), + Location(locus='region178', start=674343, end=674358, strand=1), + Location(locus='region179', start=674434, end=674507, strand=1), + Location(locus='region180', start=674546, end=674556, strand=1), + Location(locus='region181', start=674780, end=675029, strand=1), + Location(locus='region182', start=675034, end=675405, strand=1), + Location(locus='region183', start=675486, end=675548, strand=1), + Location(locus='region184', start=675555, end=675615, strand=1), + Location(locus='region185', start=677064, end=677128, strand=1), + Location(locus='region186', start=685345, end=685398, strand=1), + Location(locus='region187', start=685459, end=685579, strand=1), + Location(locus='region188', start=686123, end=686292, strand=1), + Location(locus='region189', start=686375, end=686456, strand=1), + Location(locus='region190', start=686763, end=686823, strand=1), + Location(locus='region191', start=687245, end=687325, strand=1), + Location(locus='region192', start=687887, end=687969, strand=1), + Location(locus='region193', start=690079, end=690141, strand=1), + Location(locus='region194', start=699610, end=699640, strand=1), + Location(locus='region195', start=701242, end=701311, strand=1), + Location(locus='region196', start=701313, end=701438, strand=1), + Location(locus='region197', start=702055, end=702169, strand=1), + Location(locus='region198', start=702279, end=702358, strand=1), + Location(locus='region199', start=702538, end=702627, strand=1), + Location(locus='region200', start=709420, end=709489, strand=1), + Location(locus='region201', start=709492, end=709544, strand=1), + Location(locus='region202', start=709581, end=709666, strand=1), + Location(locus='region203', start=711563, end=711705, strand=1), + Location(locus='region204', start=716627, end=716678, strand=1), + Location(locus='region205', start=717242, end=717295, strand=1), + Location(locus='region206', start=717640, end=717717, strand=1), + Location(locus='region207', start=718309, end=718366, strand=1), + Location(locus='region208', start=718811, end=718863, strand=1), + Location(locus='region209', start=718864, end=718926, strand=1), + Location(locus='region210', start=719128, end=719200, strand=1), + Location(locus='region211', start=719383, end=719465, strand=1), + Location(locus='region212', start=719466, end=719546, strand=1), + Location(locus='region213', start=719637, end=719688, strand=1), + Location(locus='region214', start=725208, end=725233, strand=1), + Location(locus='region215', start=735079, end=735081, strand=1), + Location(locus='region216', start=736226, end=736298, strand=1), + Location(locus='region217', start=737308, end=737390, strand=1), + Location(locus='region218', start=737989, end=738061, strand=1), + Location(locus='region219', start=738337, end=738419, strand=1), + Location(locus='region220', start=738723, end=738788, strand=1), + Location(locus='region221', start=738922, end=738974, strand=1), + Location(locus='region222', start=738981, end=739052, strand=1), + Location(locus='region223', start=739053, end=739144, strand=1), + Location(locus='region224', start=742562, end=742638, strand=1), + Location(locus='region225', start=747949, end=748000, strand=1), + Location(locus='region226', start=755259, end=755331, strand=1), + Location(locus='region227', start=767365, end=767366, strand=1), + Location(locus='region228', start=767367, end=767371, strand=1), + Location(locus='region229', start=776715, end=776768, strand=1), + Location(locus='region230', start=786025, end=786081, strand=1), + Location(locus='region231', start=795468, end=795527, strand=1), + Location(locus='region232', start=798663, end=798739, strand=1), + Location(locus='region233', start=798998, end=799069, strand=1), + Location(locus='region234', start=806193, end=806194, strand=1), + Location(locus='region235', start=806195, end=806199, strand=1), + Location(locus='region236', start=806202, end=806219, strand=1), + Location(locus='region237', start=812848, end=812898, strand=1), + Location(locus='region238', start=818308, end=818358, strand=1), + Location(locus='region239', start=829702, end=829773, strand=1), + Location(locus='region240', start=830629, end=830685, strand=1), + Location(locus='region241', start=830712, end=830765, strand=1), + Location(locus='region242', start=831188, end=831263, strand=1), + Location(locus='region243', start=831965, end=832028, strand=1), + Location(locus='region244', start=832083, end=832362, strand=1), + Location(locus='region245', start=832654, end=832758, strand=1), + Location(locus='region246', start=832980, end=833508, strand=1), + Location(locus='region247', start=833514, end=833517, strand=1), + Location(locus='region248', start=833529, end=833539, strand=1), + Location(locus='region249', start=835080, end=835203, strand=1), + Location(locus='region250', start=835405, end=835458, strand=1), + Location(locus='region251', start=835700, end=838052, strand=1), + Location(locus='region252', start=838450, end=840856, strand=1), + Location(locus='region253', start=840959, end=841073, strand=1), + Location(locus='region254', start=841142, end=841208, strand=1), + Location(locus='region255', start=841224, end=841666, strand=1), + Location(locus='region256', start=841941, end=842016, strand=1), + Location(locus='region257', start=842058, end=842470, strand=1), + Location(locus='region258', start=844884, end=844888, strand=1), + Location(locus='region259', start=846903, end=846905, strand=1), + Location(locus='region260', start=849912, end=849965, strand=1), + Location(locus='region261', start=863185, end=863260, strand=1), + Location(locus='region262', start=888762, end=891466, strand=1), + Location(locus='region263', start=908176, end=909351, strand=1), + Location(locus='region264', start=917606, end=917740, strand=1), + Location(locus='region265', start=921573, end=921897, strand=1), + Location(locus='region266', start=925070, end=925133, strand=1), + Location(locus='region267', start=925262, end=926393, strand=1), + Location(locus='region268', start=926515, end=926596, strand=1), + Location(locus='region269', start=926626, end=927518, strand=1), + Location(locus='region270', start=927890, end=927940, strand=1), + Location(locus='region271', start=928675, end=928791, strand=1), + Location(locus='region272', start=928868, end=928936, strand=1), + Location(locus='region273', start=929015, end=929360, strand=1), + Location(locus='region274', start=929367, end=929373, strand=1), + Location(locus='region275', start=929463, end=929470, strand=1), + Location(locus='region276', start=929476, end=929605, strand=1), + Location(locus='region277', start=929666, end=929961, strand=1), + Location(locus='region278', start=958454, end=958522, strand=1), + Location(locus='region279', start=960161, end=960332, strand=1), + Location(locus='region280', start=964577, end=965082, strand=1), + Location(locus='region281', start=968779, end=968829, strand=1), + Location(locus='region282', start=969615, end=969752, strand=1), + Location(locus='region283', start=969874, end=969934, strand=1), + Location(locus='region284', start=972605, end=972657, strand=1), + Location(locus='region285', start=972658, end=972720, strand=1), + Location(locus='region286', start=972922, end=972994, strand=1), + Location(locus='region287', start=973177, end=973259, strand=1), + Location(locus='region288', start=973260, end=973340, strand=1), + Location(locus='region289', start=973431, end=973482, strand=1), + Location(locus='region290', start=973762, end=973786, strand=1), + Location(locus='region291', start=976897, end=976913, strand=1), + Location(locus='region292', start=977517, end=977570, strand=1), + Location(locus='region293', start=977979, end=978031, strand=1), + Location(locus='region294', start=978087, end=978143, strand=1), + Location(locus='region295', start=996027, end=996089, strand=1), + Location(locus='region296', start=1000741, end=1000799, strand=1), + Location(locus='region297', start=1025867, end=1025899, strand=1), + Location(locus='region298', start=1025901, end=1025904, strand=1), + Location(locus='region299', start=1056823, end=1056824, strand=1), + Location(locus='region300', start=1056825, end=1056829, strand=1), + Location(locus='region301', start=1064047, end=1064118, strand=1), + Location(locus='region302', start=1066998, end=1067002, strand=1), + Location(locus='region303', start=1070325, end=1070330, strand=1), + Location(locus='region304', start=1071258, end=1071318, strand=1), + Location(locus='region305', start=1090782, end=1090783, strand=1), + Location(locus='region306', start=1090788, end=1090789, strand=1), + Location(locus='region307', start=1090790, end=1090793, strand=1), + Location(locus='region308', start=1090803, end=1090814, strand=1), + Location(locus='region309', start=1090938, end=1090940, strand=1), + Location(locus='region310', start=1090957, end=1091137, strand=1), + Location(locus='region311', start=1091147, end=1091152, strand=1), + Location(locus='region312', start=1091362, end=1091368, strand=1), + Location(locus='region313', start=1091373, end=1091379, strand=1), + Location(locus='region314', start=1091388, end=1091846, strand=1), + Location(locus='region315', start=1091888, end=1092021, strand=1), + Location(locus='region316', start=1092056, end=1092089, strand=1), + Location(locus='region317', start=1092102, end=1092104, strand=1), + Location(locus='region318', start=1092246, end=1092263, strand=1), + Location(locus='region319', start=1093232, end=1093320, strand=1), + Location(locus='region320', start=1093450, end=1093647, strand=1), + Location(locus='region321', start=1093650, end=1094593, strand=1), + Location(locus='region322', start=1094865, end=1094953, strand=1), + Location(locus='region323', start=1095203, end=1095325, strand=1), + Location(locus='region324', start=1095331, end=1096699, strand=1), + Location(locus='region325', start=1121040, end=1121090, strand=1), + Location(locus='region326', start=1121121, end=1121171, strand=1), + Location(locus='region327', start=1121657, end=1121731, strand=1), + Location(locus='region328', start=1133280, end=1133283, strand=1), + Location(locus='region329', start=1145287, end=1145317, strand=1), + Location(locus='region330', start=1159195, end=1159245, strand=1), + Location(locus='region331', start=1160331, end=1160421, strand=1), + Location(locus='region332', start=1160537, end=1161159, strand=1), + Location(locus='region333', start=1161301, end=1161365, strand=1), + Location(locus='region334', start=1162562, end=1162612, strand=1), + Location(locus='region335', start=1164564, end=1165555, strand=1), + Location(locus='region336', start=1169292, end=1170739, strand=1), + Location(locus='region337', start=1179346, end=1179397, strand=1), + Location(locus='region338', start=1182321, end=1182382, strand=1), + Location(locus='region339', start=1188518, end=1188908, strand=1), + Location(locus='region340', start=1188949, end=1188955, strand=1), + Location(locus='region341', start=1188972, end=1189047, strand=1), + Location(locus='region342', start=1189073, end=1189075, strand=1), + Location(locus='region343', start=1189081, end=1189157, strand=1), + Location(locus='region344', start=1189158, end=1190177, strand=1), + Location(locus='region345', start=1190249, end=1190299, strand=1), + Location(locus='region346', start=1190854, end=1190944, strand=1), + Location(locus='region347', start=1190969, end=1191112, strand=1), + Location(locus='region348', start=1191130, end=1191221, strand=1), + Location(locus='region349', start=1191248, end=1191901, strand=1), + Location(locus='region350', start=1200523, end=1200544, strand=1), + Location(locus='region351', start=1203334, end=1203396, strand=1), + Location(locus='region352', start=1211559, end=1213863, strand=1), + Location(locus='region353', start=1216548, end=1216649, strand=1), + Location(locus='region354', start=1216717, end=1216769, strand=1), + Location(locus='region355', start=1216817, end=1216921, strand=1), + Location(locus='region356', start=1216922, end=1217162, strand=1), + Location(locus='region357', start=1217167, end=1217181, strand=1), + Location(locus='region358', start=1217416, end=1217422, strand=1), + Location(locus='region359', start=1217423, end=1218426, strand=1), + Location(locus='region360', start=1218436, end=1218676, strand=1), + Location(locus='region361', start=1218702, end=1218703, strand=1), + Location(locus='region362', start=1218968, end=1218970, strand=1), + Location(locus='region363', start=1224338, end=1224340, strand=1), + Location(locus='region364', start=1224341, end=1224345, strand=1), + Location(locus='region365', start=1224348, end=1224350, strand=1), + Location(locus='region366', start=1224356, end=1224357, strand=1), + Location(locus='region367', start=1230571, end=1230648, strand=1), + Location(locus='region368', start=1251678, end=1251752, strand=1), + Location(locus='region369', start=1262918, end=1263031, strand=1), + Location(locus='region370', start=1263084, end=1263190, strand=1), + Location(locus='region371', start=1263707, end=1263760, strand=1), + Location(locus='region372', start=1267219, end=1267269, strand=1), + Location(locus='region373', start=1275555, end=1275607, strand=1), + Location(locus='region374', start=1275922, end=1276056, strand=1), + Location(locus='region375', start=1276289, end=1278829, strand=1), + Location(locus='region376', start=1281895, end=1282022, strand=1), + Location(locus='region377', start=1283487, end=1283493, strand=1), + Location(locus='region378', start=1283512, end=1283548, strand=1), + Location(locus='region379', start=1283554, end=1283562, strand=1), + Location(locus='region380', start=1284407, end=1284473, strand=1), + Location(locus='region381', start=1284491, end=1284557, strand=1), + Location(locus='region382', start=1287559, end=1287627, strand=1), + Location(locus='region383', start=1287810, end=1288095, strand=1), + Location(locus='region384', start=1293002, end=1293070, strand=1), + Location(locus='region385', start=1305490, end=1305665, strand=1), + Location(locus='region386', start=1313129, end=1313134, strand=1), + Location(locus='region387', start=1313384, end=1313385, strand=1), + Location(locus='region388', start=1313389, end=1313394, strand=1), + Location(locus='region389', start=1319185, end=1319262, strand=1), + Location(locus='region390', start=1326283, end=1326333, strand=1), + Location(locus='region391', start=1335476, end=1335507, strand=1), + Location(locus='region392', start=1335508, end=1335513, strand=1), + Location(locus='region393', start=1339343, end=1339839, strand=1), + Location(locus='region394', start=1339886, end=1340001, strand=1), + Location(locus='region395', start=1340006, end=1340060, strand=1), + Location(locus='region396', start=1340061, end=1340397, strand=1), + Location(locus='region397', start=1340491, end=1342739, strand=1), + Location(locus='region398', start=1351194, end=1351283, strand=1), + Location(locus='region399', start=1357060, end=1357129, strand=1), + Location(locus='region400', start=1357247, end=1357302, strand=1), + Location(locus='region401', start=1363470, end=1363471, strand=1), + Location(locus='region402', start=1385096, end=1385437, strand=1), + Location(locus='region403', start=1385572, end=1385580, strand=1), + Location(locus='region404', start=1385586, end=1385667, strand=1), + Location(locus='region405', start=1385669, end=1385672, strand=1), + Location(locus='region406', start=1386008, end=1386036, strand=1), + Location(locus='region407', start=1386073, end=1386081, strand=1), + Location(locus='region408', start=1386112, end=1386113, strand=1), + Location(locus='region409', start=1386118, end=1386121, strand=1), + Location(locus='region410', start=1386125, end=1386129, strand=1), + Location(locus='region411', start=1386136, end=1386140, strand=1), + Location(locus='region412', start=1386154, end=1386214, strand=1), + Location(locus='region413', start=1386285, end=1386359, strand=1), + Location(locus='region414', start=1386451, end=1386501, strand=1), + Location(locus='region415', start=1388110, end=1388170, strand=1), + Location(locus='region416', start=1408678, end=1408729, strand=1), + Location(locus='region417', start=1414620, end=1414621, strand=1), + Location(locus='region418', start=1414628, end=1414629, strand=1), + Location(locus='region419', start=1414643, end=1414644, strand=1), + Location(locus='region420', start=1414652, end=1414653, strand=1), + Location(locus='region421', start=1441364, end=1441725, strand=1), + Location(locus='region422', start=1443427, end=1443428, strand=1), + Location(locus='region423', start=1443433, end=1443486, strand=1), + Location(locus='region424', start=1445086, end=1445117, strand=1), + Location(locus='region425', start=1445118, end=1445121, strand=1), + Location(locus='region426', start=1451772, end=1452003, strand=1), + Location(locus='region427', start=1456572, end=1456625, strand=1), + Location(locus='region428', start=1457459, end=1457568, strand=1), + Location(locus='region429', start=1468160, end=1469623, strand=1), + Location(locus='region430', start=1479348, end=1479409, strand=1), + Location(locus='region431', start=1479487, end=1479538, strand=1), + Location(locus='region432', start=1479716, end=1479925, strand=1), + Location(locus='region433', start=1480944, end=1480945, strand=1), + Location(locus='region434', start=1480947, end=1481670, strand=1), + Location(locus='region435', start=1482823, end=1482878, strand=1), + Location(locus='region436', start=1483109, end=1483165, strand=1), + Location(locus='region437', start=1483196, end=1483254, strand=1), + Location(locus='region438', start=1483264, end=1483318, strand=1), + Location(locus='region439', start=1488082, end=1488147, strand=1), + Location(locus='region440', start=1488383, end=1488410, strand=1), + Location(locus='region441', start=1488413, end=1488420, strand=1), + Location(locus='region442', start=1488429, end=1488757, strand=1), + Location(locus='region443', start=1488760, end=1488766, strand=1), + Location(locus='region444', start=1488776, end=1488788, strand=1), + Location(locus='region445', start=1488791, end=1488794, strand=1), + Location(locus='region446', start=1488807, end=1488810, strand=1), + Location(locus='region447', start=1488813, end=1488839, strand=1), + Location(locus='region448', start=1488843, end=1488848, strand=1), + Location(locus='region449', start=1488896, end=1489512, strand=1), + Location(locus='region450', start=1489537, end=1489647, strand=1), + Location(locus='region451', start=1489738, end=1489798, strand=1), + Location(locus='region452', start=1524571, end=1524574, strand=1), + Location(locus='region453', start=1532535, end=1532922, strand=1), + Location(locus='region454', start=1532986, end=1533658, strand=1), + Location(locus='region455', start=1541944, end=1543431, strand=1), + Location(locus='region456', start=1543453, end=1543457, strand=1), + Location(locus='region457', start=1543462, end=1543480, strand=1), + Location(locus='region458', start=1568048, end=1568106, strand=1), + Location(locus='region459', start=1572184, end=1572482, strand=1), + Location(locus='region460', start=1572499, end=1572621, strand=1), + Location(locus='region461', start=1572744, end=1573530, strand=1), + Location(locus='region462', start=1573555, end=1573606, strand=1), + Location(locus='region463', start=1606514, end=1606565, strand=1), + Location(locus='region464', start=1612562, end=1612665, strand=1), + Location(locus='region465', start=1618208, end=1619684, strand=1), + Location(locus='region466', start=1625354, end=1625422, strand=1), + Location(locus='region467', start=1630814, end=1630825, strand=1), + Location(locus='region468', start=1630827, end=1630837, strand=1), + Location(locus='region469', start=1630839, end=1630872, strand=1), + Location(locus='region470', start=1630874, end=1630875, strand=1), + Location(locus='region471', start=1630996, end=1631117, strand=1), + Location(locus='region472', start=1631391, end=1631908, strand=1), + Location(locus='region473', start=1631936, end=1631955, strand=1), + Location(locus='region474', start=1632057, end=1632128, strand=1), + Location(locus='region475', start=1632218, end=1632220, strand=1), + Location(locus='region476', start=1632231, end=1632289, strand=1), + Location(locus='region477', start=1632355, end=1632824, strand=1), + Location(locus='region478', start=1632856, end=1632858, strand=1), + Location(locus='region479', start=1633191, end=1634797, strand=1), + Location(locus='region480', start=1636003, end=1638399, strand=1), + Location(locus='region481', start=1644242, end=1644372, strand=1), + Location(locus='region482', start=1654154, end=1654206, strand=1), + Location(locus='region483', start=1655670, end=1655721, strand=1), + Location(locus='region484', start=1655814, end=1655815, strand=1), + Location(locus='region485', start=1656096, end=1656098, strand=1), + Location(locus='region486', start=1656099, end=1656208, strand=1), + Location(locus='region487', start=1656328, end=1656410, strand=1), + Location(locus='region488', start=1656516, end=1656596, strand=1), + Location(locus='region489', start=1672405, end=1672466, strand=1), + Location(locus='region490', start=1678950, end=1679019, strand=1), + Location(locus='region491', start=1685477, end=1685546, strand=1), + Location(locus='region492', start=1699863, end=1699920, strand=1), + Location(locus='region493', start=1702156, end=1702206, strand=1), + Location(locus='region494', start=1702384, end=1702470, strand=1), + Location(locus='region495', start=1702676, end=1702854, strand=1), + Location(locus='region496', start=1703071, end=1703128, strand=1), + Location(locus='region497', start=1710884, end=1710945, strand=1), + Location(locus='region498', start=1712842, end=1712892, strand=1), + Location(locus='region499', start=1713497, end=1713547, strand=1), + Location(locus='region500', start=1713673, end=1713753, strand=1), + Location(locus='region501', start=1722650, end=1722700, strand=1), + Location(locus='region502', start=1722809, end=1722890, strand=1), + Location(locus='region503', start=1723227, end=1723284, strand=1), + Location(locus='region504', start=1723515, end=1723595, strand=1), + Location(locus='region505', start=1725516, end=1725566, strand=1), + Location(locus='region506', start=1730045, end=1730095, strand=1), + Location(locus='region507', start=1730876, end=1730956, strand=1), + Location(locus='region508', start=1731135, end=1731203, strand=1), + Location(locus='region509', start=1735541, end=1735635, strand=1), + Location(locus='region510', start=1753012, end=1753062, strand=1), + Location(locus='region511', start=1753287, end=1753337, strand=1), + Location(locus='region512', start=1773952, end=1774109, strand=1), + Location(locus='region513', start=1779266, end=1789872, strand=1), + Location(locus='region514', start=1814850, end=1815130, strand=1), + Location(locus='region515', start=1828800, end=1828860, strand=1), + Location(locus='region516', start=1830066, end=1830125, strand=1), + Location(locus='region517', start=1863481, end=1863575, strand=1), + Location(locus='region518', start=1863723, end=1863733, strand=1), + Location(locus='region519', start=1864008, end=1864112, strand=1), + Location(locus='region520', start=1864256, end=1864323, strand=1), + Location(locus='region521', start=1864394, end=1864468, strand=1), + Location(locus='region522', start=1864554, end=1864567, strand=1), + Location(locus='region523', start=1864568, end=1864580, strand=1), + Location(locus='region524', start=1864702, end=1864872, strand=1), + Location(locus='region525', start=1864885, end=1864924, strand=1), + Location(locus='region526', start=1865012, end=1865070, strand=1), + Location(locus='region527', start=1875415, end=1875504, strand=1), + Location(locus='region528', start=1875877, end=1875967, strand=1), + Location(locus='region529', start=1876150, end=1876234, strand=1), + Location(locus='region530', start=1876404, end=1876592, strand=1), + Location(locus='region531', start=1876600, end=1876674, strand=1), + Location(locus='region532', start=1879287, end=1879381, strand=1), + Location(locus='region533', start=1879425, end=1879426, strand=1), + Location(locus='region534', start=1879494, end=1879503, strand=1), + Location(locus='region535', start=1879504, end=1879619, strand=1), + Location(locus='region536', start=1879631, end=1879638, strand=1), + Location(locus='region537', start=1879650, end=1879659, strand=1), + Location(locus='region538', start=1880680, end=1880748, strand=1), + Location(locus='region539', start=1880756, end=1880809, strand=1), + Location(locus='region540', start=1880823, end=1880877, strand=1), + Location(locus='region541', start=1880884, end=1880943, strand=1), + Location(locus='region542', start=1881812, end=1881901, strand=1), + Location(locus='region543', start=1882244, end=1882358, strand=1), + Location(locus='region544', start=1882541, end=1882625, strand=1), + Location(locus='region545', start=1882694, end=1882760, strand=1), + Location(locus='region546', start=1882792, end=1882979, strand=1), + Location(locus='region547', start=1882988, end=1883062, strand=1), + Location(locus='region548', start=1883354, end=1883404, strand=1), + Location(locus='region549', start=1885850, end=1885902, strand=1), + Location(locus='region550', start=1886335, end=1886387, strand=1), + Location(locus='region551', start=1886690, end=1886751, strand=1), + Location(locus='region552', start=1886989, end=1887057, strand=1), + Location(locus='region553', start=1887065, end=1887118, strand=1), + Location(locus='region554', start=1887132, end=1887186, strand=1), + Location(locus='region555', start=1887193, end=1887252, strand=1), + Location(locus='region556', start=1889505, end=1889555, strand=1), + Location(locus='region557', start=1895347, end=1895599, strand=1), + Location(locus='region558', start=1907452, end=1907583, strand=1), + Location(locus='region559', start=1914970, end=1914986, strand=1), + Location(locus='region560', start=1914987, end=1914995, strand=1), + Location(locus='region561', start=1914998, end=1914999, strand=1), + Location(locus='region562', start=1933297, end=1933384, strand=1), + Location(locus='region563', start=1933712, end=1933762, strand=1), + Location(locus='region564', start=1946846, end=1947027, strand=1), + Location(locus='region565', start=1955433, end=1955483, strand=1), + Location(locus='region566', start=1955581, end=1955615, strand=1), + Location(locus='region567', start=1955638, end=1955672, strand=1), + Location(locus='region568', start=1963153, end=1963221, strand=1), + Location(locus='region569', start=1963420, end=1963705, strand=1), + Location(locus='region570', start=1963888, end=1963956, strand=1), + Location(locus='region571', start=1967880, end=1967931, strand=1), + Location(locus='region572', start=1971233, end=1971334, strand=1), + Location(locus='region573', start=1981613, end=1984775, strand=1), + Location(locus='region574', start=1987173, end=1987241, strand=1), + Location(locus='region575', start=1987344, end=1987406, strand=1), + Location(locus='region576', start=1987693, end=1989068, strand=1), + Location(locus='region577', start=1989894, end=1989972, strand=1), + Location(locus='region578', start=1989982, end=1990093, strand=1), + Location(locus='region579', start=1990109, end=1990114, strand=1), + Location(locus='region580', start=1990322, end=1990823, strand=1), + Location(locus='region581', start=1991181, end=1991480, strand=1), + Location(locus='region582', start=1991569, end=1992029, strand=1), + Location(locus='region583', start=1992054, end=1992111, strand=1), + Location(locus='region584', start=1992282, end=1992334, strand=1), + Location(locus='region585', start=1996092, end=1998618, strand=1), + Location(locus='region586', start=2000924, end=2000998, strand=1), + Location(locus='region587', start=2001009, end=2001062, strand=1), + Location(locus='region588', start=2001205, end=2001716, strand=1), + Location(locus='region589', start=2002029, end=2002036, strand=1), + Location(locus='region590', start=2002125, end=2002328, strand=1), + Location(locus='region591', start=2002405, end=2002406, strand=1), + Location(locus='region592', start=2025296, end=2025858, strand=1), + Location(locus='region593', start=2025891, end=2026167, strand=1), + Location(locus='region594', start=2028420, end=2029246, strand=1), + Location(locus='region595', start=2030328, end=2030648, strand=1), + Location(locus='region596', start=2030703, end=2030986, strand=1), + Location(locus='region597', start=2039731, end=2039781, strand=1), + Location(locus='region598', start=2043797, end=2043858, strand=1), + Location(locus='region599', start=2045048, end=2045107, strand=1), + Location(locus='region600', start=2045963, end=2045964, strand=1), + Location(locus='region601', start=2045969, end=2045970, strand=1), + Location(locus='region602', start=2046100, end=2046195, strand=1), + Location(locus='region603', start=2047627, end=2047721, strand=1), + Location(locus='region604', start=2048789, end=2048842, strand=1), + Location(locus='region605', start=2050287, end=2050398, strand=1), + Location(locus='region606', start=2059425, end=2059608, strand=1), + Location(locus='region607', start=2061412, end=2061430, strand=1), + Location(locus='region608', start=2061431, end=2062159, strand=1), + Location(locus='region609', start=2062286, end=2062369, strand=1), + Location(locus='region610', start=2062448, end=2062515, strand=1), + Location(locus='region611', start=2069016, end=2069069, strand=1), + Location(locus='region612', start=2074430, end=2074840, strand=1), + Location(locus='region613', start=2088461, end=2088499, strand=1), + Location(locus='region614', start=2088773, end=2088933, strand=1), + Location(locus='region615', start=2088946, end=2088949, strand=1), + Location(locus='region616', start=2089092, end=2089162, strand=1), + Location(locus='region617', start=2089292, end=2089348, strand=1), + Location(locus='region618', start=2096825, end=2096840, strand=1), + Location(locus='region619', start=2096843, end=2096849, strand=1), + Location(locus='region620', start=2102846, end=2102899, strand=1), + Location(locus='region621', start=2115708, end=2115758, strand=1), + Location(locus='region622', start=2133474, end=2133475, strand=1), + Location(locus='region623', start=2133993, end=2134046, strand=1), + Location(locus='region624', start=2134922, end=2134975, strand=1), + Location(locus='region625', start=2135424, end=2135493, strand=1), + Location(locus='region626', start=2135533, end=2135616, strand=1), + Location(locus='region627', start=2135665, end=2135748, strand=1), + Location(locus='region628', start=2146058, end=2146132, strand=1), + Location(locus='region629', start=2156798, end=2156878, strand=1), + Location(locus='region630', start=2157477, end=2157557, strand=1), + Location(locus='region631', start=2162931, end=2167311, strand=1), + Location(locus='region632', start=2167846, end=2167901, strand=1), + Location(locus='region633', start=2168808, end=2168872, strand=1), + Location(locus='region634', start=2168886, end=2168950, strand=1), + Location(locus='region635', start=2168982, end=2169056, strand=1), + Location(locus='region636', start=2169060, end=2169134, strand=1), + Location(locus='region637', start=2169571, end=2169628, strand=1), + Location(locus='region638', start=2170281, end=2170334, strand=1), + Location(locus='region639', start=2181376, end=2181412, strand=1), + Location(locus='region640', start=2193009, end=2193021, strand=1), + Location(locus='region641', start=2195906, end=2196780, strand=1), + Location(locus='region642', start=2196856, end=2197248, strand=1), + Location(locus='region643', start=2197279, end=2197365, strand=1), + Location(locus='region644', start=2198685, end=2198819, strand=1), + Location(locus='region645', start=2230720, end=2230773, strand=1), + Location(locus='region646', start=2244992, end=2245020, strand=1), + Location(locus='region647', start=2260253, end=2260309, strand=1), + Location(locus='region648', start=2260343, end=2260439, strand=1), + Location(locus='region649', start=2261440, end=2261518, strand=1), + Location(locus='region650', start=2262004, end=2263175, strand=1), + Location(locus='region651', start=2266486, end=2266487, strand=1), + Location(locus='region652', start=2266507, end=2266508, strand=1), + Location(locus='region653', start=2266516, end=2266517, strand=1), + Location(locus='region654', start=2266549, end=2266550, strand=1), + Location(locus='region655', start=2266552, end=2266553, strand=1), + Location(locus='region656', start=2266582, end=2266583, strand=1), + Location(locus='region657', start=2266597, end=2266598, strand=1), + Location(locus='region658', start=2266603, end=2266604, strand=1), + Location(locus='region659', start=2266623, end=2266624, strand=1), + Location(locus='region660', start=2268721, end=2268725, strand=1), + Location(locus='region661', start=2294815, end=2294911, strand=1), + Location(locus='region662', start=2295174, end=2295242, strand=1), + Location(locus='region663', start=2295289, end=2296015, strand=1), + Location(locus='region664', start=2296029, end=2296427, strand=1), + Location(locus='region665', start=2296959, end=2297045, strand=1), + Location(locus='region666', start=2298089, end=2298160, strand=1), + Location(locus='region667', start=2299186, end=2300128, strand=1), + Location(locus='region668', start=2300207, end=2300388, strand=1), + Location(locus='region669', start=2300446, end=2300580, strand=1), + Location(locus='region670', start=2300911, end=2301007, strand=1), + Location(locus='region671', start=2301264, end=2301332, strand=1), + Location(locus='region672', start=2301379, end=2302105, strand=1), + Location(locus='region673', start=2302112, end=2302517, strand=1), + Location(locus='region674', start=2303046, end=2303132, strand=1), + Location(locus='region675', start=2304131, end=2304202, strand=1), + Location(locus='region676', start=2305255, end=2306197, strand=1), + Location(locus='region677', start=2306276, end=2306457, strand=1), + Location(locus='region678', start=2306512, end=2306646, strand=1), + Location(locus='region679', start=2317128, end=2317129, strand=1), + Location(locus='region680', start=2317135, end=2317136, strand=1), + Location(locus='region681', start=2329858, end=2330072, strand=1), + Location(locus='region682', start=2330143, end=2330214, strand=1), + Location(locus='region683', start=2337968, end=2338102, strand=1), + Location(locus='region684', start=2338206, end=2338215, strand=1), + Location(locus='region685', start=2338216, end=2338217, strand=1), + Location(locus='region686', start=2338415, end=2338416, strand=1), + Location(locus='region687', start=2338421, end=2338422, strand=1), + Location(locus='region688', start=2338424, end=2338425, strand=1), + Location(locus='region689', start=2338427, end=2338428, strand=1), + Location(locus='region690', start=2338430, end=2338431, strand=1), + Location(locus='region691', start=2338433, end=2338434, strand=1), + Location(locus='region692', start=2338456, end=2338457, strand=1), + Location(locus='region693', start=2338676, end=2338677, strand=1), + Location(locus='region694', start=2338678, end=2338679, strand=1), + Location(locus='region695', start=2338691, end=2338692, strand=1), + Location(locus='region696', start=2338700, end=2338702, strand=1), + Location(locus='region697', start=2338703, end=2338704, strand=1), + Location(locus='region698', start=2338706, end=2338707, strand=1), + Location(locus='region699', start=2338715, end=2338716, strand=1), + Location(locus='region700', start=2338719, end=2338720, strand=1), + Location(locus='region701', start=2339363, end=2339432, strand=1), + Location(locus='region702', start=2339441, end=2339510, strand=1), + Location(locus='region703', start=2339512, end=2339573, strand=1), + Location(locus='region704', start=2339888, end=2340051, strand=1), + Location(locus='region705', start=2340561, end=2340695, strand=1), + Location(locus='region706', start=2341429, end=2341479, strand=1), + Location(locus='region707', start=2347386, end=2347620, strand=1), + Location(locus='region708', start=2356873, end=2356918, strand=1), + Location(locus='region709', start=2356927, end=2356933, strand=1), + Location(locus='region710', start=2357181, end=2357185, strand=1), + Location(locus='region711', start=2357249, end=2357268, strand=1), + Location(locus='region712', start=2357291, end=2357297, strand=1), + Location(locus='region713', start=2357314, end=2357321, strand=1), + Location(locus='region714', start=2357417, end=2357420, strand=1), + Location(locus='region715', start=2357426, end=2357607, strand=1), + Location(locus='region716', start=2357841, end=2357901, strand=1), + Location(locus='region717', start=2358659, end=2358715, strand=1), + Location(locus='region718', start=2358755, end=2358832, strand=1), + Location(locus='region719', start=2358918, end=2358991, strand=1), + Location(locus='region720', start=2358995, end=2359057, strand=1), + Location(locus='region721', start=2359163, end=2359213, strand=1), + Location(locus='region722', start=2359554, end=2359613, strand=1), + Location(locus='region723', start=2359778, end=2359852, strand=1), + Location(locus='region724', start=2359923, end=2359982, strand=1), + Location(locus='region725', start=2360650, end=2360660, strand=1), + Location(locus='region726', start=2360730, end=2360740, strand=1), + Location(locus='region727', start=2361908, end=2361909, strand=1), + Location(locus='region728', start=2363680, end=2363682, strand=1), + Location(locus='region729', start=2365407, end=2366778, strand=1), + Location(locus='region730', start=2366889, end=2366967, strand=1), + Location(locus='region731', start=2367028, end=2367060, strand=1), + Location(locus='region732', start=2372430, end=2372565, strand=1), + Location(locus='region733', start=2380217, end=2380261, strand=1), + Location(locus='region734', start=2381446, end=2381513, strand=1), + Location(locus='region735', start=2387281, end=2387659, strand=1), + Location(locus='region736', start=2401813, end=2401936, strand=1), + Location(locus='region737', start=2423328, end=2423387, strand=1), + Location(locus='region738', start=2423424, end=2423425, strand=1), + Location(locus='region739', start=2423526, end=2423687, strand=1), + Location(locus='region740', start=2423705, end=2423775, strand=1), + Location(locus='region741', start=2423789, end=2424293, strand=1), + Location(locus='region742', start=2424483, end=2424537, strand=1), + Location(locus='region743', start=2430107, end=2431481, strand=1), + Location(locus='region744', start=2439177, end=2439954, strand=1), + Location(locus='region745', start=2440279, end=2440334, strand=1), + Location(locus='region746', start=2449219, end=2449221, strand=1), + Location(locus='region747', start=2458391, end=2458471, strand=1), + Location(locus='region748', start=2461322, end=2461510, strand=1), + Location(locus='region749', start=2462528, end=2462594, strand=1), + Location(locus='region750', start=2466995, end=2467029, strand=1), + Location(locus='region751', start=2470043, end=2470086, strand=1), + Location(locus='region752', start=2482061, end=2482111, strand=1), + Location(locus='region753', start=2482418, end=2482468, strand=1), + Location(locus='region754', start=2522186, end=2522192, strand=1), + Location(locus='region755', start=2522194, end=2522219, strand=1), + Location(locus='region756', start=2523182, end=2523239, strand=1), + Location(locus='region757', start=2531886, end=2532244, strand=1), + Location(locus='region758', start=2546432, end=2546497, strand=1), + Location(locus='region759', start=2550002, end=2551378, strand=1), + Location(locus='region760', start=2554864, end=2554933, strand=1), + Location(locus='region761', start=2577285, end=2577362, strand=1), + Location(locus='region762', start=2577679, end=2577732, strand=1), + Location(locus='region763', start=2617342, end=2617407, strand=1), + Location(locus='region764', start=2625882, end=2626688, strand=1), + Location(locus='region765', start=2627503, end=2627556, strand=1), + Location(locus='region766', start=2629274, end=2629354, strand=1), + Location(locus='region767', start=2629593, end=2629672, strand=1), + Location(locus='region768', start=2630144, end=2630239, strand=1), + Location(locus='region769', start=2630868, end=2630926, strand=1), + Location(locus='region770', start=2631042, end=2631119, strand=1), + Location(locus='region771', start=2631358, end=2631437, strand=1), + Location(locus='region772', start=2631598, end=2631599, strand=1), + Location(locus='region773', start=2631619, end=2631620, strand=1), + Location(locus='region774', start=2631900, end=2631995, strand=1), + Location(locus='region775', start=2632922, end=2637037, strand=1), + Location(locus='region776', start=2637255, end=2637534, strand=1), + Location(locus='region777', start=2638349, end=2638560, strand=1), + Location(locus='region778', start=2638985, end=2639622, strand=1), + Location(locus='region779', start=2651435, end=2651440, strand=1), + Location(locus='region780', start=2651445, end=2651447, strand=1), + Location(locus='region781', start=2651843, end=2651910, strand=1), + Location(locus='region782', start=2683501, end=2683554, strand=1), + Location(locus='region783', start=2687129, end=2687257, strand=1), + Location(locus='region784', start=2693239, end=2693589, strand=1), + Location(locus='region785', start=2693609, end=2693854, strand=1), + Location(locus='region786', start=2700466, end=2700531, strand=1), + Location(locus='region787', start=2703891, end=2704019, strand=1), + Location(locus='region788', start=2704885, end=2704886, strand=1), + Location(locus='region789', start=2716308, end=2716392, strand=1), + Location(locus='region790', start=2720671, end=2721448, strand=1), + Location(locus='region791', start=2721812, end=2721867, strand=1), + Location(locus='region792', start=2724201, end=2724221, strand=1), + Location(locus='region793', start=2729618, end=2729620, strand=1), + Location(locus='region794', start=2729832, end=2729834, strand=1), + Location(locus='region795', start=2740574, end=2740601, strand=1), + Location(locus='region796', start=2751596, end=2751658, strand=1), + Location(locus='region797', start=2784601, end=2785982, strand=1), + Location(locus='region798', start=2795376, end=2795395, strand=1), + Location(locus='region799', start=2795561, end=2795578, strand=1), + Location(locus='region800', start=2795674, end=2795724, strand=1), + Location(locus='region801', start=2795854, end=2795868, strand=1), + Location(locus='region802', start=2795872, end=2796011, strand=1), + Location(locus='region803', start=2796483, end=2796488, strand=1), + Location(locus='region804', start=2796490, end=2796492, strand=1), + Location(locus='region805', start=2796747, end=2796761, strand=1), + Location(locus='region806', start=2796871, end=2796923, strand=1), + Location(locus='region807', start=2797259, end=2797355, strand=1), + Location(locus='region808', start=2801405, end=2801452, strand=1), + Location(locus='region809', start=2801456, end=2801471, strand=1), + Location(locus='region810', start=2801822, end=2802329, strand=1), + Location(locus='region811', start=2802330, end=2802331, strand=1), + Location(locus='region812', start=2802743, end=2802850, strand=1), + Location(locus='region813', start=2802853, end=2803162, strand=1), + Location(locus='region814', start=2803467, end=2803712, strand=1), + Location(locus='region815', start=2803721, end=2803725, strand=1), + Location(locus='region816', start=2803726, end=2803773, strand=1), + Location(locus='region817', start=2803777, end=2803783, strand=1), + Location(locus='region818', start=2803823, end=2803883, strand=1), + Location(locus='region819', start=2804102, end=2804164, strand=1), + Location(locus='region820', start=2804375, end=2804706, strand=1), + Location(locus='region821', start=2804720, end=2804723, strand=1), + Location(locus='region822', start=2804746, end=2804750, strand=1), + Location(locus='region823', start=2804756, end=2804823, strand=1), + Location(locus='region824', start=2804906, end=2805754, strand=1), + Location(locus='region825', start=2806110, end=2806206, strand=1), + Location(locus='region826', start=2822573, end=2822586, strand=1), + Location(locus='region827', start=2822617, end=2822669, strand=1), + Location(locus='region828', start=2828486, end=2829938, strand=1), + Location(locus='region829', start=2836272, end=2836324, strand=1), + Location(locus='region830', start=2850917, end=2850999, strand=1), + Location(locus='region831', start=2866465, end=2866759, strand=1), + Location(locus='region832', start=2866851, end=2867786, strand=1), + Location(locus='region833', start=2877243, end=2877305, strand=1), + Location(locus='region834', start=2878035, end=2878097, strand=1), + Location(locus='region835', start=2880155, end=2880261, strand=1), + Location(locus='region836', start=2883832, end=2883904, strand=1), + Location(locus='region837', start=2884038, end=2884153, strand=1), + Location(locus='region838', start=2887448, end=2887449, strand=1), + Location(locus='region839', start=2921969, end=2922026, strand=1), + Location(locus='region840', start=2922097, end=2922119, strand=1), + Location(locus='region841', start=2922181, end=2922254, strand=1), + Location(locus='region842', start=2922357, end=2922373, strand=1), + Location(locus='region843', start=2922436, end=2922459, strand=1), + Location(locus='region844', start=2922725, end=2922835, strand=1), + Location(locus='region845', start=2922867, end=2922930, strand=1), + Location(locus='region846', start=2922937, end=2922960, strand=1), + Location(locus='region847', start=2923091, end=2923143, strand=1), + Location(locus='region848', start=2935119, end=2935172, strand=1), + Location(locus='region849', start=2943754, end=2943801, strand=1), + Location(locus='region850', start=2944205, end=2945233, strand=1), + Location(locus='region851', start=2953436, end=2953513, strand=1), + Location(locus='region852', start=2960226, end=2960592, strand=1), + Location(locus='region853', start=2960877, end=2960880, strand=1), + Location(locus='region854', start=2960929, end=2961063, strand=1), + Location(locus='region855', start=2961069, end=2961071, strand=1), + Location(locus='region856', start=2961078, end=2961083, strand=1), + Location(locus='region857', start=2961085, end=2961231, strand=1), + Location(locus='region858', start=2961334, end=2961341, strand=1), + Location(locus='region859', start=2961355, end=2961356, strand=1), + Location(locus='region860', start=2961366, end=2961401, strand=1), + Location(locus='region861', start=2961409, end=2961412, strand=1), + Location(locus='region862', start=2961446, end=2961938, strand=1), + Location(locus='region863', start=2961961, end=2961962, strand=1), + Location(locus='region864', start=2971755, end=2971868, strand=1), + Location(locus='region865', start=2971940, end=2971990, strand=1), + Location(locus='region866', start=2972101, end=2973473, strand=1), + Location(locus='region867', start=2974050, end=2974162, strand=1), + Location(locus='region868', start=2974273, end=2974345, strand=1), + Location(locus='region869', start=2974410, end=2974651, strand=1), + Location(locus='region870', start=2974652, end=2974758, strand=1), + Location(locus='region871', start=2974767, end=2974912, strand=1), + Location(locus='region872', start=2974913, end=2975136, strand=1), + Location(locus='region873', start=2975263, end=2975329, strand=1), + Location(locus='region874', start=2975390, end=2975461, strand=1), + Location(locus='region875', start=2975465, end=2975697, strand=1), + Location(locus='region876', start=2975726, end=2975962, strand=1), + Location(locus='region877', start=2978905, end=2979050, strand=1), + Location(locus='region878', start=2980970, end=2980998, strand=1), + Location(locus='region879', start=2982937, end=2983859, strand=1), + Location(locus='region880', start=2989950, end=2989952, strand=1), + Location(locus='region881', start=2990578, end=2990706, strand=1), + Location(locus='region882', start=2996000, end=2996173, strand=1), + Location(locus='region883', start=3000927, end=3000997, strand=1), + Location(locus='region884', start=3001076, end=3001136, strand=1), + Location(locus='region885', start=3001304, end=3001385, strand=1), + Location(locus='region886', start=3001421, end=3001480, strand=1), + Location(locus='region887', start=3001760, end=3001811, strand=1), + Location(locus='region888', start=3002296, end=3002366, strand=1), + Location(locus='region889', start=3002445, end=3002505, strand=1), + Location(locus='region890', start=3002673, end=3002754, strand=1), + Location(locus='region891', start=3002790, end=3002849, strand=1), + Location(locus='region892', start=3003129, end=3003180, strand=1), + Location(locus='region893', start=3007032, end=3007227, strand=1), + Location(locus='region894', start=3018717, end=3018767, strand=1), + Location(locus='region895', start=3018795, end=3018854, strand=1), + Location(locus='region896', start=3022728, end=3022778, strand=1), + Location(locus='region897', start=3022806, end=3022865, strand=1), + Location(locus='region898', start=3026262, end=3026284, strand=1), + Location(locus='region899', start=3054576, end=3054577, strand=1), + Location(locus='region900', start=3054578, end=3054941, strand=1), + Location(locus='region901', start=3054952, end=3055236, strand=1), + Location(locus='region902', start=3059792, end=3059850, strand=1), + Location(locus='region903', start=3073062, end=3073136, strand=1), + Location(locus='region904', start=3076898, end=3076962, strand=1), + Location(locus='region905', start=3078168, end=3078218, strand=1), + Location(locus='region906', start=3082462, end=3082661, strand=1), + Location(locus='region907', start=3082704, end=3082763, strand=1), + Location(locus='region908', start=3097654, end=3097715, strand=1), + Location(locus='region909', start=3100170, end=3100401, strand=1), + Location(locus='region910', start=3100446, end=3100511, strand=1), + Location(locus='region911', start=3100515, end=3100571, strand=1), + Location(locus='region912', start=3100694, end=3100799, strand=1), + Location(locus='region913', start=3100879, end=3100939, strand=1), + Location(locus='region914', start=3100965, end=3101132, strand=1), + Location(locus='region915', start=3101235, end=3101377, strand=1), + Location(locus='region916', start=3101429, end=3101543, strand=1), + Location(locus='region917', start=3101660, end=3101731, strand=1), + Location(locus='region918', start=3101861, end=3101911, strand=1), + Location(locus='region919', start=3102099, end=3102229, strand=1), + Location(locus='region920', start=3102340, end=3102390, strand=1), + Location(locus='region921', start=3104976, end=3105044, strand=1), + Location(locus='region922', start=3112312, end=3112313, strand=1), + Location(locus='region923', start=3112459, end=3112460, strand=1), + Location(locus='region924', start=3113017, end=3113104, strand=1), + Location(locus='region925', start=3113775, end=3113862, strand=1), + Location(locus='region926', start=3116414, end=3116522, strand=1), + Location(locus='region927', start=3116682, end=3116766, strand=1), + Location(locus='region928', start=3116843, end=3116989, strand=1), + Location(locus='region929', start=3119560, end=3119563, strand=1), + Location(locus='region930', start=3119566, end=3122702, strand=1), + Location(locus='region931', start=3122803, end=3122918, strand=1), + Location(locus='region932', start=3122931, end=3122942, strand=1), + Location(locus='region933', start=3122948, end=3122954, strand=1), + Location(locus='region934', start=3123027, end=3123283, strand=1), + Location(locus='region935', start=3123316, end=3123353, strand=1), + Location(locus='region936', start=3123422, end=3123424, strand=1), + Location(locus='region937', start=3132887, end=3133461, strand=1), + Location(locus='region938', start=3135783, end=3136357, strand=1), + Location(locus='region939', start=3138022, end=3138085, strand=1), + Location(locus='region940', start=3147107, end=3147108, strand=1), + Location(locus='region941', start=3147110, end=3147119, strand=1), + Location(locus='region942', start=3155875, end=3156094, strand=1), + Location(locus='region943', start=3160526, end=3160587, strand=1), + Location(locus='region944', start=3162643, end=3162703, strand=1), + Location(locus='region945', start=3162806, end=3162923, strand=1), + Location(locus='region946', start=3163470, end=3163548, strand=1), + Location(locus='region947', start=3163615, end=3163617, strand=1), + Location(locus='region948', start=3163619, end=3164033, strand=1), + Location(locus='region949', start=3171459, end=3171634, strand=1), + Location(locus='region950', start=3189479, end=3189617, strand=1), + Location(locus='region951', start=3192190, end=3192363, strand=1), + Location(locus='region952', start=3194136, end=3194535, strand=1), + Location(locus='region953', start=3194658, end=3194763, strand=1), + Location(locus='region954', start=3194791, end=3194794, strand=1), + Location(locus='region955', start=3194935, end=3195045, strand=1), + Location(locus='region956', start=3195058, end=3195120, strand=1), + Location(locus='region957', start=3195203, end=3195283, strand=1), + Location(locus='region958', start=3196071, end=3196122, strand=1), + Location(locus='region959', start=3201556, end=3201655, strand=1), + Location(locus='region960', start=3226325, end=3226402, strand=1), + Location(locus='region961', start=3232506, end=3232871, strand=1), + Location(locus='region962', start=3239466, end=3239794, strand=1), + Location(locus='region963', start=3245098, end=3245166, strand=1), + Location(locus='region964', start=3245321, end=3245389, strand=1), + Location(locus='region965', start=3247233, end=3247304, strand=1), + Location(locus='region966', start=3247313, end=3247471, strand=1), + Location(locus='region967', start=3247557, end=3247739, strand=1), + Location(locus='region968', start=3247809, end=3248173, strand=1), + Location(locus='region969', start=3248283, end=3248335, strand=1), + Location(locus='region970', start=3251411, end=3251470, strand=1), + Location(locus='region971', start=3252647, end=3252718, strand=1), + Location(locus='region972', start=3252727, end=3252885, strand=1), + Location(locus='region973', start=3252971, end=3253153, strand=1), + Location(locus='region974', start=3253223, end=3253587, strand=1), + Location(locus='region975', start=3253733, end=3253738, strand=1), + Location(locus='region976', start=3257962, end=3258024, strand=1), + Location(locus='region977', start=3258181, end=3258232, strand=1), + Location(locus='region978', start=3258342, end=3258404, strand=1), + Location(locus='region979', start=3262593, end=3262652, strand=1), + Location(locus='region980', start=3266035, end=3266081, strand=1), + Location(locus='region981', start=3276956, end=3277006, strand=1), + Location(locus='region982', start=3277821, end=3277904, strand=1), + Location(locus='region983', start=3281070, end=3281123, strand=1), + Location(locus='region984', start=3281221, end=3281240, strand=1), + Location(locus='region985', start=3284730, end=3284810, strand=1), + Location(locus='region986', start=3287950, end=3288005, strand=1), + Location(locus='region987', start=3290432, end=3290482, strand=1), + Location(locus='region988', start=3291393, end=3291510, strand=1), + Location(locus='region989', start=3292983, end=3293052, strand=1), + Location(locus='region990', start=3293178, end=3293237, strand=1), + Location(locus='region991', start=3295507, end=3295562, strand=1), + Location(locus='region992', start=3296594, end=3296665, strand=1), + Location(locus='region993', start=3297173, end=3297238, strand=1), + Location(locus='region994', start=3307727, end=3307761, strand=1), + Location(locus='region995', start=3311027, end=3311090, strand=1), + Location(locus='region996', start=3311308, end=3311393, strand=1), + Location(locus='region997', start=3311534, end=3311599, strand=1), + Location(locus='region998', start=3313346, end=3313396, strand=1), + Location(locus='region999', start=3314116, end=3314179, strand=1), + Location(locus='region1000', start=3314397, end=3314482, strand=1), + Location(locus='region1001', start=3314623, end=3314688, strand=1), + Location(locus='region1002', start=3317572, end=3317743, strand=1), + Location(locus='region1003', start=3319468, end=3319665, strand=1), + Location(locus='region1004', start=3333753, end=3333984, strand=1), + Location(locus='region1005', start=3333990, end=3334184, strand=1), + Location(locus='region1006', start=3334239, end=3334370, strand=1), + Location(locus='region1007', start=3334557, end=3334609, strand=1), + Location(locus='region1008', start=3334646, end=3334739, strand=1), + Location(locus='region1009', start=3334822, end=3334960, strand=1), + Location(locus='region1010', start=3335016, end=3335084, strand=1), + Location(locus='region1011', start=3335246, end=3335317, strand=1), + Location(locus='region1012', start=3335357, end=3335410, strand=1), + Location(locus='region1013', start=3335447, end=3335497, strand=1), + Location(locus='region1014', start=3335504, end=3335566, strand=1), + Location(locus='region1015', start=3335741, end=3335815, strand=1), + Location(locus='region1016', start=3336500, end=3336803, strand=1), + Location(locus='region1017', start=3343348, end=3343447, strand=1), + Location(locus='region1018', start=3348477, end=3348544, strand=1), + Location(locus='region1019', start=3351084, end=3351220, strand=1), + Location(locus='region1020', start=3369930, end=3369931, strand=1), + Location(locus='region1021', start=3369937, end=3369942, strand=1), + Location(locus='region1022', start=3376515, end=3376543, strand=1), + Location(locus='region1023', start=3376746, end=3376809, strand=1), + Location(locus='region1024', start=3376921, end=3377368, strand=1), + Location(locus='region1025', start=3377645, end=3378276, strand=1), + Location(locus='region1026', start=3378329, end=3378443, strand=1), + Location(locus='region1027', start=3378895, end=3378960, strand=1), + Location(locus='region1028', start=3379196, end=3379285, strand=1), + Location(locus='region1029', start=3379358, end=3380715, strand=1), + Location(locus='region1030', start=3380907, end=3381021, strand=1), + Location(locus='region1031', start=3381307, end=3382755, strand=1), + Location(locus='region1032', start=3415197, end=3415211, strand=1), + Location(locus='region1033', start=3430332, end=3430388, strand=1), + Location(locus='region1034', start=3451379, end=3451439, strand=1), + Location(locus='region1035', start=3463548, end=3463559, strand=1), + Location(locus='region1036', start=3477289, end=3477404, strand=1), + Location(locus='region1037', start=3481318, end=3482769, strand=1), + Location(locus='region1038', start=3483942, end=3485117, strand=1), + Location(locus='region1039', start=3491173, end=3491238, strand=1), + Location(locus='region1040', start=3491292, end=3491383, strand=1), + Location(locus='region1041', start=3491605, end=3491662, strand=1), + Location(locus='region1042', start=3491745, end=3491860, strand=1), + Location(locus='region1043', start=3501334, end=3501335, strand=1), + Location(locus='region1044', start=3502155, end=3502265, strand=1), + Location(locus='region1045', start=3524464, end=3524527, strand=1), + Location(locus='region1046', start=3528083, end=3528084, strand=1), + Location(locus='region1047', start=3528086, end=3528087, strand=1), + Location(locus='region1048', start=3528098, end=3528099, strand=1), + Location(locus='region1049', start=3528101, end=3528102, strand=1), + Location(locus='region1050', start=3528116, end=3528117, strand=1), + Location(locus='region1051', start=3528118, end=3528120, strand=1), + Location(locus='region1052', start=3528128, end=3528129, strand=1), + Location(locus='region1053', start=3528139, end=3528140, strand=1), + Location(locus='region1054', start=3528143, end=3528144, strand=1), + Location(locus='region1055', start=3528157, end=3528159, strand=1), + Location(locus='region1056', start=3528164, end=3528165, strand=1), + Location(locus='region1057', start=3528191, end=3528192, strand=1), + Location(locus='region1058', start=3528197, end=3528198, strand=1), + Location(locus='region1059', start=3528674, end=3529181, strand=1), + Location(locus='region1060', start=3537803, end=3537820, strand=1), + Location(locus='region1061', start=3551223, end=3554075, strand=1), + Location(locus='region1062', start=3558759, end=3558794, strand=1), + Location(locus='region1063', start=3572554, end=3572610, strand=1), + Location(locus='region1064', start=3590630, end=3590687, strand=1), + Location(locus='region1065', start=3594262, end=3594465, strand=1), + Location(locus='region1066', start=3595987, end=3596005, strand=1), + Location(locus='region1067', start=3598349, end=3598405, strand=1), + Location(locus='region1068', start=3598436, end=3598532, strand=1), + Location(locus='region1069', start=3598641, end=3598719, strand=1), + Location(locus='region1070', start=3617102, end=3617103, strand=1), + Location(locus='region1071', start=3626606, end=3626667, strand=1), + Location(locus='region1072', start=3628084, end=3628147, strand=1), + Location(locus='region1073', start=3658635, end=3658712, strand=1), + Location(locus='region1074', start=3663723, end=3664000, strand=1), + Location(locus='region1075', start=3690944, end=3691077, strand=1), + Location(locus='region1076', start=3704903, end=3704991, strand=1), + Location(locus='region1077', start=3707577, end=3707634, strand=1), + Location(locus='region1078', start=3710374, end=3712827, strand=1), + Location(locus='region1079', start=3724548, end=3724618, strand=1), + Location(locus='region1080', start=3729448, end=3729597, strand=1), + Location(locus='region1081', start=3729626, end=3729676, strand=1), + Location(locus='region1082', start=3730345, end=3732799, strand=1), + Location(locus='region1083', start=3734471, end=3734529, strand=1), + Location(locus='region1084', start=3735634, end=3736288, strand=1), + Location(locus='region1085', start=3736501, end=3736555, strand=1), + Location(locus='region1086', start=3736693, end=3736747, strand=1), + Location(locus='region1087', start=3737092, end=3737207, strand=1), + Location(locus='region1088', start=3737268, end=3737497, strand=1), + Location(locus='region1089', start=3737804, end=3737808, strand=1), + Location(locus='region1090', start=3737814, end=3737818, strand=1), + Location(locus='region1091', start=3737828, end=3737836, strand=1), + Location(locus='region1092', start=3737992, end=3738961, strand=1), + Location(locus='region1093', start=3738977, end=3738985, strand=1), + Location(locus='region1094', start=3739052, end=3739056, strand=1), + Location(locus='region1095', start=3739131, end=3739133, strand=1), + Location(locus='region1096', start=3739159, end=3739163, strand=1), + Location(locus='region1097', start=3739194, end=3739202, strand=1), + Location(locus='region1098', start=3739207, end=3739899, strand=1), + Location(locus='region1099', start=3739960, end=3740010, strand=1), + Location(locus='region1100', start=3740065, end=3740131, strand=1), + Location(locus='region1101', start=3740138, end=3740140, strand=1), + Location(locus='region1102', start=3740161, end=3740208, strand=1), + Location(locus='region1103', start=3740214, end=3740229, strand=1), + Location(locus='region1104', start=3740302, end=3740322, strand=1), + Location(locus='region1105', start=3740338, end=3740574, strand=1), + Location(locus='region1106', start=3740592, end=3740604, strand=1), + Location(locus='region1107', start=3740617, end=3740620, strand=1), + Location(locus='region1108', start=3740630, end=3740632, strand=1), + Location(locus='region1109', start=3740644, end=3740655, strand=1), + Location(locus='region1110', start=3740659, end=3740666, strand=1), + Location(locus='region1111', start=3740681, end=3740698, strand=1), + Location(locus='region1112', start=3740702, end=3740939, strand=1), + Location(locus='region1113', start=3741172, end=3741178, strand=1), + Location(locus='region1114', start=3741286, end=3741394, strand=1), + Location(locus='region1115', start=3741502, end=3741604, strand=1), + Location(locus='region1116', start=3741624, end=3741678, strand=1), + Location(locus='region1117', start=3741681, end=3741914, strand=1), + Location(locus='region1118', start=3741942, end=3742247, strand=1), + Location(locus='region1119', start=3742250, end=3742256, strand=1), + Location(locus='region1120', start=3742316, end=3742371, strand=1), + Location(locus='region1121', start=3743211, end=3743502, strand=1), + Location(locus='region1122', start=3743507, end=3743603, strand=1), + Location(locus='region1123', start=3743710, end=3753184, strand=1), + Location(locus='region1124', start=3753326, end=3754368, strand=1), + Location(locus='region1125', start=3756036, end=3756185, strand=1), + Location(locus='region1126', start=3756410, end=3756480, strand=1), + Location(locus='region1127', start=3756941, end=3757478, strand=1), + Location(locus='region1128', start=3757570, end=3757629, strand=1), + Location(locus='region1129', start=3757773, end=3757828, strand=1), + Location(locus='region1130', start=3757879, end=3757971, strand=1), + Location(locus='region1131', start=3757972, end=3758040, strand=1), + Location(locus='region1132', start=3758117, end=3758193, strand=1), + Location(locus='region1133', start=3758716, end=3759099, strand=1), + Location(locus='region1134', start=3759107, end=3759186, strand=1), + Location(locus='region1135', start=3759331, end=3759390, strand=1), + Location(locus='region1136', start=3759534, end=3759589, strand=1), + Location(locus='region1137', start=3759679, end=3759738, strand=1), + Location(locus='region1138', start=3759826, end=3759909, strand=1), + Location(locus='region1139', start=3760356, end=3760409, strand=1), + Location(locus='region1140', start=3760417, end=3760675, strand=1), + Location(locus='region1141', start=3760753, end=3760985, strand=1), + Location(locus='region1142', start=3762384, end=3762655, strand=1), + Location(locus='region1143', start=3762661, end=3762818, strand=1), + Location(locus='region1144', start=3763048, end=3763101, strand=1), + Location(locus='region1145', start=3763223, end=3763275, strand=1), + Location(locus='region1146', start=3763282, end=3763332, strand=1), + Location(locus='region1147', start=3764059, end=3764114, strand=1), + Location(locus='region1148', start=3764134, end=3764237, strand=1), + Location(locus='region1149', start=3764251, end=3764523, strand=1), + Location(locus='region1150', start=3764809, end=3764862, strand=1), + Location(locus='region1151', start=3764980, end=3765076, strand=1), + Location(locus='region1152', start=3765161, end=3765219, strand=1), + Location(locus='region1153', start=3765798, end=3765987, strand=1), + Location(locus='region1154', start=3766018, end=3766179, strand=1), + Location(locus='region1155', start=3766215, end=3766396, strand=1), + Location(locus='region1156', start=3766435, end=3766518, strand=1), + Location(locus='region1157', start=3766552, end=3766722, strand=1), + Location(locus='region1158', start=3766760, end=3766819, strand=1), + Location(locus='region1159', start=3766829, end=3767099, strand=1), + Location(locus='region1160', start=3769527, end=3769724, strand=1), + Location(locus='region1161', start=3769749, end=3769854, strand=1), + Location(locus='region1162', start=3770993, end=3771089, strand=1), + Location(locus='region1163', start=3779545, end=3779766, strand=1), + Location(locus='region1164', start=3779809, end=3779899, strand=1), + Location(locus='region1165', start=3779936, end=3779981, strand=1), + Location(locus='region1166', start=3780156, end=3780175, strand=1), + Location(locus='region1167', start=3794868, end=3796422, strand=1), + Location(locus='region1168', start=3800030, end=3800120, strand=1), + Location(locus='region1169', start=3801824, end=3801874, strand=1), + Location(locus='region1170', start=3802056, end=3802113, strand=1), + Location(locus='region1171', start=3802122, end=3803827, strand=1), + Location(locus='region1172', start=3803844, end=3803919, strand=1), + Location(locus='region1173', start=3808262, end=3808421, strand=1), + Location(locus='region1174', start=3820387, end=3820598, strand=1), + Location(locus='region1175', start=3820711, end=3820772, strand=1), + Location(locus='region1176', start=3835202, end=3835264, strand=1), + Location(locus='region1177', start=3841619, end=3842454, strand=1), + Location(locus='region1178', start=3842471, end=3842551, strand=1), + Location(locus='region1179', start=3842560, end=3842670, strand=1), + Location(locus='region1180', start=3842725, end=3842907, strand=1), + Location(locus='region1181', start=3842979, end=3843117, strand=1), + Location(locus='region1182', start=3843182, end=3843275, strand=1), + Location(locus='region1183', start=3843317, end=3843468, strand=1), + Location(locus='region1184', start=3843519, end=3843520, strand=1), + Location(locus='region1185', start=3843523, end=3843705, strand=1), + Location(locus='region1186', start=3843713, end=3843714, strand=1), + Location(locus='region1187', start=3843748, end=3843749, strand=1), + Location(locus='region1188', start=3843750, end=3843753, strand=1), + Location(locus='region1189', start=3843759, end=3843760, strand=1), + Location(locus='region1190', start=3844681, end=3844756, strand=1), + Location(locus='region1191', start=3845970, end=3847246, strand=1), + Location(locus='region1192', start=3847305, end=3847404, strand=1), + Location(locus='region1193', start=3847446, end=3847581, strand=1), + Location(locus='region1194', start=3847700, end=3847711, strand=1), + Location(locus='region1195', start=3847714, end=3847896, strand=1), + Location(locus='region1196', start=3862570, end=3862575, strand=1), + Location(locus='region1197', start=3862576, end=3862578, strand=1), + Location(locus='region1198', start=3873526, end=3873540, strand=1), + Location(locus='region1199', start=3878561, end=3878637, strand=1), + Location(locus='region1200', start=3883543, end=3884926, strand=1), + Location(locus='region1201', start=3890771, end=3892143, strand=1), + Location(locus='region1202', start=3894402, end=3894790, strand=1), + Location(locus='region1203', start=3894863, end=3895078, strand=1), + Location(locus='region1204', start=3895083, end=3895137, strand=1), + Location(locus='region1205', start=3895184, end=3895525, strand=1), + Location(locus='region1206', start=3909753, end=3909823, strand=1), + Location(locus='region1207', start=3920470, end=3920549, strand=1), + Location(locus='region1208', start=3926568, end=3930714, strand=1), + Location(locus='region1209', start=3930985, end=3936710, strand=1), + Location(locus='region1210', start=3939616, end=3944963, strand=1), + Location(locus='region1211', start=3945089, end=3945604, strand=1), + Location(locus='region1212', start=3945774, end=3950263, strand=1), + Location(locus='region1213', start=3950821, end=3951336, strand=1), + Location(locus='region1214', start=3953332, end=3953403, strand=1), + Location(locus='region1215', start=3971370, end=3971455, strand=1), + Location(locus='region1216', start=3971458, end=3971524, strand=1), + Location(locus='region1217', start=3971981, end=3972034, strand=1), + Location(locus='region1218', start=3972081, end=3972195, strand=1), + Location(locus='region1219', start=3972211, end=3972290, strand=1), + Location(locus='region1220', start=3972337, end=3972393, strand=1), + Location(locus='region1221', start=3991561, end=3991619, strand=1), + Location(locus='region1222', start=3998150, end=3998204, strand=1), + Location(locus='region1223', start=3998607, end=3998613, strand=1), + Location(locus='region1224', start=3998824, end=3998942, strand=1), + Location(locus='region1225', start=3998991, end=3999071, strand=1), + Location(locus='region1226', start=4021388, end=4021460, strand=1), + Location(locus='region1227', start=4031606, end=4031660, strand=1), + Location(locus='region1228', start=4031821, end=4031838, strand=1), + Location(locus='region1229', start=4031924, end=4031943, strand=1), + Location(locus='region1230', start=4031955, end=4032014, strand=1), + Location(locus='region1231', start=4032019, end=4032024, strand=1), + Location(locus='region1232', start=4032382, end=4032639, strand=1), + Location(locus='region1233', start=4032757, end=4032820, strand=1), + Location(locus='region1234', start=4036846, end=4037194, strand=1), + Location(locus='region1235', start=4037349, end=4037350, strand=1), + Location(locus='region1236', start=4037353, end=4037354, strand=1), + Location(locus='region1237', start=4037446, end=4037497, strand=1), + Location(locus='region1238', start=4037832, end=4037883, strand=1), + Location(locus='region1239', start=4038741, end=4038794, strand=1), + Location(locus='region1240', start=4038844, end=4038845, strand=1), + Location(locus='region1241', start=4038846, end=4038882, strand=1), + Location(locus='region1242', start=4039675, end=4039747, strand=1), + Location(locus='region1243', start=4040022, end=4040104, strand=1), + Location(locus='region1244', start=4052949, end=4053603, strand=1), + Location(locus='region1245', start=4053634, end=4053852, strand=1), + Location(locus='region1246', start=4059977, end=4060595, strand=1), + Location(locus='region1247', start=4061422, end=4061526, strand=1), + Location(locus='region1248', start=4070033, end=4070083, strand=1), + Location(locus='region1249', start=4070261, end=4070347, strand=1), + Location(locus='region1250', start=4077656, end=4077706, strand=1), + Location(locus='region1251', start=4077788, end=4077860, strand=1), + Location(locus='region1252', start=4077890, end=4077961, strand=1), + Location(locus='region1253', start=4077977, end=4078205, strand=1), + Location(locus='region1254', start=4087476, end=4087626, strand=1), + Location(locus='region1255', start=4090857, end=4090910, strand=1), + Location(locus='region1256', start=4091336, end=4091423, strand=1), + Location(locus='region1257', start=4094066, end=4094346, strand=1), + Location(locus='region1258', start=4101192, end=4101256, strand=1), + Location(locus='region1259', start=4107450, end=4107526, strand=1), + Location(locus='region1260', start=4120913, end=4121197, strand=1), + Location(locus='region1261', start=4134600, end=4134730, strand=1), + Location(locus='region1262', start=4139502, end=4139566, strand=1), + Location(locus='region1263', start=4139567, end=4139569, strand=1), + Location(locus='region1264', start=4143900, end=4143956, strand=1), + Location(locus='region1265', start=4155453, end=4155589, strand=1), + Location(locus='region1266', start=4156793, end=4156975, strand=1), + Location(locus='region1267', start=4168470, end=4168482, strand=1), + Location(locus='region1268', start=4175392, end=4175410, strand=1), + Location(locus='region1269', start=4189439, end=4189509, strand=1), + Location(locus='region1270', start=4190056, end=4190144, strand=1), + Location(locus='region1271', start=4199122, end=4199189, strand=1), + Location(locus='region1272', start=4201240, end=4201294, strand=1), + Location(locus='region1273', start=4216126, end=4216272, strand=1), + Location(locus='region1274', start=4216347, end=4216431, strand=1), + Location(locus='region1275', start=4216591, end=4216699, strand=1), + Location(locus='region1276', start=4221245, end=4221301, strand=1), + Location(locus='region1277', start=4221341, end=4221418, strand=1), + Location(locus='region1278', start=4221504, end=4221577, strand=1), + Location(locus='region1279', start=4221581, end=4221643, strand=1), + Location(locus='region1280', start=4221749, end=4221799, strand=1), + Location(locus='region1281', start=4222095, end=4222154, strand=1), + Location(locus='region1282', start=4222319, end=4222393, strand=1), + Location(locus='region1283', start=4222464, end=4222523, strand=1), + Location(locus='region1284', start=4222572, end=4222639, strand=1), + Location(locus='region1285', start=4231319, end=4232393, strand=1), + Location(locus='region1286', start=4237930, end=4237998, strand=1), + Location(locus='region1287', start=4240442, end=4240492, strand=1), + Location(locus='region1288', start=4247057, end=4247107, strand=1), + Location(locus='region1289', start=4252876, end=4254339, strand=1), + Location(locus='region1290', start=4265704, end=4265757, strand=1), + Location(locus='region1291', start=4266206, end=4266275, strand=1), + Location(locus='region1292', start=4266315, end=4266398, strand=1), + Location(locus='region1293', start=4266447, end=4266530, strand=1), + Location(locus='region1294', start=4288132, end=4288218, strand=1), + Location(locus='region1295', start=4293984, end=4294056, strand=1), + Location(locus='region1296', start=4294402, end=4294459, strand=1), + Location(locus='region1297', start=4294717, end=4294773, strand=1), + Location(locus='region1298', start=4296685, end=4296735, strand=1), + Location(locus='region1299', start=4297903, end=4297956, strand=1), + Location(locus='region1300', start=4301213, end=4301287, strand=1), + Location(locus='region1301', start=4301540, end=4301806, strand=1), + Location(locus='region1302', start=4301861, end=4302004, strand=1), + Location(locus='region1303', start=4302084, end=4302144, strand=1), + Location(locus='region1304', start=4302170, end=4302248, strand=1), + Location(locus='region1305', start=4302440, end=4302523, strand=1), + Location(locus='region1306', start=4302527, end=4302577, strand=1), + Location(locus='region1307', start=4302652, end=4302715, strand=1), + Location(locus='region1308', start=4302868, end=4302924, strand=1), + Location(locus='region1309', start=4302976, end=4303029, strand=1), + Location(locus='region1310', start=4303123, end=4303185, strand=1), + Location(locus='region1311', start=4303304, end=4303433, strand=1), + Location(locus='region1312', start=4317963, end=4318064, strand=1), + Location(locus='region1313', start=4318102, end=4318154, strand=1), + Location(locus='region1314', start=4318336, end=4319378, strand=1), + Location(locus='region1315', start=4320040, end=4320112, strand=1), + Location(locus='region1316', start=4340937, end=4340993, strand=1), + Location(locus='region1317', start=4348719, end=4348834, strand=1), + Location(locus='region1318', start=4353179, end=4353460, strand=1), + Location(locus='region1319', start=4353839, end=4353891, strand=1), + Location(locus='region1320', start=4359134, end=4359135, strand=1), + Location(locus='region1321', start=4361058, end=4361100, strand=1), + Location(locus='region1322', start=4368618, end=4368637, strand=1), + Location(locus='region1323', start=4369564, end=4369624, strand=1), + Location(locus='region1324', start=4383309, end=4383359, strand=1) + ] + + @doc_inherit + def load_from_web_and_db(self): + response = requests.get(self.url) + if response.status_code == 200: + self.regions = bed_to_regions(StringIO(response.text)) diff --git a/src/tb_variant_filter/masks/tbprofiler.py b/src/tb_variant_filter/masks/tbprofiler.py index ce244c6..c855063 100644 --- a/src/tb_variant_filter/masks/tbprofiler.py +++ b/src/tb_variant_filter/masks/tbprofiler.py @@ -26,49 +26,64 @@ class TBProfilerRegions(RegionList): name = "TBProfiler" description = "TBProfiler resistance genes" project_url = "https://github.com/jodyphelan/TBProfiler" - regions = [ - Location(locus='Rv0005', start=4998, end=7267, strand=1), - Location(locus='Rv0006', start=7268, end=9818, strand=1), - Location(locus='Rv0407', start=490706, end=491785, strand=1), - Location(locus='Rv0486', start=575301, end=576786, strand=1), - Location(locus='Rv0667', start=759310, end=763325, strand=1), - Location(locus='Rv0668', start=763326, end=767320, strand=1), - Location(locus='Rv0678', start=778906, end=779487, strand=1), - Location(locus='Rv0682', start=781312, end=781933, strand=1), - Location(locus='Rv0701', start=800793, end=801461, strand=1), - Location(locus='Rv1173', start=1302682, end=1305501, strand=1), - Location(locus='Rv1267c', start=1416181, end=1417657, strand=1), - Location(locus='Rv1305', start=1460997, end=1461290, strand=1), - Location(locus='rrs', start=1471743, end=1473382, strand=1), - Location(locus='rrl', start=1473383, end=1476795, strand=1), - Location(locus='Rv1483', start=1673300, end=1674183, strand=1), - Location(locus='Rv1484', start=1674184, end=1675011, strand=1), - Location(locus='Rv1630', start=1833380, end=1834987, strand=1), - Location(locus='Rv1694', start=1917933, end=1918745, strand=1), - Location(locus='Rv1908c', start=2153889, end=2156148, strand=1), - Location(locus='Rv2043c', start=2288682, end=2289281, strand=1), - Location(locus='Rv2245', start=2518115, end=2519365, strand=1), - Location(locus='Rv2416c', start=2714124, end=2715471, strand=1), - Location(locus='Rv2428', start=2726088, end=2726780, strand=1), - Location(locus='Rv2447c', start=2746139, end=2747594, strand=1), - Location(locus='Rv2535c', start=2859300, end=2860418, strand=1), - Location(locus='Rv2671', start=2986841, end=2987615, strand=1), - Location(locus='Rv2754c', start=3067193, end=3068188, strand=1), - Location(locus='Rv2764c', start=3073680, end=3074471, strand=1), - Location(locus='Rv2780', start=3086755, end=3087935, strand=1), - Location(locus='Rv2983', start=3339000, end=3339762, strand=1), - Location(locus='Rv3261', start=3640142, end=3641538, strand=1), - Location(locus='Rv3262', start=3641539, end=3642881, strand=1), - Location(locus='Rv3423c', start=3840198, end=3841713, strand=1), - Location(locus='Rv3547', start=3986733, end=3987299, strand=1), - Location(locus='Rv3601c', start=4043862, end=4044280, strand=1), - Location(locus='Rv3793', start=4239864, end=4243147, strand=1), - Location(locus='Rv3794', start=4243148, end=4246513, strand=1), - Location(locus='Rv3795', start=4246514, end=4249810, strand=1), - Location(locus='Rv3806c', start=4268925, end=4269839, strand=1), - Location(locus='Rv3854c', start=4326004, end=4327548, strand=1), - Location(locus='Rv3855', start=4327549, end=4328199, strand=1), - Location(locus='Rv3919c', start=4407528, end=4408333, strand=1), + regions = [ Location(locus='Rv0005', start=5040, end=7467, strand=1), + Location(locus='Rv0006', start=7102, end=10018, strand=1), + Location(locus='Rv0407', start=490583, end=491993, strand=1), + Location(locus='Rv0486', start=575148, end=576990, strand=1), + Location(locus='Rv0529', start=619691, end=621065, strand=1), + Location(locus='Rv0667', start=759607, end=763525, strand=1), + Location(locus='Rv0668', start=763170, end=767520, strand=1), + Location(locus='Rv0676c', start=775386, end=778680, strand=1), + Location(locus='Rv0677c', start=778277, end=779105, strand=1), + Location(locus='Rv0678', start=778790, end=779687, strand=1), + Location(locus='Rv0682', start=781360, end=782134, strand=1), + Location(locus='Rv0701', start=800609, end=801662, strand=1), + Location(locus='Rv1173', start=1302731, end=1305701, strand=1), + Location(locus='Rv1258c', start=1405881, end=1407540, strand=1), + Location(locus='Rv1267c', start=1415981, end=1417547, strand=1), + Location(locus='Rv1305', start=1460845, end=1461490, strand=1), + Location(locus='rrs', start=1471646, end=1473582, strand=1), + Location(locus='rrl', start=1473458, end=1476995, strand=1), + Location(locus='Rv1483', start=1673148, end=1674383, strand=1), + Location(locus='Rv1484', start=1673848, end=1675211, strand=1), + Location(locus='Rv1630', start=1833342, end=1835187, strand=1), + Location(locus='Rv1694', start=1917740, end=1918946, strand=1), + Location(locus='Rv1854c', start=2101451, end=2103242, strand=1), + Location(locus='Rv1908c', start=2153689, end=2156570, strand=1), + Location(locus='Rv1918c', start=2167449, end=2170812, strand=1), + Location(locus='Rv1979c', start=2221519, end=2223364, strand=1), + Location(locus='Rv2043c', start=2288481, end=2290323, strand=1), + Location(locus='Rv2245', start=2517915, end=2519565, strand=1), + Location(locus='Rv2416c', start=2713924, end=2715586, strand=1), + Location(locus='Rv2428', start=2725912, end=2726980, strand=1), + Location(locus='Rv2447c', start=2745935, end=2747798, strand=1), + Location(locus='Rv2535c', start=2859100, end=2860618, strand=1), + Location(locus='Rv2671', start=2986639, end=2987815, strand=1), + Location(locus='Rv2752c', start=3064315, end=3066391, strand=1), + Location(locus='Rv2754c', start=3066993, end=3068161, strand=1), + Location(locus='Rv2764c', start=3073480, end=3074671, strand=1), + Location(locus='Rv2780', start=3086620, end=3088135, strand=1), + Location(locus='Rv2983', start=3338918, end=3339962, strand=1), + Location(locus='Rv3083', start=3448304, end=3450191, strand=1), + Location(locus='Rv3106', start=3473807, end=3475577, strand=1), + Location(locus='Rv3197A', start=3568201, end=3568879, strand=1), + Location(locus='Rv3236c', start=3611759, end=3613316, strand=1), + Location(locus='Rv3261', start=3640343, end=3641738, strand=1), + Location(locus='Rv3262', start=3641335, end=3643081, strand=1), + Location(locus='Rv3423c', start=3839994, end=3841620, strand=1), + Location(locus='Rv3457c', start=3877264, end=3878707, strand=1), + Location(locus='Rv3547', start=3986644, end=3987499, strand=1), + Location(locus='Rv3596c', start=4037958, end=4040904, strand=1), + Location(locus='Rv3601c', start=4043662, end=4044481, strand=1), + Location(locus='Rv3793', start=4239663, end=4243347, strand=1), + Location(locus='Rv3794', start=4243004, end=4246717, strand=1), + Location(locus='Rv3795', start=4246314, end=4250010, strand=1), + Location(locus='Rv3805c', start=4266753, end=4269036, strand=1), + Location(locus='Rv3806c', start=4268725, end=4270033, strand=1), + Location(locus='Rv3854c', start=4325804, end=4330174, strand=1), + Location(locus='Rv3855', start=4327349, end=4328399, strand=1), + Location(locus='Rv3862c', start=4337971, end=4338721, strand=1), + Location(locus='Rv3919c', start=4407328, end=4408476, strand=1) ] @doc_inherit @@ -81,4 +96,4 @@ def load_from_web_and_db(self, bolt_url: str): names=["Chromosome", "start", "end", "locus", "name", "resistance"], ) graph = GraphDatabase.driver(uri=bolt_url) - self.regions = RegionList.locus_list_to_locations(graph, data, "locus") + self.regions = RegionList.locus_list_to_locations(graph, data, "locus", "name") diff --git a/src/tb_variant_filter/region_list.py b/src/tb_variant_filter/region_list.py index 33cb98f..d391730 100644 --- a/src/tb_variant_filter/region_list.py +++ b/src/tb_variant_filter/region_list.py @@ -16,6 +16,7 @@ import json import types from typing import TextIO, List +import sys import pandas as pd from neo4j import Driver @@ -47,7 +48,7 @@ class RegionList(ABC): name = "" description = "" project_url = "" - # region list is in GFF3 style 1 based, fully closed coordinates + # the region list is in GFF3 style 1 based, fully closed coordinates # like in the first example here: http://genome.ucsc.edu/blog/the-ucsc-genome-browser-coordinate-counting-systems/ regions = [] @@ -94,7 +95,7 @@ def _find_locus_by_name(tx, name): @classmethod def locus_list_to_locations( - cls, graph: Driver, locus_df: pd.DataFrame, column_name: str + cls, graph: Driver, locus_df: pd.DataFrame, column_name: str, rrna_column_name: str = None ): """locus_list_to_locations - lookup H37Rv coordinates of a list of gene/pseudogene/rrnas graph - neo4j Driver object (from GraphDatabase.driver()) @@ -106,15 +107,20 @@ def locus_list_to_locations( locations = [] for i, row in locus_df.iterrows(): locus = row[column_name] + if not locus.startswith('Rv') and rrna_column_name is not None: + locus = row[rrna_column_name] result = session.read_transaction(RegionList._find_locus_by_name, locus) - locations.append( - Location( - locus=result["locus"]["uniquename"], - start=result["location"]["fmin"], - end=result["location"]["fmax"], - strand=result["location"]["strand"], + if result is not None: + locations.append( + Location( + locus=result["locus"]["uniquename"], + start=result["location"]["fmin"], + end=result["location"]["fmax"], + strand=result["location"]["strand"], + ) ) - ) + else: + print("Failed to look up coordinates for", locus, file=sys.stderr) return locations def to_dict(self): diff --git a/src/tests/test_farhat_rlc_lowmap.py b/src/tests/test_farhat_rlc_lowmap.py new file mode 100644 index 0000000..044b140 --- /dev/null +++ b/src/tests/test_farhat_rlc_lowmap.py @@ -0,0 +1,18 @@ +from tb_variant_filter.masks.farhat_rlc_lowmap import FarhatLab_RLC_LowMap_Regions + + +def test_farhat_rlc_region_count(): + farhat_rlc_lowmap = FarhatLab_RLC_LowMap_Regions + expected = 1324 + assert ( + len(farhat_rlc_lowmap.regions) == expected + ), f"expected {expected} RLC and LowMap regions, got {len(farhat_rlc_lowmap.regions)}" + + +def test_farhat_rlc_region_count_web(): + farhat_rlc_lowmap = FarhatLab_RLC_LowMap_Regions() + farhat_rlc_lowmap.load_from_web_and_db() + expected = 1324 + assert ( + len(farhat_rlc_lowmap.regions) == expected + ), f"expected {expected} RLC and LowMap regions, got {len(farhat_rlc_lowmap.regions)}" diff --git a/src/tests/test_tbprofiler.py b/src/tests/test_tbprofiler.py index 774be7b..272ef31 100644 --- a/src/tests/test_tbprofiler.py +++ b/src/tests/test_tbprofiler.py @@ -4,7 +4,7 @@ def test_tbprofiler_region_count(): tbprofiler = TBProfilerRegions() - expected = 42 + expected = 58 assert ( len(tbprofiler.regions) == expected ), f"expected {expected} regions, got {len(tbprofiler.regions)}" @@ -15,7 +15,7 @@ def test_tbprofiler_web_region_count(): tbprofiler = TBProfilerRegions() bolt_url = get_bolt_url() tbprofiler.load_from_web_and_db(bolt_url) - expected = 42 + expected = 58 assert ( len(tbprofiler.regions) == expected ), f"expected {expected} regions, got {len(tbprofiler.regions)}" diff --git a/tox.ini b/tox.ini index f5d9304..2fd4fdf 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39 +envlist = py37,py38,py39,py310 requires = tox-conda isolated_build = True