arda-mapper 2.0.2__tar.gz → 2.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/PKG-INFO +11 -2
  2. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/README.md +10 -1
  3. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/pyproject.toml +1 -1
  4. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/__init__.py +1 -1
  5. arda_mapper-2.0.3/src/arda/_database_fetch.py +68 -0
  6. arda_mapper-2.0.3/src/arda/paths.py +107 -0
  7. arda_mapper-2.0.2/src/arda/paths.py +0 -74
  8. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/.github/workflows/ci.yml +0 -0
  9. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/.github/workflows/docs.yml +0 -0
  10. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/.github/workflows/publish.yml +0 -0
  11. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/.github/workflows/testpypi.yml +0 -0
  12. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/.gitignore +0 -0
  13. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/CMakeLists.txt +0 -0
  14. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/LICENSE +0 -0
  15. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/ROADMAP.md +0 -0
  16. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/assets/arda_dark.png +0 -0
  17. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/assets/arda_dark.svg +0 -0
  18. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/assets/arda_dark_bg.svg +0 -0
  19. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/assets/arda_light.png +0 -0
  20. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/assets/arda_light.svg +0 -0
  21. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/benchmarks/RESULTS.md +0 -0
  22. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/alleles.aa.fasta +0 -0
  23. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/alleles.fasta +0 -0
  24. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/build.log +0 -0
  25. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/combinations.tsv +0 -0
  26. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/d_germlines.fasta +0 -0
  27. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/markup.aa.tsv +0 -0
  28. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/markup.tsv +0 -0
  29. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/VERSION +0 -0
  30. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db +0 -0
  31. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db.dbtype +0 -0
  32. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db.index +0 -0
  33. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db.lookup +0 -0
  34. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db.source +0 -0
  35. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db_h +0 -0
  36. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db_h.dbtype +0 -0
  37. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/aa/db_h.index +0 -0
  38. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/VERSION +0 -0
  39. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db +0 -0
  40. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db.dbtype +0 -0
  41. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db.index +0 -0
  42. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db.lookup +0 -0
  43. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db.source +0 -0
  44. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db_h +0 -0
  45. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db_h.dbtype +0 -0
  46. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/human/mmseqs/nt/db_h.index +0 -0
  47. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/alleles.aa.fasta +0 -0
  48. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/alleles.fasta +0 -0
  49. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/build.log +0 -0
  50. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/combinations.tsv +0 -0
  51. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/d_germlines.fasta +0 -0
  52. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/markup.aa.tsv +0 -0
  53. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/markup.tsv +0 -0
  54. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/VERSION +0 -0
  55. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db +0 -0
  56. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db.dbtype +0 -0
  57. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db.index +0 -0
  58. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db.lookup +0 -0
  59. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db.source +0 -0
  60. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db_h +0 -0
  61. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db_h.dbtype +0 -0
  62. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/aa/db_h.index +0 -0
  63. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/VERSION +0 -0
  64. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db +0 -0
  65. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db.dbtype +0 -0
  66. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db.index +0 -0
  67. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db.lookup +0 -0
  68. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db.source +0 -0
  69. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db_h +0 -0
  70. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db_h.dbtype +0 -0
  71. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/mouse/mmseqs/nt/db_h.index +0 -0
  72. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/alleles.aa.fasta +0 -0
  73. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/alleles.fasta +0 -0
  74. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/build.log +0 -0
  75. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/combinations.tsv +0 -0
  76. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/d_germlines.fasta +0 -0
  77. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/markup.aa.tsv +0 -0
  78. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/markup.tsv +0 -0
  79. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/VERSION +0 -0
  80. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db +0 -0
  81. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db.dbtype +0 -0
  82. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db.index +0 -0
  83. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db.lookup +0 -0
  84. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db.source +0 -0
  85. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db_h +0 -0
  86. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db_h.dbtype +0 -0
  87. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/aa/db_h.index +0 -0
  88. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/VERSION +0 -0
  89. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db +0 -0
  90. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db.dbtype +0 -0
  91. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db.index +0 -0
  92. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db.lookup +0 -0
  93. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db.source +0 -0
  94. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db_h +0 -0
  95. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db_h.dbtype +0 -0
  96. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rabbit/mmseqs/nt/db_h.index +0 -0
  97. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/alleles.aa.fasta +0 -0
  98. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/alleles.fasta +0 -0
  99. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/build.log +0 -0
  100. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/combinations.tsv +0 -0
  101. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/d_germlines.fasta +0 -0
  102. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/markup.aa.tsv +0 -0
  103. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/markup.tsv +0 -0
  104. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/VERSION +0 -0
  105. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db +0 -0
  106. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db.dbtype +0 -0
  107. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db.index +0 -0
  108. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db.lookup +0 -0
  109. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db.source +0 -0
  110. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db_h +0 -0
  111. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db_h.dbtype +0 -0
  112. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/aa/db_h.index +0 -0
  113. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/VERSION +0 -0
  114. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db +0 -0
  115. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db.dbtype +0 -0
  116. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db.index +0 -0
  117. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db.lookup +0 -0
  118. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db.source +0 -0
  119. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db_h +0 -0
  120. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db_h.dbtype +0 -0
  121. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rat/mmseqs/nt/db_h.index +0 -0
  122. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/alleles.aa.fasta +0 -0
  123. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/alleles.fasta +0 -0
  124. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/build.log +0 -0
  125. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/combinations.tsv +0 -0
  126. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/d_germlines.fasta +0 -0
  127. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/markup.aa.tsv +0 -0
  128. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/markup.tsv +0 -0
  129. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/VERSION +0 -0
  130. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db +0 -0
  131. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db.dbtype +0 -0
  132. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db.index +0 -0
  133. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db.lookup +0 -0
  134. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db.source +0 -0
  135. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db_h +0 -0
  136. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db_h.dbtype +0 -0
  137. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/aa/db_h.index +0 -0
  138. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/VERSION +0 -0
  139. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db +0 -0
  140. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db.dbtype +0 -0
  141. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db.index +0 -0
  142. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db.lookup +0 -0
  143. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db.source +0 -0
  144. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db_h +0 -0
  145. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db_h.dbtype +0 -0
  146. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/database/vdj/rhesus_monkey/mmseqs/nt/db_h.index +0 -0
  147. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/Makefile +0 -0
  148. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/_static/custom.css +0 -0
  149. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/api.rst +0 -0
  150. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/conf.py +0 -0
  151. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/index.rst +0 -0
  152. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/installation.rst +0 -0
  153. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/reference_build.rst +0 -0
  154. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/docs/usage.rst +0 -0
  155. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/environment.yml +0 -0
  156. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/examples/README.md +0 -0
  157. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/examples/example.airr.tsv +0 -0
  158. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/examples/example.fasta +0 -0
  159. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/README.md +0 -0
  160. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/cluster-slurm.md +0 -0
  161. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/discordance-and-scaling.md +0 -0
  162. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/igblast-gotchas.md +0 -0
  163. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/markup-transfer.md +0 -0
  164. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/mmseqs-params.md +0 -0
  165. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/reading-frames.md +0 -0
  166. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/memory/scaffold-enumeration.md +0 -0
  167. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/scripts/bench_prefilter.py +0 -0
  168. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/scripts/bench_vs_igblast.py +0 -0
  169. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/scripts/build_test_fixtures.py +0 -0
  170. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/scripts/fetch_igblast.py +0 -0
  171. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/scripts/fetch_mmseqs.py +0 -0
  172. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/setup.sh +0 -0
  173. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/skills/arda/SKILL.md +0 -0
  174. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/skills/arda/references/annotation.md +0 -0
  175. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/skills/arda/references/install-mmseqs.md +0 -0
  176. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/skills/arda/references/reference-build.md +0 -0
  177. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/skills/arda/references/region-segments.md +0 -0
  178. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/_markup/markup.cpp +0 -0
  179. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/_mmseqs_fetch.py +0 -0
  180. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/adapter.py +0 -0
  181. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/__init__.py +0 -0
  182. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/airr_out.py +0 -0
  183. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/io.py +0 -0
  184. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/mapper.py +0 -0
  185. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/reference.py +0 -0
  186. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/annotate/transfer.py +0 -0
  187. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/cli.py +0 -0
  188. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/cluster.py +0 -0
  189. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/igblast.py +0 -0
  190. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/mmseqs.py +0 -0
  191. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/__init__.py +0 -0
  192. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/airr_extract.py +0 -0
  193. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/build.py +0 -0
  194. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/combinations.py +0 -0
  195. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/imgt.py +0 -0
  196. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/loci.py +0 -0
  197. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/src/arda/refbuild/translate.py +0 -0
  198. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/__init__.py +0 -0
  199. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/human.fasta.gz +0 -0
  200. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/human.igblast.airr.tsv.gz +0 -0
  201. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/mouse.fasta.gz +0 -0
  202. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/mouse.igblast.airr.tsv.gz +0 -0
  203. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rabbit.fasta.gz +0 -0
  204. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rabbit.igblast.airr.tsv.gz +0 -0
  205. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rat.fasta.gz +0 -0
  206. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rat.igblast.airr.tsv.gz +0 -0
  207. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rhesus_monkey.fasta.gz +0 -0
  208. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/assets/realworld/rhesus_monkey.igblast.airr.tsv.gz +0 -0
  209. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/benchmark/__init__.py +0 -0
  210. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/benchmark/test_benchmark.py +0 -0
  211. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/conftest.py +0 -0
  212. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/realworld/__init__.py +0 -0
  213. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/realworld/test_realworld.py +0 -0
  214. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/synthetic/__init__.py +0 -0
  215. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/synthetic/test_germline_segments.py +0 -0
  216. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/synthetic/test_locus_disambiguation.py +0 -0
  217. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/synthetic/test_synthetic.py +0 -0
  218. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/__init__.py +0 -0
  219. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_adapter.py +0 -0
  220. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_airr_out.py +0 -0
  221. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_cli.py +0 -0
  222. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_cluster.py +0 -0
  223. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_combinations.py +0 -0
  224. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_markup.py +0 -0
  225. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_mmseqs_fetch.py +0 -0
  226. {arda_mapper-2.0.2 → arda_mapper-2.0.3}/tests/unit/test_translate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: arda-mapper
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Antigen Receptor Domain Annotation — fast TCR/BCR FR/CDR region annotation
5
5
  Keywords: immunology,tcr,bcr,airr,igblast,mmseqs2,annotation
