b2bTools 3.0.8b4__tar.gz → 3.0.9__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 (290) hide show
  1. b2btools-3.0.9/LICENSE.md +10 -0
  2. {b2btools-3.0.8b4 → b2btools-3.0.9}/MANIFEST.in +3 -1
  3. b2btools-3.0.9/PKG-INFO +472 -0
  4. b2btools-3.0.9/README.md +357 -0
  5. b2btools-3.0.9/b2bTools/__init__.py +60 -0
  6. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/Io.py +138 -162
  7. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/File.py +1 -1
  8. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/TagTable.py +3 -3
  9. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/Text.py +3 -3
  10. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/general/formatIO.py +5 -5
  11. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/coordinatesIO.py +4 -4
  12. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/csaIO.py +2 -2
  13. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/dihedralConstraintsIO.py +3 -3
  14. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/distanceConstraintsIO.py +8 -8
  15. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/hExchProtectionIO.py +3 -3
  16. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/hExchRateIO.py +3 -3
  17. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/jCouplingIO.py +6 -6
  18. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/orderParamIO.py +2 -2
  19. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/rdcConstraintsIO.py +10 -10
  20. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/rdcIO.py +4 -4
  21. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/t1RhoRelaxIO.py +3 -3
  22. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/util.py +3 -3
  23. b2btools-3.0.9/b2bTools/general/external_tools.py +74 -0
  24. b2btools-3.0.9/b2bTools/general/parsers/alignments.py +106 -0
  25. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/parsers/fasta.py +7 -5
  26. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/parsers/nef.py +3 -0
  27. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/parsers/nmr_star.py +5 -1
  28. b2btools-3.0.9/b2bTools/general/timing.py +154 -0
  29. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/msa_core.py +7 -0
  30. b2btools-3.0.9/b2bTools/nmr/shiftCrypt/__main__.py +319 -0
  31. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftCrypt.py +63 -79
  32. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/agmata.py +5 -11
  33. b2btools-3.0.9/b2bTools/singleSeq/Agmata/bin/agmata_c_final_linux_aarch64 +0 -0
  34. b2btools-3.0.9/b2bTools/singleSeq/Agmata/bin/agmata_c_final_mac_arm64 +0 -0
  35. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/sources/agmata_source.py +22 -4
  36. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/standalone.py +23 -13
  37. {b2btools-3.0.8b4/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx → b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64}/__init__.py +0 -0
  38. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64/chkparse +0 -0
  39. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64/psipass2 +0 -0
  40. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64/psipred +0 -0
  41. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64/seq2mtx +0 -0
  42. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64/chkparse +0 -0
  43. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64/psipass2 +0 -0
  44. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64/psipred +0 -0
  45. b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64/seq2mtx +0 -0
  46. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/runpsipred_single.py +46 -6
  47. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/Predictor.py +4 -2
  48. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/EFoldMine/Predictor.py +10 -1
  49. b2btools-3.0.9/b2bTools/singleSeq/PSPer/Constants.py +11 -0
  50. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/phase_transition_hmm.py +1 -1
  51. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/standalone.py +10 -17
  52. b2btools-3.0.9/b2bTools/web_predictor.py +58 -0
  53. b2btools-3.0.9/b2bTools/wrapper_source/__init__.py +0 -0
  54. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/wrapper_source/metadata.py +9 -1
  55. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/wrapper_source/wrapper_utils.py +140 -66
  56. b2btools-3.0.9/b2bTools.egg-info/PKG-INFO +472 -0
  57. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools.egg-info/SOURCES.txt +18 -0
  58. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools.egg-info/entry_points.txt +1 -0
  59. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools.egg-info/requires.txt +20 -5
  60. b2btools-3.0.9/b2bTools_version/__init__.py +0 -0
  61. b2btools-3.0.9/b2bTools_version/versioning.py +2 -0
  62. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py310.txt +0 -1
  63. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py311.txt +0 -1
  64. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py312.txt +0 -1
  65. b2btools-3.0.9/requirements-py313.txt +8 -0
  66. b2btools-3.0.9/requirements-py314.txt +8 -0
  67. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py38.txt +0 -1
  68. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py39.txt +0 -1
  69. {b2btools-3.0.8b4 → b2btools-3.0.9}/setup.py +20 -8
  70. b2btools-3.0.8b4/PKG-INFO +0 -1006
  71. b2btools-3.0.8b4/README.md +0 -906
  72. b2btools-3.0.8b4/b2bTools/__init__.py +0 -1
  73. b2btools-3.0.8b4/b2bTools/general/parsers/alignments.py +0 -97
  74. b2btools-3.0.8b4/b2bTools/singleSeq/PSPer/Constants.py +0 -19
  75. b2btools-3.0.8b4/b2bTools/web_predictor.py +0 -44
  76. b2btools-3.0.8b4/b2bTools.egg-info/PKG-INFO +0 -1006
  77. b2btools-3.0.8b4/b2bTools_version/versioning.py +0 -2
  78. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/__main__.py +0 -0
  79. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/Util.py +0 -0
  80. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/__init__.py +0 -0
  81. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/SaveFrame.py +0 -0
  82. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/Utils.py +0 -0
  83. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/__init__.py +0 -0
  84. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/bmrb/base.py +0 -0
  85. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/__init__.py +0 -0
  86. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/__init__.py +0 -0
  87. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/general/Constants.py +0 -0
  88. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/general/Util.py +0 -0
  89. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/general/__init__.py +0 -0
  90. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/__init__.py +0 -0
  91. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/chemShiftsIO.py +0 -0
  92. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/constants.py +0 -0
  93. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/generalIO.py +0 -0
  94. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/hBondConstraintsIO.py +0 -0
  95. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/hetNoeIO.py +0 -0
  96. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/nmrStarDict.py +0 -0
  97. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/peopleAndCitationsIO.py +0 -0
  98. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/projectIO.py +0 -0
  99. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/sequenceIO.py +0 -0
  100. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/t1RelaxIO.py +0 -0
  101. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/format/nmrStar/t2RelaxIO.py +0 -0
  102. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/general/Constants.py +0 -0
  103. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/general/__init__.py +0 -0
  104. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/universal/Constants.py +0 -0
  105. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/universal/Io.py +0 -0
  106. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/universal/Util.py +0 -0
  107. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/ccpn/universal/__init__.py +0 -0
  108. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/parsers/__init__.py +0 -0
  109. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/general/plotter.py +0 -0
  110. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/Predictor.py +0 -0
  111. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/__init__.py +0 -0
  112. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/mapToMSA.py +0 -0
  113. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/msa_plot.py +0 -0
  114. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/multipleSeq/msa_quantification.py +0 -0
  115. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/__init__.py +0 -0
  116. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/Predictor.py +0 -0
  117. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/__init__.py +0 -0
  118. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/alignment.py +0 -0
  119. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/__init__.py +0 -0
  120. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_NH.mtorch +0 -0
  121. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_NH_p27.mtorch +0 -0
  122. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_NH_p37.mtorch +0 -0
  123. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_commons.mtorch +0 -0
  124. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_commons_p27.mtorch +0 -0
  125. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_commons_p37.mtorch +0 -0
  126. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_full.mtorch +0 -0
  127. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_full_p27.mtorch +0 -0
  128. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/models/new_full_p37.mtorch +0 -0
  129. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/__init__.py +0 -0
  130. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/autoenc_solo4.py +0 -0
  131. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/autoenchoder_standalone_version.py +0 -0
  132. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/chemical_shifts_custom_model.py +0 -0
  133. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/parser.py +0 -0
  134. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/shiftcrypt_parser.py +0 -0
  135. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/nmr/shiftCrypt/shiftcrypt_pkg/utils.py +0 -0
  136. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/requirements-dev.txt +0 -0
  137. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/requirements.txt +0 -0
  138. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/Predictor.py +0 -0
  139. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/__init__.py +0 -0
  140. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/bin/__init__.py +0 -0
  141. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/bin/agmata_c_final_linux +0 -0
  142. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/bin/agmata_c_final_mac +0 -0
  143. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/marshalled/__init__.py +0 -0
  144. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/marshalled/agmata_discriminative_converted.m +0 -0
  145. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/marshalled/discriminative.m +0 -0
  146. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/marshalled/model_parameters.m +0 -0
  147. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Agmata/sources/__init__.py +0 -0
  148. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/Predictor.py +0 -0
  149. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/__init__.py +0 -0
  150. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/disomine_converted.mtorch +0 -0
  151. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/gru80_final.mtorch +0 -0
  152. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/torch_NN_gru_80AUC_prova.py +0 -0
  153. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/.DS_Store +0 -0
  154. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/__init__.py +0 -0
  155. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/.DS_Store +0 -0
  156. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/__init__.py +0 -0
  157. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/__init__.py +0 -0
  158. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/__init__.py +0 -0
  159. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/chkparse +0 -0
  160. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/psipass2 +0 -0
  161. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/psipred +0 -0
  162. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/seq2mtx +0 -0
  163. {b2btools-3.0.8b4/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data → b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx}/__init__.py +0 -0
  164. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx/chkparse +0 -0
  165. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx/psipass2 +0 -0
  166. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx/psipred +0 -0
  167. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx/seq2mtx +0 -0
  168. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine → b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64}/__init__.py +0 -0
  169. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models → b2btools-3.0.9/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data}/__init__.py +0 -0
  170. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights.dat +0 -0
  171. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights.dat2 +0 -0
  172. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights.dat3 +0 -0
  173. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights_p2.dat +0 -0
  174. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights_s.dat +0 -0
  175. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights_s.dat2 +0 -0
  176. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/weights_s.dat3 +0 -0
  177. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DisoMine/vector_builder/vettore_gen.py +0 -0
  178. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/backbone → b2btools-3.0.9/b2bTools/singleSeq/DynaMine}/__init__.py +0 -0
  179. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/coil → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models}/__init__.py +0 -0
  180. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/README.txt +0 -0
  181. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/helix → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/backbone}/__init__.py +0 -0
  182. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read11.model.pkl.bz2 +0 -0
  183. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read13.model.pkl.bz2 +0 -0
  184. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read15.model.pkl.bz2 +0 -0
  185. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read17.model.pkl.bz2 +0 -0
  186. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read19.model.pkl.bz2 +0 -0
  187. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read21.model.pkl.bz2 +0 -0
  188. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read23.model.pkl.bz2 +0 -0
  189. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read25.model.pkl.bz2 +0 -0
  190. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read3.model.pkl.bz2 +0 -0
  191. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read5.model.pkl.bz2 +0 -0
  192. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read51.model.pkl.bz2 +0 -0
  193. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read7.model.pkl.bz2 +0 -0
  194. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/backbone/read9.model.pkl.bz2 +0 -0
  195. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/ppII → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/coil}/__init__.py +0 -0
  196. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read11.model_new.pkl.bz2 +0 -0
  197. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read13.model_new.pkl.bz2 +0 -0
  198. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read15.model_new.pkl.bz2 +0 -0
  199. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read17.model_new.pkl.bz2 +0 -0
  200. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read19.model_new.pkl.bz2 +0 -0
  201. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read25.model_new.pkl.bz2 +0 -0
  202. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read3.model_new.pkl.bz2 +0 -0
  203. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read38.model_new.pkl.bz2 +0 -0
  204. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read5.model_new.pkl.bz2 +0 -0
  205. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read51.model_new.pkl.bz2 +0 -0
  206. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read7.model_new.pkl.bz2 +0 -0
  207. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/coil/read9.model_new.pkl.bz2 +0 -0
  208. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/sheet → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/helix}/__init__.py +0 -0
  209. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read11.model_new.pkl.bz2 +0 -0
  210. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read13.model_new.pkl.bz2 +0 -0
  211. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read15.model_new.pkl.bz2 +0 -0
  212. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read17.model_new.pkl.bz2 +0 -0
  213. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read19.model_new.pkl.bz2 +0 -0
  214. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read25.model_new.pkl.bz2 +0 -0
  215. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read3.model_new.pkl.bz2 +0 -0
  216. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read38.model_new.pkl.bz2 +0 -0
  217. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read5.model_new.pkl.bz2 +0 -0
  218. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read51.model_new.pkl.bz2 +0 -0
  219. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read7.model_new.pkl.bz2 +0 -0
  220. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/helix/read9.model_new.pkl.bz2 +0 -0
  221. {b2btools-3.0.8b4/b2bTools/singleSeq/DynaMine/models/sidechain → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/ppII}/__init__.py +0 -0
  222. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read11.model_new.pkl.bz2 +0 -0
  223. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read13.model_new.pkl.bz2 +0 -0
  224. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read15.model_new.pkl.bz2 +0 -0
  225. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read17.model_new.pkl.bz2 +0 -0
  226. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read19.model_new.pkl.bz2 +0 -0
  227. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read25.model_new.pkl.bz2 +0 -0
  228. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read3.model_new.pkl.bz2 +0 -0
  229. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read38.model_new.pkl.bz2 +0 -0
  230. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read5.model_new.pkl.bz2 +0 -0
  231. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read51.model_new.pkl.bz2 +0 -0
  232. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read7.model_new.pkl.bz2 +0 -0
  233. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/ppII/read9.model_new.pkl.bz2 +0 -0
  234. {b2btools-3.0.8b4/b2bTools/singleSeq/EFoldMine → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/sheet}/__init__.py +0 -0
  235. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read11.model_new.pkl.bz2 +0 -0
  236. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read13.model_new.pkl.bz2 +0 -0
  237. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read15.model_new.pkl.bz2 +0 -0
  238. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read17.model_new.pkl.bz2 +0 -0
  239. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read19.model_new.pkl.bz2 +0 -0
  240. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read25.model_new.pkl.bz2 +0 -0
  241. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read3.model_new.pkl.bz2 +0 -0
  242. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read38.model_new.pkl.bz2 +0 -0
  243. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read5.model_new.pkl.bz2 +0 -0
  244. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read51.model_new.pkl.bz2 +0 -0
  245. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read7.model_new.pkl.bz2 +0 -0
  246. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sheet/read9.model_new.pkl.bz2 +0 -0
  247. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/README.txt +0 -0
  248. {b2btools-3.0.8b4/b2bTools/singleSeq/EFoldMine/models → b2btools-3.0.9/b2bTools/singleSeq/DynaMine/models/sidechain}/__init__.py +0 -0
  249. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read11.model.pkl.bz2 +0 -0
  250. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read13.model.pkl.bz2 +0 -0
  251. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read15.model.pkl.bz2 +0 -0
  252. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read17.model.pkl.bz2 +0 -0
  253. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read19.model.pkl.bz2 +0 -0
  254. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read21.model.pkl.bz2 +0 -0
  255. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read23.model.pkl.bz2 +0 -0
  256. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read25.model.pkl.bz2 +0 -0
  257. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read3.model.pkl.bz2 +0 -0
  258. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read5.model.pkl.bz2 +0 -0
  259. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read51.model.pkl.bz2 +0 -0
  260. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read7.model.pkl.bz2 +0 -0
  261. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/DynaMine/models/sidechain/read9.model.pkl.bz2 +0 -0
  262. {b2btools-3.0.8b4/b2bTools/singleSeq/PSPer → b2btools-3.0.9/b2bTools/singleSeq/EFoldMine}/__init__.py +0 -0
  263. {b2btools-3.0.8b4/b2bTools/singleSeq/PSPer/hmmer_research → b2btools-3.0.9/b2bTools/singleSeq/EFoldMine/models}/__init__.py +0 -0
  264. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/EFoldMine/models/efModelRBF2016.proba.cPickle +0 -0
  265. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/EFoldMine/models/efoldmine_converted.cPickle +0 -0
  266. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/PSPer.py +0 -0
  267. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/Predictor.py +0 -0
  268. {b2btools-3.0.8b4/b2bTools/singleSeq/PSPer/marshalled → b2btools-3.0.9/b2bTools/singleSeq/PSPer}/__init__.py +0 -0
  269. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/_numpy_hmm.py +0 -0
  270. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/hmmer_research/PF00270_DEAD_seed.txt +0 -0
  271. {b2btools-3.0.8b4/b2bTools/singleSeq/PSPer/source → b2btools-3.0.9/b2bTools/singleSeq/PSPer/hmmer_research}/__init__.py +0 -0
  272. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/hmmer_research/hmmsearch_otf.py +0 -0
  273. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/hmmer_research/phase_trans.hmm +0 -0
  274. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/hmmer_research/rrm_align.pfam +0 -0
  275. {b2btools-3.0.8b4/b2bTools/singleSeq → b2btools-3.0.9/b2bTools/singleSeq/PSPer/marshalled}/__init__.py +0 -0
  276. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/marshalled/emissions.m +0 -0
  277. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/marshalled/scaler.m +0 -0
  278. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/marshalled/scaler_new.m +0 -0
  279. {b2btools-3.0.8b4/b2bTools/wrapper_source → b2btools-3.0.9/b2bTools/singleSeq/PSPer/source}/__init__.py +0 -0
  280. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/source/utils.py +0 -0
  281. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/PSPer/torch_NN_gru_80AUC_prova.py +0 -0
  282. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/Predictor.py +0 -0
  283. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/README.md +0 -0
  284. {b2btools-3.0.8b4/b2bTools_version → b2btools-3.0.9/b2bTools/singleSeq}/__init__.py +0 -0
  285. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/constants.py +0 -0
  286. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools/singleSeq/single_core.py +0 -0
  287. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools.egg-info/dependency_links.txt +0 -0
  288. {b2btools-3.0.8b4 → b2btools-3.0.9}/b2bTools.egg-info/top_level.txt +0 -0
  289. {b2btools-3.0.8b4 → b2btools-3.0.9}/requirements-py37.txt +0 -0
  290. {b2btools-3.0.8b4 → b2btools-3.0.9}/setup.cfg +0 -0