6
6
  Author-Email: Mikhail Shugay <mikhail.shugay@gmail.com>
@@ -37,6 +37,7 @@ Description-Content-Type: text/markdown
37
37
  <h1 align="center">arda — Antigen Receptor Domain Annotation</h1>
38
38
 
39
39
  <p align="center">
40
+ <a href="https://pypi.org/project/arda-mapper/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arda-mapper"></a>
40
41
  <a href="https://github.com/antigenomics/arda/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/antigenomics/arda/actions/workflows/ci.yml/badge.svg"></a>
41
42
  <a href="https://docs.isalgo.dev/arda/"><img alt="docs" src="https://github.com/antigenomics/arda/actions/workflows/docs.yml/badge.svg"></a>
42
43
  <img alt="python" src="https://img.shields.io/badge/python-3.10%2B-blue">
@@ -69,6 +70,13 @@ IgBLAST is the gold standard but is slow to invoke per-batch and awkward to embe
69
70
 
70
71
  ## Install
71
72
 
73
+ ```bash
74
+ pip install arda-mapper # from PyPI (imports as `arda`); binary wheels ship the C++ extension
75
+ ```
76
+
77
+ `mmseqs2` (the search backend) is fetched/managed by arda at runtime. For development — and to
78
+ get the committed germline references on disk — use `setup.sh`:
79
+
72
80
  ```bash
73
81
  bash setup.sh # creates conda env `arda`, fetches IgBLAST, pip install -e .
74
82
  conda activate arda
@@ -76,7 +84,8 @@ conda activate arda
76
84
 
77
85
  Flags: `--no-conda` (use the active env), `--build-db` (rebuild references after
78
86
  install), `--tests` (run the fast suites). The committed `database/vdj/<organism>/`
79
- references mean **most users never need to build anything**.
87
+ references mean **most users never need to build anything**; a `pip`-only install builds them
88
+ on first use (or set `$ARDA_HOME` to a checkout).
80
89
 
81
90
  Supported organisms: **human, mouse** (full IG + TR), **rat, rabbit, rhesus_monkey**
82
91
  (IG only — IgBLAST ships no TR internal annotation for these).
@@ -8,6 +8,7 @@
8
8
  <h1 align="center">arda — Antigen Receptor Domain Annotation</h1>
9
9
 
10
10
  <p align="center">
11
+ <a href="https://pypi.org/project/arda-mapper/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arda-mapper"></a>
11
12
  <a href="https://github.com/antigenomics/arda/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/antigenomics/arda/actions/workflows/ci.yml/badge.svg"></a>
12
13
  <a href="https://docs.isalgo.dev/arda/"><img alt="docs" src="https://github.com/antigenomics/arda/actions/workflows/docs.yml/badge.svg"></a>
13
14
  <img alt="python" src="https://img.shields.io/badge/python-3.10%2B-blue">
@@ -40,6 +41,13 @@ IgBLAST is the gold standard but is slow to invoke per-batch and awkward to embe
40
41
 
41
42
  ## Install
42
43
 
44
+ ```bash
45
+ pip install arda-mapper # from PyPI (imports as `arda`); binary wheels ship the C++ extension
46
+ ```
47
+
48
+ `mmseqs2` (the search backend) is fetched/managed by arda at runtime. For development — and to
49
+ get the committed germline references on disk — use `setup.sh`:
50
+
43
51
  ```bash