@@ -0,0 +1,10 @@
1
+ The MIT License (MIT)
2
+ =====================
3
+
4
+ Copyright © 2021 Wim Vranken, Bio2Byte group, VUB. https://bio2byte.be
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -10,6 +10,8 @@ include b2bTools/singleSeq/DisoMine/vector_builder/*
10
10
  include b2bTools/singleSeq/DisoMine/vector_builder/psipred/*
11
11
  include b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux/*
12
12
  include b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx/*
13
+ include b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/linux_aarch64/*
14
+ include b2bTools/singleSeq/DisoMine/vector_builder/psipred/bin/osx_arm64/*
13
15
  include b2bTools/singleSeq/DisoMine/vector_builder/psipred/data/*
14
16
  include b2bTools/singleSeq/DynaMine/*
15
17
  include b2bTools/singleSeq/DynaMine/models/*
@@ -32,6 +34,7 @@ include b2bTools/nmr/shiftCrypt/models/new_commons.mtorch
32
34
  include b2bTools/nmr/shiftCrypt/models/new_full.mtorch
33
35
  include b2bTools/nmr/shiftCrypt/models/new_NH.mtorch
34
36
  include README.md
37
+ include LICENSE.md
35
38
  include setup.py
36
39
 
37
40
  exclude b2bTools/.gitignore
@@ -46,5 +49,4 @@ exclude b2bTools/singleSeq/DisoMine/vector_builder/psipred/README
46
49
  exclude b2bTools/run/*
47
50
  exclude b2bTools/run/input_examples/*
48
51
  exclude b2bTools/run/out/*
49
- exclude b2bTools/test.py
50
52
  exclude test*.py
@@ -0,0 +1,472 @@
1
+ Metadata-Version: 2.4
2
+ Name: b2bTools
3
+ Version: 3.0.9
4
+ Summary: bio2Byte software suite to predict protein biophysical properties from their amino-acid sequences
5
+ Home-page: https://bio2byte.be
6
+ Author: Wim Vranken
7
+ Author-email: Wim.Vranken@vub.be
8
+ Maintainer: Adrián Díaz, Sophie-Luise Heidig, Wim Vranken
9
+ Maintainer-email: bio2byte@vub.be
10
+ License: OSI Approved :: GNU General Public License v3 (GPLv3)
11
+ Project-URL: Documentation, https://bio2byte.be/b2btools/package-documentation
12
+ Project-URL: HTML interface, https://bio2byte.be/online_predictors
13
+ Keywords: bio2byte,b2bTools,biology,bioinformatics,bio-informatics,fasta,proteins,protein-folding
14
+ Classifier: Natural Language :: English
15
+ Classifier: Programming Language :: Python :: 3.7
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
24
+ Classifier: Operating System :: MacOS
25
+ Classifier: Operating System :: POSIX :: Linux
26
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
27
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
28
+ Classifier: Topic :: Scientific/Engineering :: Physics
29
+ Classifier: Intended Audience :: Science/Research
30
+ Classifier: Intended Audience :: Education
31
+ Classifier: Development Status :: 5 - Production/Stable
32
+ Requires-Python: >=3.7, <3.15
33
+ Description-Content-Type: text/markdown
34
+ License-File: LICENSE.md
35
+ Requires-Dist: biopython~=1.79; python_version == "3.7"
36
+ Requires-Dist: matplotlib~=3.5; python_version == "3.7"
37
+ Requires-Dist: numpy~=1.21; python_version == "3.7"
38
+ Requires-Dist: pandas~=1.1; python_version == "3.7"
39
+ Requires-Dist: requests~=2.0; python_version == "3.7"
40
+ Requires-Dist: scikit-learn~=1.0.2; python_version == "3.7"
41
+ Requires-Dist: scipy~=1.7.3; python_version == "3.7"
42
+ Requires-Dist: torch~=1.13.0; python_version == "3.7"
43
+ Requires-Dist: urllib3~=1.26.6; python_version == "3.7"
44
+ Requires-Dist: biopython~=1.81; python_version == "3.8"
45
+ Requires-Dist: matplotlib~=3.5; python_version == "3.8"
46
+ Requires-Dist: numpy~=1.24; python_version == "3.8"
47
+ Requires-Dist: pandas<2,~=1.1; python_version == "3.8"
48
+ Requires-Dist: requests~=2.0; python_version == "3.8"
49
+ Requires-Dist: scikit-learn~=1.0.2; python_version == "3.8"
50
+ Requires-Dist: scipy~=1.10.1; python_version == "3.8"
51
+ Requires-Dist: torch~=1.13; python_version == "3.8"
52
+ Requires-Dist: biopython~=1.81; python_version == "3.9"
53
+ Requires-Dist: matplotlib~=3.9.4; python_version == "3.9"
54
+ Requires-Dist: numpy~=1.24; python_version == "3.9"
55
+ Requires-Dist: pandas<2,~=1.1; python_version == "3.9"
56
+ Requires-Dist: requests~=2.0; python_version == "3.9"
57
+ Requires-Dist: scikit-learn~=1.0.2; python_version == "3.9"
58
+ Requires-Dist: scipy~=1.10.1; python_version == "3.9"
59
+ Requires-Dist: torch~=1.13; python_version == "3.9"
60
+ Requires-Dist: biopython~=1.83; python_version == "3.10"
61
+ Requires-Dist: matplotlib~=3.5; python_version == "3.10"
62
+ Requires-Dist: numpy~=1.26.4; python_version == "3.10"
63
+ Requires-Dist: pandas~=2.0; python_version == "3.10"
64
+ Requires-Dist: requests~=2.31; python_version == "3.10"
65
+ Requires-Dist: scikit-learn~=1.0.2; python_version == "3.10"
66
+ Requires-Dist: scipy~=1.12.0; python_version == "3.10"
67
+ Requires-Dist: torch~=1.13; python_version == "3.10"
68
+ Requires-Dist: biopython~=1.83; python_version == "3.11"
69
+ Requires-Dist: matplotlib~=3.8; python_version == "3.11"
70
+ Requires-Dist: numpy~=1.26.4; python_version == "3.11"
71
+ Requires-Dist: pandas~=2.0; python_version == "3.11"
72
+ Requires-Dist: requests~=2.31; python_version == "3.11"
73
+ Requires-Dist: scikit-learn~=1.1.0; python_version == "3.11"
74
+ Requires-Dist: scipy~=1.12.0; python_version == "3.11"
75
+ Requires-Dist: torch~=2.2.0; python_version == "3.11"
76
+ Requires-Dist: biopython~=1.87.0; python_version == "3.12"
77
+ Requires-Dist: matplotlib~=3.10.9; python_version == "3.12"
78
+ Requires-Dist: numpy~=1.26.0; python_version == "3.12"
79
+ Requires-Dist: pandas~=2.2.3; python_version == "3.12"
80
+ Requires-Dist: requests~=2.33.1; python_version == "3.12"
81
+ Requires-Dist: scikit-learn~=1.4.0; python_version == "3.12"
82
+ Requires-Dist: scipy~=1.12.0; python_version == "3.12"
83
+ Requires-Dist: torch~=2.2.2; python_version == "3.12"
84
+ Requires-Dist: biopython~=1.88; python_version == "3.13"
85
+ Requires-Dist: matplotlib~=3.11; python_version == "3.13"
86
+ Requires-Dist: numpy~=2.5; python_version == "3.13"
87
+ Requires-Dist: pandas~=3.0; python_version == "3.13"
88
+ Requires-Dist: requests~=2.32; python_version == "3.13"
89
+ Requires-Dist: scikit-learn~=1.9; python_version == "3.13"
90
+ Requires-Dist: scipy~=1.18; python_version == "3.13"
91
+ Requires-Dist: torch~=2.14; python_version == "3.13"
92
+ Requires-Dist: biopython~=1.88; python_version == "3.14"
93
+ Requires-Dist: matplotlib~=3.11; python_version == "3.14"
94
+ Requires-Dist: numpy~=2.5; python_version == "3.14"
95
+ Requires-Dist: pandas~=3.0; python_version == "3.14"
96
+ Requires-Dist: requests~=2.32; python_version == "3.14"
97
+ Requires-Dist: scikit-learn~=1.9; python_version == "3.14"
98
+ Requires-Dist: scipy~=1.18; python_version == "3.14"
99
+ Requires-Dist: torch~=2.14; python_version == "3.14"
100
+ Dynamic: author
101
+ Dynamic: author-email
102
+ Dynamic: classifier
103
+ Dynamic: description
104
+ Dynamic: description-content-type
105
+ Dynamic: home-page
106
+ Dynamic: keywords
107
+ Dynamic: license
108
+ Dynamic: license-file
109
+ Dynamic: maintainer
110
+ Dynamic: maintainer-email
111
+ Dynamic: project-url
112
+ Dynamic: requires-dist
113
+ Dynamic: requires-python
114
+ Dynamic: summary
115
+
116
+ # b2bTools
117
+
118
+ `b2bTools` is the Bio2Byte Python package for predicting biophysical properties
119
+ from protein sequences and multiple-sequence alignments. It also provides
120
+ lightweight readers for FASTA, alignment, NEF, and NMR-STAR files.
121
+
122
+ > **ELIXIR Belgium infrastructure**
123
+ > b2bTools is an ELIXIR Belgium Core Service. Explore the
124
+ > [ELIXIR Belgium services](https://elixir-belgium.org/services).
125
+
126
+ ## Installation
127
+
128
+ Install the package with `python -m pip install b2bTools`.
129
+
130
+ Supported Python versions are 3.7 through 3.14 (`>=3.7, <3.15`).
131
+
132
+ Optional external tools are required only for particular workflows:
133
+
134
+ - [HMMER](http://hmmer.org) is required for PSPer.
135
+ - [T-Coffee](https://tcoffee.crg.eu) is required when b2bTools creates an
136
+ alignment from two input sequence files.
137
+
138
+ Two commands are installed: `b2bTools` for sequence-based predictors, and
139
+ `shiftcrypt` for NMR chemical-shift input.
140
+
141
+ <!-- docs-test: cli-help -->
142
+ ```console
143
+ python -m b2bTools --help
144
+ ```
145
+
146
+ <!-- docs-test: shiftcrypt-cli-help -->
147
+ ```console
148
+ python -m b2bTools.nmr.shiftCrypt --help
149
+ ```
150
+
151
+ ## Choose a workflow
152
+
153
+ | Input | Entry point | Use it for |
154
+ | --- | --- | --- |
155
+ | One or more unaligned protein sequences | `SingleSeq` | Per-residue predictions from FASTA input. |
156
+ | A multiple-sequence alignment | `MultipleSeq` | Predictions mapped to an existing alignment. |
157
+ | NMR chemical shifts | `ShiftCrypt` | Residue-level biophysical indices from NEF or NMR-STAR data. |
158
+ | File parsing only | `b2bTools.general.parsers` | Reading supported formats without importing predictor models. |
159
+
160
+ ## Quick start
161
+
162
+ ### Predict properties for a FASTA file
163
+
164
+ Create a FASTA file named `proteins.fasta`, then run DynaMine and write its
165
+ results as JSON. Add other predictor constants from the reference table below
166
+ when needed.
167
+
168
+ <!-- docs-test: single-sequence -->
169
+ ```python
170
+ from pathlib import Path
171
+ import json
172
+
173
+ from b2bTools import SingleSeq, constants
174
+
175
+ input_fasta = Path("proteins.fasta")
176
+ predictor = SingleSeq(str(input_fasta), short_id=False)
177
+ predictor.predict(tools=[constants.TOOL_DYNAMINE])
178
+
179
+ results = predictor.get_all_predictions()
180
+ Path("predictions.json").write_text(json.dumps(results, indent=2), encoding="utf-8")
181
+ ```
182
+
183
+ `results["proteins"]` maps each sequence identifier to its per-residue values.
184
+ `results["metadata"]` records the requested tools and package metadata. Use
185
+ `get_all_predictions_tabular(path, sep=",")` for CSV or
186
+ `get_all_predictions_tabular(path, sep="\t")` for TSV output.
187
+
188
+ ### Predict properties for an existing alignment
189
+
190
+ Use an existing, aligned FASTA file when the relationship between residues must
191
+ be preserved across sequences.
192
+
193
+ <!-- docs-test: multiple-sequence -->
194
+ ```python
195
+ from pathlib import Path
196
+
197
+ from b2bTools import MultipleSeq, constants
198
+
199
+ input_alignment = Path("alignment.fasta")
200
+ predictor = MultipleSeq()
201
+ predictor.from_aligned_file(str(input_alignment), tools=[constants.TOOL_DYNAMINE])
202
+
203
+ results = predictor.get_all_predictions_msa()
204
+ ```
205
+
206
+ `results["proteins"]` contains the aligned prediction values. To select one
207
+ sequence, pass its identifier to `get_all_predictions_msa(sequence_key)`.
208
+
209
+ ## Predictor reference
210
+
211
+ | Predictor | Constant | Produces |
212
+ | --- | --- | --- |
213
+ | DynaMine | `constants.TOOL_DYNAMINE` | Backbone and side-chain dynamics; helix, sheet, coil, and polyproline-II propensities. |
214
+ | EFoldMine | `constants.TOOL_EFOLDMINE` | Early-folding propensity. |
215
+ | DisoMine | `constants.TOOL_DISOMINE` | Disorder propensity. |
216
+ | AgMata | `constants.TOOL_AGMATA` | Beta-aggregation propensity. |
217
+ | PSPer | `constants.TOOL_PSP` | Phase-separation features and a protein-level score. |
218
+
219
+ Dependencies are resolved automatically. For example, requesting PSPer also
220
+ runs the predictors whose outputs it requires. Runtime depends on the selected
221
+ tools, sequence lengths, and the number of sequences.
222
+
223
+ ## Understanding prediction outputs
224
+
225
+ The prediction APIs preserve positional correspondence: element *n* in a
226
+ per-residue prediction list describes `residue_index` *n*. This makes the JSON
227
+ results suitable for programmatic analysis and the tabular exports suitable for
228
+ spreadsheets and statistical tools.
229
+
230
+ ### JSON result structure
231
+
232
+ `SingleSeq.get_all_predictions()` returns `proteins` and `metadata`.
233
+ `proteins` maps each sequence identifier to its sequence and prediction lists;
234
+ `metadata` records the requested tools and package information. For an existing
235
+ alignment, `MultipleSeq.get_all_predictions_msa()` returns `proteins` together
236
+ with `sequences`, which retains the aligned sequence (including gap positions)
237
+ for every identifier.
238
+
239
+ Every numeric prediction key contains one value per residue or aligned
240
+ position. `viterbi` is the exception: it contains PSPer's categorical state
241
+ labels. A value can be `null` when a property was not calculated for that
242
+ position, for example at an alignment gap.
243
+
244
+ ### Per-residue CSV and TSV columns
245
+
246
+ `get_all_predictions_tabular(path, sep=",")` writes a CSV file; pass
247
+ `sep="\t"` for TSV. Each row represents one sequence position. Numeric values
248
+ are rounded to three decimal places in this export.
249
+
250
+ | Column | Meaning | Type in the table |
251
+ | --- | --- | --- |
252
+ | `sequence_id` | Identifier of the input sequence. | Text |
253
+ | `residue` | One-letter residue code. In an MSA export, this can be the gap character `-`. | Text |
254
+ | `residue_index` | Zero-based position in the sequence or alignment. | Integer |
255
+ | Prediction key | Value for the property described below. A blank cell means that the predictor was not selected or no value is available at that position. | Numeric, except `viterbi` |
256
+
257
+ The following keys are included as prediction columns. Their JSON values are
258
+ ordered lists; in the CSV or TSV, each list is expanded into its corresponding
259
+ residue row.
260
+
261
+ | Predictor | Output keys | Value type |
262
+ | --- | --- | --- |
263
+ | DynaMine | `backbone`, `sidechain`, `ppII`, `coil`, `sheet`, `helix` | Numeric per residue |
264
+ | EFoldMine | `earlyFolding` | Numeric per residue |
265
+ | DisoMine | `disoMine` | Numeric per residue |
266
+ | AgMata | `agmata` | Numeric per residue |
267
+ | PSPer | `complexity`, `arg`, `tyr`, `RRM`, `disorder` | Numeric per residue |
268
+ | PSPer | `viterbi` | Categorical state per residue |
269
+
270
+ PSPer also supplies `protein_score`, a single score for the complete protein.
271
+ It is available in the JSON result and metadata statistics rather than as a
272
+ per-residue column.
273
+
274
+ ### MSA distribution outputs
275
+
276
+ `MultipleSeq.get_all_predictions_msa_distrib()` summarises the numeric
277
+ predictions across sequences at every alignment position. Its `results` value
278
+ is organised as `prediction_key` → `summary_name` → ordered values. Use
279
+ `get_msa_distrib_tabular(path, sep=",")` to write the same data as columns
280
+ named `prediction_key_summary_name`, alongside the zero-based
281
+ `residue_index`.
282
+
283
+ | Summary name | Meaning at each alignment position |
284
+ | --- | --- |
285
+ | `median` | Median of available numeric values. |
286
+ | `firstQuartile` | 25th percentile. |
287
+ | `thirdQuartile` | 75th percentile. |
288
+ | `bottomOutlier` | Lower outlier boundary: first quartile minus 1.5 times the interquartile range. |
289
+ | `topOutlier` | Upper outlier boundary: third quartile plus 1.5 times the interquartile range. |
290
+
291
+ `viterbi` is categorical, so it is intentionally excluded from MSA distribution
292
+ statistics. When an alignment column has no numeric values, all of its summary
293
+ values are `null` (or blank in the tabular export).
294
+
295
+ ## File-parser reference
296
+
297
+ The parser modules are safe to import in services that do not need PyTorch or
298
+ other predictor-model dependencies.
299
+
300
+ ### FASTA
301
+
302
+ `FastaIO.read_fasta_from_file` and `FastaIO.read_fasta_from_string` return a
303
+ list of `(sequence_id, sequence)` pairs. By default, `short_id=False` retains
304
+ the complete header, collapses whitespace to `_`, and sanitises spaces, full
305
+ stops, vertical bars, and commas. Pass `short_id=True` to use the first header
306
+ token, capped at 20 characters.
307
+
308
+ <!-- docs-test: fasta-parser -->
309
+ ```python
310
+ from pathlib import Path
311
+
312
+ from b2bTools.general.parsers.fasta import FastaIO
313
+
314
+ records = FastaIO.read_fasta_from_file(Path("proteins.fasta"), short_id=False)
315
+ for sequence_id, sequence in records:
316
+ print(sequence_id, len(sequence))
317
+ ```
318
+
319
+ ### Alignments
320
+
321
+ `AlignmentsIO` reads FASTA, A3M, BLAST, BaliBase, CLUSTAL, PSI, PHYLIP, and
322
+ Stockholm alignments. Each `read_alignments*` method returns a dictionary that
323
+ maps sequence identifiers to aligned sequences.
324
+
325
+ `short_id=False` is the default. Where the format provides a complete header,
326
+ the parser retains it with whitespace collapsed to `_`; `short_id=True` uses
327
+ the first header token capped at 20 characters. Write helpers and NMR readers
328
+ do not take `short_id` because they do not derive sequence identifiers from
329
+ FASTA-style headers.
330
+
331
+ <!-- docs-test: alignment-parser -->
332
+ ```python
333
+ from pathlib import Path
334
+
335
+ from b2bTools.general.parsers.alignments import AlignmentsIO
336
+
337
+ alignment = AlignmentsIO.read_alignments("alignment.fasta", short_id=False)
338
+ for sequence_id, aligned_sequence in alignment.items():
339
+ print(sequence_id, len(aligned_sequence))
340
+ ```
341
+
342
+ ### NEF and NMR-STAR
343
+
344
+ `NefIO` reads NEF projects and sequence/chemical-shift data. `NMRStarIO`
345
+ provides the equivalent NMR-STAR readers. Neither API uses `short_id`.
346
+
347
+ <!-- docs-test: nef-parser -->
348
+ ```python
349
+ from pathlib import Path
350
+
351
+ from b2bTools.general.parsers.nef import NefIO
352
+
353
+ sequence_shifts = NefIO.read_nef_file_sequence_shifts(Path("example.nef"))
354
+ print(sequence_shifts.keys())
355
+ ```
356
+
357
+ ## ShiftCrypt
358
+
359
+ Use ShiftCrypt when your input contains NMR chemical shifts. It accepts either
360
+ of the following formats, provided the file includes a polymer sequence and
361
+ assigned chemical shifts:
362
+
363
+ - **NEF** (NMR Exchange Format): use `parse_official(path)`, which is the
364
+ default input mode.
365
+ - **NMR-STAR**: use `parse_official(path, is_star=True)` for BMRB archive
366
+ entries and other NMR-STAR chemical-shift files.
367
+
368
+ `modelClass="2"` is the default reduced-atom model (H, HA, CA, N, CB, and C).
369
+ Use model `"1"` for the full available atom set, or model `"3"` for the
370
+ dimer-sensitive CA, N, and H model.
371
+
372
+ <!-- docs-test: shiftcrypt -->
373
+ ```python
374
+ from pathlib import Path
375
+
376
+ from b2bTools.nmr.shiftCrypt.Predictor import ShiftCrypt
377
+ from b2bTools.nmr.shiftCrypt.shiftcrypt_pkg.parser import parse_official
378
+
379
+ protein_shifts = parse_official(Path("example.nef"))
380
+ results = ShiftCrypt().predictShifts(protein_shifts, modelClass="2")
381
+ ```
382
+
383
+ For NMR-STAR input, pass `is_star=True` while parsing, for example
384
+ `parse_official(Path("entry.str"), is_star=True)`.
385
+
386
+ `predictShifts` returns one dictionary per parsed chain. Its fields are:
387
+
388
+ | Field | Meaning | Type |
389
+ | --- | --- | --- |
390
+ | `ID_file` | Identifier supplied by the input file. | Text |
391
+ | `sequence` | Residue sequence. | List of one-letter residue codes |
392
+ | `seqCodes` | Residue numbering from the source data. | List of integers |
393
+ | `shiftCrypt` | Residue-level ShiftCrypt values. | List of numeric values |
394
+ | `chainCode` | Chain identifier from the source data. | Text |
395
+
396
+ ## Command-line interface
397
+
398
+ The CLI processes a FASTA file in single-sequence mode by default. Use
399
+ `--mode msa` for an existing alignment; add predictor flags such as
400
+ `--disomine` or `--psper` to request additional outputs. `--short_ids` selects
401
+ the 20-character identifier mode.
402
+
403
+ Required options are `--input_file` and `--output_json_file`. Optional
404
+ `--output_tabular_file`, `--metadata_file`, and, for MSA runs,
405
+ `--distribution_json_file` and `--distribution_tabular_file` write additional
406
+ outputs. Use `--help` for the authoritative option list in the installed
407
+ version.
408
+
409
+ ### The `shiftcrypt` command
410
+
411
+ ShiftCrypt reads NMR chemical shifts rather than sequences, so it has its own
412
+ command instead of a flag on `b2bTools`:
413
+
414
+ ```console
415
+ shiftcrypt --input_file example.nef --output_json_file shiftcrypt.json
416
+ ```
417
+
418
+ The input format is inferred from the file extension (`.nef` for NEF, `.str`
419
+ and `.bmrb` for NMR-STAR). Use `--format nef` or `--format nmr_star` when the
420
+ extension is absent or misleading.
421
+
422
+ `--model` selects the encoding: `2` (default) for the reduced-atom model, `1`
423
+ for the full atom set, `3` for the dimer-sensitive CA/N/H model, or a path to a
424
+ custom `.mtorch` model.
425
+
426
+ Output is written to any combination of `--output_json_file`,
427
+ `--output_tabular_file` (with `--sep comma` or `--sep tab`), and
428
+ `--output_text_file` (a whitespace-aligned chain, residue number, residue,
429
+ value layout). When none of them is given, the plain-text layout is printed to
430
+ standard output. The JSON file holds the same per-chain records that
431
+ `predictShifts` returns, documented in the ShiftCrypt section above.
432
+
433
+ `--fit` is reserved for training custom models and is not available in this
434
+ distribution; the command explains what is missing and exits.
435
+
436
+ ## Development
437
+
438
+ From the repository root, run `make test` to execute the maintained test suite.
439
+ Run `make generate-docs` to generate API documentation in
440
+ `wrapper_documentation`.
441
+
442
+ ## Further documentation and citations
443
+
444
+ The [Bio2Byte package documentation](https://bio2byte.be/b2btools/package-documentation)
445
+ contains detailed API material and method-level documentation. The Bio2Byte
446
+ [tools page](https://bio2byte.be/tool/) describes the scientific background of
447
+ each predictor.
448
+
449
+ If you use b2bTools in published work, cite the relevant predictor:
450
+
451
+ | Predictor | Citation |
452
+ | --- | --- |
453
+ | DynaMine | Cilia *et al.* (2013), *Nature Communications* 4:2741. [DOI](https://doi.org/10.1038/ncomms3741) |
454
+ | DisoMine | Orlando *et al.* (2022), *Journal of Molecular Biology*. [DOI](https://doi.org/10.1016/j.jmb.2022.167579) |
455
+ | EFoldMine | Raimondi *et al.* (2017), *Scientific Reports* 7:8826. [DOI](https://doi.org/10.1038/s41598-017-08366-3) |
456
+ | AgMata | Orlando *et al.* (2020), *Bioinformatics* 36:2076–2081. [DOI](https://doi.org/10.1093/bioinformatics/btz912) |
457
+ | PSPer | Orlando *et al.* (2019), *Bioinformatics* 35:4617–4623. [DOI](https://doi.org/10.1093/bioinformatics/btz274) |
458
+ | ShiftCrypt | Orlando *et al.* (2020), *Nucleic Acids Research* 48:W36–W40. [DOI](https://doi.org/10.1093/nar/gkaa391) |
459
+
460
+ ## Licence and terms of use
461
+
462
+ b2bTools is distributed under the GNU General Public License v3.0 (GPLv3).
463
+
464
+ Bio2Byte promotes open science by providing freely available online services,
465
+ databases, and software for the life sciences, with a focus on proteins. Please
466
+ attribute Bio2Byte services, databases, and software in publications, services,
467
+ or products according to good scientific practice and the relevant citation
468
+ guidance above. Bio2Byte is not liable for loss or damage arising from the use
469
+ of this software.
470
+
471
+ Questions about these terms may be sent to
472
+ [bio2byte@vub.be](mailto:bio2byte@vub.be).