44
52
  bash setup.sh # creates conda env `arda`, fetches IgBLAST, pip install -e .
45
53
  conda activate arda
@@ -47,7 +55,8 @@ conda activate arda
47
55
 
48
56
  Flags: `--no-conda` (use the active env), `--build-db` (rebuild references after
49
57
  install), `--tests` (run the fast suites). The committed `database/vdj/<organism>/`
50
- references mean **most users never need to build anything**.
58
+ references mean **most users never need to build anything**; a `pip`-only install builds them
59
+ on first use (or set `$ARDA_HOME` to a checkout).
51
60
 
52
61
  Supported organisms: **human, mouse** (full IG + TR), **rat, rabbit, rhesus_monkey**
53
62
  (IG only — IgBLAST ships no TR internal annotation for these).
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
6
  name = "arda-mapper" # PyPI distribution name (`arda` is taken); imports as `arda`
7
- version = "2.0.2"
7
+ version = "2.0.3"
8
8
  description = "Antigen Receptor Domain Annotation — fast TCR/BCR FR/CDR region annotation"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -6,7 +6,7 @@ via offline IgBLAST-built references mapped at runtime with MMseqs2.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "2.0.1"
9
+ __version__ = "2.0.3"
10
10
 
11
11
  from .adapter import annotate_sequences # noqa: E402
12
12
 
@@ -0,0 +1,68 @@
1
+ """Auto-fetch the curated arda reference database (a GitHub release asset).
2
+
3
+ The wheel ships code only; the ~50 MB curated ``vdj/`` reference (allele FASTAs + region
4
+ markup, per species, AA + NT) is published as the ``arda-reference-vdj.tar.gz`` asset on the
5
+ matching ``vX.Y.Z`` GitHub release and downloaded once into the per-user cache on first use.
6
+ Version-sensitive precompiled mmseqs DBs are *not* shipped — they are built on demand from
7
+ the fetched FASTAs into ``<cache>/data``.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import os
13
+ import shutil
14
+ import sys
15
+ import tarfile
16
+ import tempfile
17
+ from pathlib import Path
18
+
19
+ from . import __version__
20
+ from ._mmseqs_fetch import _download # reuse the hardened UA/retry downloader
21
+
22
+ _ASSET = "arda-reference-vdj.tar.gz"
23
+ _URL = "https://github.com/antigenomics/arda/releases/download/v{version}/" + _ASSET
24
+
25
+
26
+ def reference_url(version: str | None = None) -> str:
27
+ """Release-asset URL for the reference tarball at ``version`` (default: this build)."""
28
+ return _URL.format(version=version or __version__)
29
+
30
+
31
+ def fetch_database(dest: Path, *, force: bool = False, version: str | None = None) -> Path:
32
+ """Download + extract the reference (``vdj/<org>/...``) into ``dest``; return ``dest``.
33
+
34
+ Skips the download if ``dest/vdj`` already exists (unless ``force``). Extraction rejects
35
+ symlinks/hardlinks and any path that escapes the temp dir (same guards as the mmseqs
36
+ fetch), then moves the ``vdj`` tree into place atomically-ish.
37
+ """
38
+ dest = Path(dest)
39
+ if (dest / "vdj").is_dir() and not force:
40
+ return dest
41
+ dest.mkdir(parents=True, exist_ok=True)
42
+ url = reference_url(version)
43
+ print(f"[arda] fetching reference database (one-time): {url}", file=sys.stderr)
44
+ with tempfile.TemporaryDirectory(prefix="arda_db_") as td:
45
+ tmp = Path(td)
46
+ tarball = tmp / _ASSET
47
+ _download(url, tarball)
48
+ with tarfile.open(tarball) as tf:
49
+ tmp_resolved = tmp.resolve()
50
+ for member in tf.getmembers():
51
+ if member.issym() or member.islnk():
52
+ raise RuntimeError(f"Refusing to extract link from archive: {member.name}")
53
+ member_path = (tmp / member.name).resolve()
54
+ if not str(member_path).startswith(str(tmp_resolved) + os.sep):
55
+ raise RuntimeError(f"Refusing to extract path outside temp dir: {member.name}")
56
+ tf.extractall(tmp)
57
+ # tarball root holds vdj/ (created with `tar -C database ... vdj`); tolerate a nested layout.
58
+ src = tmp / "vdj"
59
+ if not src.is_dir():
60
+ src = next((p for p in tmp.rglob("vdj") if p.is_dir()), None)
61
+ if src is None:
62
+ raise RuntimeError(f"Unexpected reference archive layout in {_ASSET} (no vdj/)")
63
+ target = dest / "vdj"
64
+ if target.exists():
65
+ shutil.rmtree(target)
66
+ shutil.move(str(src), str(target))
67
+ print(f"[arda] installed reference -> {dest}", file=sys.stderr)
68
+ return dest
@@ -0,0 +1,107 @@
1
+ """Filesystem layout discovery for arda.
2
+
3
+ Two modes, resolved transparently:
4
+
5
+ * **Source checkout** (``$ARDA_HOME`` or an editable/development install) — ``bin/``,
6
+ ``data/`` and ``database/`` live next to ``pyproject.toml``, exactly as committed.
7
+ * **PyPI install** (``pip install arda-mapper``, no source tree) — there is no bundled
8
+ ``database/`` in the wheel (it is 50+ MB of curated references), so everything lives under
9
+ a per-user cache (``$XDG_CACHE_HOME/arda`` or ``~/.cache/arda``). The curated reference is
10
+ **auto-fetched once** into the cache on first use (see :mod:`arda._database_fetch`), and
11
+ mmseqs target DBs are built there on demand. No ``ARDA_HOME`` needed.
12
+
13
+ Set ``$ARDA_NO_AUTO_FETCH`` to disable the one-time reference download (e.g. air-gapped
14
+ runs where the cache was pre-populated).
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import os
20
+ from functools import lru_cache
21
+ from pathlib import Path
22
+
23
+ __all__ = [
24
+ "project_root",
25
+ "cache_root",
26
+ "bin_dir",
27
+ "data_dir",
28
+ "database_dir",
29
+ "vdj_dir",
30
+ ]
31
+
32
+ _MARKERS = ("pyproject.toml", "setup.sh")
33
+ _REFERENCE_MARKER = "vdj" # database_dir()/vdj must exist for the reference to be usable
34
+
35
+
36
+ @lru_cache(maxsize=1)
37
+ def _source_root() -> Path | None:
38
+ """The source checkout root if this is a dev/editable install, else ``None``.
39
+
40
+ Honors ``$ARDA_HOME`` (must be a directory); otherwise walks up from this file looking
41
+ for a directory that has both ``database/`` and a project marker. Never raises for a
42
+ plain PyPI install — it simply returns ``None`` and the caller falls back to the cache.
43
+ """
44
+ env = os.environ.get("ARDA_HOME")
45
+ if env:
46
+ root = Path(env).expanduser().resolve()
47
+ if not root.is_dir():
48
+ raise RuntimeError(f"ARDA_HOME={env!r} is not a directory")
49
+ return root
50
+ here = Path(__file__).resolve()
51
+ for parent in here.parents:
52
+ if (parent / "database").is_dir() and any((parent / m).exists() for m in _MARKERS):
53
+ return parent
54
+ return None
55
+
56
+
57
+ @lru_cache(maxsize=1)
58
+ def cache_root() -> Path:
59
+ """Per-user cache root (``$XDG_CACHE_HOME/arda`` or ``~/.cache/arda``)."""
60
+ base = os.environ.get("XDG_CACHE_HOME")
61
+ root = (Path(base) if base else Path.home() / ".cache") / "arda"
62
+ root.mkdir(parents=True, exist_ok=True)
63
+ return root
64
+
65
+
66
+ @lru_cache(maxsize=1)
67
+ def project_root() -> Path:
68
+ """Source checkout root if present, else the per-user cache root.
69
+
70
+ Unlike older arda, this never raises: a PyPI install with no source tree resolves to the
71
+ cache dir, where the reference is auto-fetched and mmseqs DBs are built.
72
+ """
73
+ return _source_root() or cache_root()
74
+
75
+
76
+ def bin_dir() -> Path:
77
+ """Directory holding the downloaded mmseqs/IgBLAST binaries (gitignored / cached)."""
78
+ return project_root() / "bin"
79
+
80
+
81
+ def data_dir() -> Path:
82
+ """Writable scratch directory for downloads and built mmseqs DBs (gitignored / cached)."""
83
+ return project_root() / "data"
84
+
85
+
86
+ @lru_cache(maxsize=1)
87
+ def database_dir() -> Path:
88
+ """Curated reference database root.
89
+
90
+ Source checkout → the committed ``database/``. PyPI install → ``<cache>/database``, with
91
+ the reference auto-fetched on first call unless ``$ARDA_NO_AUTO_FETCH`` is set.
92
+ """
93
+ src = _source_root()
94
+ if src is not None:
95
+ return src / "database"
96
+ db = cache_root() / "database"
97
+ if not (db / _REFERENCE_MARKER).is_dir() and "ARDA_NO_AUTO_FETCH" not in os.environ:
98
+ from ._database_fetch import fetch_database
99
+
100
+ fetch_database(db)
101
+ return db
102
+
103
+
104
+ def vdj_dir(species: str | None = None) -> Path:
105
+ """``database/vdj`` (or a single species subdirectory)."""
106
+ base = database_dir() / "vdj"
107
+ return base / species if species else base
@@ -1,74 +0,0 @@
1
- """Filesystem layout discovery for arda.
2
-
3
- Resolves the locations of the project's ``bin/`` (downloaded IgBLAST release),
4
- ``data/`` (scratch/downloads), and ``database/`` (committed curated references).
5
-
6
- Resolution order for the project root:
7
-
8
- 1. ``$ARDA_HOME`` if set.
9
- 2. Walking up from this file to find a directory containing both ``database``
10
- and one of ``pyproject.toml`` / ``setup.sh`` (the editable-install / source case).
11
- """
12
-
13
- from __future__ import annotations
14
-
15
- import os
16
- from pathlib import Path
17
- from functools import lru_cache
18
-
19
- __all__ = [
20
- "project_root",
21
- "bin_dir",
22
- "data_dir",
23
- "database_dir",
24
- "vdj_dir",
25
- ]
26
-
27
- _MARKERS = ("pyproject.toml", "setup.sh")
28
-
29
-
30
- @lru_cache(maxsize=1)
31
- def project_root() -> Path:
32
- """Return the arda project root directory.
33
-
34
- Honors ``$ARDA_HOME``; otherwise searches parent directories for a source
35
- checkout. Raises ``RuntimeError`` if neither resolves.
36
- """
37
- env = os.environ.get("ARDA_HOME")
38
- if env:
39
- root = Path(env).expanduser().resolve()
40
- if not root.is_dir():
41
- raise RuntimeError(f"ARDA_HOME={env!r} is not a directory")
42
- return root
43
-
44
- here = Path(__file__).resolve()
45
- for parent in here.parents:
46
- if (parent / "database").is_dir() and any(
47
- (parent / m).exists() for m in _MARKERS
48
- ):
49
- return parent
50
- raise RuntimeError(
51
- "Could not locate the arda project root. Set $ARDA_HOME to the checkout "
52
- "directory (the one containing 'database/')."
53
- )
54
-
55
-
56
- def bin_dir() -> Path:
57
- """Directory holding the downloaded IgBLAST release (gitignored)."""
58
- return project_root() / "bin"
59
-
60
-
61
- def data_dir() -> Path:
62
- """Scratch directory for downloads and intermediate artifacts (gitignored)."""
63
- return project_root() / "data"
64
-
65
-
66
- def database_dir() -> Path:
67
- """Committed curated reference database root."""
68
- return project_root() / "database"
69
-
70
-
71
- def vdj_dir(species: str | None = None) -> Path:
72
- """``database/vdj`` (or a single species subdirectory)."""
73
- base = database_dir() / "vdj"
74
- return base / species if species else base
File without changes
File without changes
File without changes
File without changes