stdferdowsim 0.1.0__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 (434) hide show
  1. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/bug-report-issue-template.md +20 -0
  2. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/dfe-qc-issue-template.md +17 -0
  3. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/feature-request-issue-template.md +21 -0
  4. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/model-qc-issue-template.md +18 -0
  5. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/new-species-issue-template.md +71 -0
  6. stdferdowsim-0.1.0/.github/ISSUE_TEMPLATE/species-qc-issue-template.md +57 -0
  7. stdferdowsim-0.1.0/.github/dependabot.yml +7 -0
  8. stdferdowsim-0.1.0/.github/mergify.yml +34 -0
  9. stdferdowsim-0.1.0/.github/workflows/docs.yml +60 -0
  10. stdferdowsim-0.1.0/.github/workflows/pre-commit.yml +17 -0
  11. stdferdowsim-0.1.0/.github/workflows/publish-pypi.yml +37 -0
  12. stdferdowsim-0.1.0/.github/workflows/tests.yml +90 -0
  13. stdferdowsim-0.1.0/.gitignore +20 -0
  14. stdferdowsim-0.1.0/.readthedocs.yml +28 -0
  15. stdferdowsim-0.1.0/.test/README.txt +27 -0
  16. stdferdowsim-0.1.0/.test/install_and_run.sh +15 -0
  17. stdferdowsim-0.1.0/.test/run_cli_test.sh +11 -0
  18. stdferdowsim-0.1.0/.test/run_simulation.py +43 -0
  19. stdferdowsim-0.1.0/.test/run_slim_test.py +84 -0
  20. stdferdowsim-0.1.0/CHANGELOG.rst +546 -0
  21. stdferdowsim-0.1.0/Makefile +16 -0
  22. stdferdowsim-0.1.0/PKG-INFO +219 -0
  23. stdferdowsim-0.1.0/README.md +183 -0
  24. stdferdowsim-0.1.0/docs/Makefile +28 -0
  25. stdferdowsim-0.1.0/docs/_ext/speciescatalog.py +197 -0
  26. stdferdowsim-0.1.0/docs/_static/custom.css +198 -0
  27. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/FourAlpRegions_4D12.png +0 -0
  28. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/NightmareExpansion_1D12.png +0 -0
  29. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/SleepParalysis_1D12.png +0 -0
  30. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/SwabianAlp_1D12.png +0 -0
  31. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/SwabianSaxonIM_2D12.png +0 -0
  32. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/SwabianSaxon_2D12.png +0 -0
  33. stdferdowsim-0.1.0/docs/_static/demography/AlpNac/ThreeAlpRegions_3D12.png +0 -0
  34. stdferdowsim-0.1.0/docs/_static/demography/AscPut/HearthHazelTree_2D12.png +0 -0
  35. stdferdowsim-0.1.0/docs/_static/demography/AscPut/Hearth_1D12.png +0 -0
  36. stdferdowsim-0.1.0/docs/_static/demography/BasRex/CologneDen_1D12.png +0 -0
  37. stdferdowsim-0.1.0/docs/_static/demography/BasRex/CologneVienna_2D12.png +0 -0
  38. stdferdowsim-0.1.0/docs/_static/demography/BasRex/PetrifyingGaze_1D12.png +0 -0
  39. stdferdowsim-0.1.0/docs/_static/demography/BerAlp/BavarianAlpsSalzburg_2D12.png +0 -0
  40. stdferdowsim-0.1.0/docs/_static/demography/BerAlp/BavarianAlpsTyrol_2D12.png +0 -0
  41. stdferdowsim-0.1.0/docs/_static/demography/BerAlp/BavarianAlps_1D12.png +0 -0
  42. stdferdowsim-0.1.0/docs/_static/demography/BreSta/BremenLowerSaxonyLuneburg_3D12.png +0 -0
  43. stdferdowsim-0.1.0/docs/_static/demography/BreSta/BremenLowerSaxony_2D12.png +0 -0
  44. stdferdowsim-0.1.0/docs/_static/demography/BreSta/Bremen_1D12.png +0 -0
  45. stdferdowsim-0.1.0/docs/_static/demography/DraFeu/CastleLair_1D12.png +0 -0
  46. stdferdowsim-0.1.0/docs/_static/demography/DraFeu/DragonSlayer_1D12.png +0 -0
  47. stdferdowsim-0.1.0/docs/_static/demography/DraFeu/RhineBavaria_2D12.png +0 -0
  48. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/AncientWoodland_1D12.png +0 -0
  49. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/DeforestationDecline_1D12.png +0 -0
  50. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/FourForestDomains_4D12.png +0 -0
  51. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/ThreeForestRealms_3D12.png +0 -0
  52. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/ThuringianBalticIM_2D12.png +0 -0
  53. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/ThuringianBaltic_2D12.png +0 -0
  54. stdferdowsim-0.1.0/docs/_static/demography/ErlKoe/Thuringian_1D12.png +0 -0
  55. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/FairyRingExpansion_1D12.png +0 -0
  56. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/FourTributaries_4D12.png +0 -0
  57. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/MainMoselleIM_2D12.png +0 -0
  58. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/MainMoselle_2D12.png +0 -0
  59. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/MainRiver_1D12.png +0 -0
  60. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/RiverPollution_1D12.png +0 -0
  61. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/SpringFlood_1D12.png +0 -0
  62. stdferdowsim-0.1.0/docs/_static/demography/FeeFlu/ThreeTributaries_3D12.png +0 -0
  63. stdferdowsim-0.1.0/docs/_static/demography/FraHol/FourRealms_4D12.png +0 -0
  64. stdferdowsim-0.1.0/docs/_static/demography/FraHol/GoldenAge_1D12.png +0 -0
  65. stdferdowsim-0.1.0/docs/_static/demography/FraHol/ThreeRealms_3D12.png +0 -0
  66. stdferdowsim-0.1.0/docs/_static/demography/FraHol/WellRealmExpansion_1D12.png +0 -0
  67. stdferdowsim-0.1.0/docs/_static/demography/FraHol/WellRealm_1D12.png +0 -0
  68. stdferdowsim-0.1.0/docs/_static/demography/FraHol/WellSnowIM_2D12.png +0 -0
  69. stdferdowsim-0.1.0/docs/_static/demography/FraHol/WellSnow_2D12.png +0 -0
  70. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/CologneAachenIM_2D12.png +0 -0
  71. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/CologneAachen_2D12.png +0 -0
  72. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/CologneExpansion_1D12.png +0 -0
  73. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/Cologne_1D12.png +0 -0
  74. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/FourRhinelandCities_4D12.png +0 -0
  75. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/NocturnalWorkshop_1D12.png +0 -0
  76. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/TailorsWifeBottleneck_1D12.png +0 -0
  77. stdferdowsim-0.1.0/docs/_static/demography/HeiCol/ThreeRhinelandCities_3D12.png +0 -0
  78. stdferdowsim-0.1.0/docs/_static/demography/HexWal/BrockenBamberg_2D12.png +0 -0
  79. stdferdowsim-0.1.0/docs/_static/demography/HexWal/BrockenSabbath_1D12.png +0 -0
  80. stdferdowsim-0.1.0/docs/_static/demography/HexWal/WitchTrialPurge_1D12.png +0 -0
  81. stdferdowsim-0.1.0/docs/_static/demography/JotRie/NiflJotun_2D12.png +0 -0
  82. stdferdowsim-0.1.0/docs/_static/demography/JotRie/NiflheimClan_1D12.png +0 -0
  83. stdferdowsim-0.1.0/docs/_static/demography/JotRie/Ragnarok_1D12.png +0 -0
  84. stdferdowsim-0.1.0/docs/_static/demography/KobHau/FourKoboldNiches_4D12.png +0 -0
  85. stdferdowsim-0.1.0/docs/_static/demography/KobHau/IndustrialDecline_1D12.png +0 -0
  86. stdferdowsim-0.1.0/docs/_static/demography/KobHau/MedievalUrbanBoom_1D12.png +0 -0
  87. stdferdowsim-0.1.0/docs/_static/demography/KobHau/ThreeKoboldTypes_3D12.png +0 -0
  88. stdferdowsim-0.1.0/docs/_static/demography/KobHau/UrbanKobold_1D12.png +0 -0
  89. stdferdowsim-0.1.0/docs/_static/demography/KobHau/UrbanRuralIM_2D12.png +0 -0
  90. stdferdowsim-0.1.0/docs/_static/demography/KobHau/UrbanRural_2D12.png +0 -0
  91. stdferdowsim-0.1.0/docs/_static/demography/LinDra/DragonSlayerBottleneck_1D12.png +0 -0
  92. stdferdowsim-0.1.0/docs/_static/demography/LinDra/FourDragonLairs_4D12.png +0 -0
  93. stdferdowsim-0.1.0/docs/_static/demography/LinDra/NearExtinction_1D12.png +0 -0
  94. stdferdowsim-0.1.0/docs/_static/demography/LinDra/RhineDragon_1D12.png +0 -0
  95. stdferdowsim-0.1.0/docs/_static/demography/LinDra/RhineKlagenfurtIM_2D12.png +0 -0
  96. stdferdowsim-0.1.0/docs/_static/demography/LinDra/RhineKlagenfurt_2D12.png +0 -0
  97. stdferdowsim-0.1.0/docs/_static/demography/LinDra/ThreeDragonLairs_3D12.png +0 -0
  98. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/FourRhineStretches_4D12.png +0 -0
  99. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/LoreleyDecline_1D12.png +0 -0
  100. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/LoreleyMiddleRhineIM_2D12.png +0 -0
  101. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/LoreleyMiddleRhine_2D12.png +0 -0
  102. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/LoreleyRock_1D12.png +0 -0
  103. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/RhineGorge_3D12.png +0 -0
  104. stdferdowsim-0.1.0/docs/_static/demography/LorRhe/SirenSong_1D12.png +0 -0
  105. stdferdowsim-0.1.0/docs/_static/demography/MasLak/MasurianLakesSpirdingsee_2D12.png +0 -0
  106. stdferdowsim-0.1.0/docs/_static/demography/MasLak/MasurianLakes_1D12.png +0 -0
  107. stdferdowsim-0.1.0/docs/_static/demography/MasLak/MasurianThreeLakes_3D12.png +0 -0
  108. stdferdowsim-0.1.0/docs/_static/demography/MooBay/BayrischerWaldOberpfalz_2D12.png +0 -0
  109. stdferdowsim-0.1.0/docs/_static/demography/MooBay/BayrischerWald_1D12.png +0 -0
  110. stdferdowsim-0.1.0/docs/_static/demography/MueGei/BlackForestMill_1D12.png +0 -0
  111. stdferdowsim-0.1.0/docs/_static/demography/MueGei/ForestMarsh_2D12.png +0 -0
  112. stdferdowsim-0.1.0/docs/_static/demography/MueGei/IndustrialDecline_1D12.png +0 -0
  113. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/FourRivers_4D12.png +0 -0
  114. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/RhineBottleneck_1D12.png +0 -0
  115. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/RhineElbeIM_2D12.png +0 -0
  116. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/RhineElbe_2D12.png +0 -0
  117. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/Rhine_1D12.png +0 -0
  118. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/ThreeRivers_3D12.png +0 -0
  119. stdferdowsim-0.1.0/docs/_static/demography/NixRhe/TidalFluctuation_1D12.png +0 -0
  120. stdferdowsim-0.1.0/docs/_static/demography/OstBal/EastPrussiaBaltic_3D12.png +0 -0
  121. stdferdowsim-0.1.0/docs/_static/demography/OstBal/KurischeNehrungMemelland_2D12.png +0 -0
  122. stdferdowsim-0.1.0/docs/_static/demography/OstBal/KurischeNehrung_1D12.png +0 -0
  123. stdferdowsim-0.1.0/docs/_static/demography/PomBal/PomeraniaBaltic_3D12.png +0 -0
  124. stdferdowsim-0.1.0/docs/_static/demography/PomBal/UsedomRugen_2D12.png +0 -0
  125. stdferdowsim-0.1.0/docs/_static/demography/PomBal/Usedom_1D12.png +0 -0
  126. stdferdowsim-0.1.0/docs/_static/demography/PukPru/EastPrussiaBerlinBrandenburg_2D12.png +0 -0
  127. stdferdowsim-0.1.0/docs/_static/demography/PukPru/EastPrussiaWestPrussia_2D12.png +0 -0
  128. stdferdowsim-0.1.0/docs/_static/demography/PukPru/EastPrussia_1D12.png +0 -0
  129. stdferdowsim-0.1.0/docs/_static/demography/RueHar/AncientMountainSpirit_1D12.png +0 -0
  130. stdferdowsim-0.1.0/docs/_static/demography/RueHar/FourMountainSpirits_4D12.png +0 -0
  131. stdferdowsim-0.1.0/docs/_static/demography/RueHar/HarzRiesengebirge_2D12.png +0 -0
  132. stdferdowsim-0.1.0/docs/_static/demography/RueHar/IceAgeSurvival_1D12.png +0 -0
  133. stdferdowsim-0.1.0/docs/_static/demography/RueHar/RiesenHarzIM_2D12.png +0 -0
  134. stdferdowsim-0.1.0/docs/_static/demography/RueHar/Riesengebirge_1D12.png +0 -0
  135. stdferdowsim-0.1.0/docs/_static/demography/RueHar/ThreeMountains_3D12.png +0 -0
  136. stdferdowsim-0.1.0/docs/_static/demography/RumSti/ThuringiaHesse_2D12.png +0 -0
  137. stdferdowsim-0.1.0/docs/_static/demography/RumSti/Thuringia_1D12.png +0 -0
  138. stdferdowsim-0.1.0/docs/_static/demography/SaxErz/ErzgebirgeVogtlandDresden_3D12.png +0 -0
  139. stdferdowsim-0.1.0/docs/_static/demography/SaxErz/ErzgebirgeVogtland_2D12.png +0 -0
  140. stdferdowsim-0.1.0/docs/_static/demography/SaxErz/Erzgebirge_1D12.png +0 -0
  141. stdferdowsim-0.1.0/docs/_static/demography/SchWar/BlackForest_1D12.png +0 -0
  142. stdferdowsim-0.1.0/docs/_static/demography/SchWar/DeforestationRecovery_1D12.png +0 -0
  143. stdferdowsim-0.1.0/docs/_static/demography/SchWar/ForestExpansion_1D12.png +0 -0
  144. stdferdowsim-0.1.0/docs/_static/demography/SchWar/FourForestValleys_4D12.png +0 -0
  145. stdferdowsim-0.1.0/docs/_static/demography/SchWar/NorthSouthBlackForest_2D12.png +0 -0
  146. stdferdowsim-0.1.0/docs/_static/demography/SchWar/NorthSouthIM_2D12.png +0 -0
  147. stdferdowsim-0.1.0/docs/_static/demography/SchWar/ThreeForestZones_3D12.png +0 -0
  148. stdferdowsim-0.1.0/docs/_static/demography/SieRab/GlassMountainForestWell_2D12.png +0 -0
  149. stdferdowsim-0.1.0/docs/_static/demography/SieRab/GlassMountain_1D12.png +0 -0
  150. stdferdowsim-0.1.0/docs/_static/demography/ValKri/Christianization_1D12.png +0 -0
  151. stdferdowsim-0.1.0/docs/_static/demography/ValKri/ValhallaHost_1D12.png +0 -0
  152. stdferdowsim-0.1.0/docs/_static/demography/ValKri/ValhallaMidgard_2D12.png +0 -0
  153. stdferdowsim-0.1.0/docs/_static/demography/WerWol/FourWerewolfPacks_4D12.png +0 -0
  154. stdferdowsim-0.1.0/docs/_static/demography/WerWol/LycanthropeRecovery_1D12.png +0 -0
  155. stdferdowsim-0.1.0/docs/_static/demography/WerWol/RhinelandLivonianIM_2D12.png +0 -0
  156. stdferdowsim-0.1.0/docs/_static/demography/WerWol/RhinelandLivonian_2D12.png +0 -0
  157. stdferdowsim-0.1.0/docs/_static/demography/WerWol/Rhineland_1D12.png +0 -0
  158. stdferdowsim-0.1.0/docs/_static/demography/WerWol/ThreeWerewolfPacks_3D12.png +0 -0
  159. stdferdowsim-0.1.0/docs/_static/demography/WerWol/WitchTrialBottleneck_1D12.png +0 -0
  160. stdferdowsim-0.1.0/docs/_static/demography/WilJae/ChristianizationBottleneck_1D12.png +0 -0
  161. stdferdowsim-0.1.0/docs/_static/demography/WilJae/FourHuntRegions_4D12.png +0 -0
  162. stdferdowsim-0.1.0/docs/_static/demography/WilJae/NorthSouthHuntIM_2D12.png +0 -0
  163. stdferdowsim-0.1.0/docs/_static/demography/WilJae/NorthSouthHunt_2D12.png +0 -0
  164. stdferdowsim-0.1.0/docs/_static/demography/WilJae/NorthernHunt_1D12.png +0 -0
  165. stdferdowsim-0.1.0/docs/_static/demography/WilJae/ThreeHuntHosts_3D12.png +0 -0
  166. stdferdowsim-0.1.0/docs/_static/demography/WilJae/WinterSolstice_1D12.png +0 -0
  167. stdferdowsim-0.1.0/docs/_static/demography/WolBay/BavariaThreeRegion_3D12.png +0 -0
  168. stdferdowsim-0.1.0/docs/_static/demography/WolBay/UpperBavariaBavarianForest_2D12.png +0 -0
  169. stdferdowsim-0.1.0/docs/_static/demography/WolBay/UpperBavaria_1D12.png +0 -0
  170. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/AlpineDwarfRadiation_3D12.png +0 -0
  171. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/BlackForest_1D12.png +0 -0
  172. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/FourMountainRanges_4D12.png +0 -0
  173. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/HarzBlackForest_2D12.png +0 -0
  174. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/IsolationMigration_2D12.png +0 -0
  175. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/MineCollapse_1D12.png +0 -0
  176. stdferdowsim-0.1.0/docs/_static/demography/ZweBerg/PostGlacialExpansion_1D12.png +0 -0
  177. stdferdowsim-0.1.0/docs/_static/do_not_delete +1 -0
  178. stdferdowsim-0.1.0/docs/_static/ferdowsi_placeholder.png +0 -0
  179. stdferdowsim-0.1.0/docs/_static/logo.png +0 -0
  180. stdferdowsim-0.1.0/docs/_static/tute-divergence.png +0 -0
  181. stdferdowsim-0.1.0/docs/_static/tute-sfs.png +0 -0
  182. stdferdowsim-0.1.0/docs/_static/tute-sweep.png +0 -0
  183. stdferdowsim-0.1.0/docs/_templates/do_not_delete +1 -0
  184. stdferdowsim-0.1.0/docs/_templates/footer.html +5 -0
  185. stdferdowsim-0.1.0/docs/all_models.rst +6 -0
  186. stdferdowsim-0.1.0/docs/api.rst +230 -0
  187. stdferdowsim-0.1.0/docs/catalog.rst +273 -0
  188. stdferdowsim-0.1.0/docs/changelogs.rst +5 -0
  189. stdferdowsim-0.1.0/docs/cli_arguments.rst +10 -0
  190. stdferdowsim-0.1.0/docs/conf.py +155 -0
  191. stdferdowsim-0.1.0/docs/development.rst +1839 -0
  192. stdferdowsim-0.1.0/docs/docutils.conf +5 -0
  193. stdferdowsim-0.1.0/docs/examples.py +24 -0
  194. stdferdowsim-0.1.0/docs/generate_demography_figures.py +60 -0
  195. stdferdowsim-0.1.0/docs/index.rst +79 -0
  196. stdferdowsim-0.1.0/docs/installation.rst +119 -0
  197. stdferdowsim-0.1.0/docs/introduction.rst +153 -0
  198. stdferdowsim-0.1.0/docs/parameter_tables/CthGre/DeepSlumber_1R28.csv +7 -0
  199. stdferdowsim-0.1.0/docs/parameter_tables/CthGre/RlyehRising_2P20.csv +8 -0
  200. stdferdowsim-0.1.0/docs/parameter_tables/DagHyd/HybridIntrogression_2M27.csv +7 -0
  201. stdferdowsim-0.1.0/docs/parameter_tables/DagHyd/InnsmouthDecline_1M27.csv +6 -0
  202. stdferdowsim-0.1.0/docs/selection_example.py +161 -0
  203. stdferdowsim-0.1.0/docs/tutorial.rst +1900 -0
  204. stdferdowsim-0.1.0/environment.yml +22 -0
  205. stdferdowsim-0.1.0/generate_catalog.py +619 -0
  206. stdferdowsim-0.1.0/maintenance/__init__.py +7 -0
  207. stdferdowsim-0.1.0/maintenance/__main__.py +6 -0
  208. stdferdowsim-0.1.0/maintenance/annotation_maint.py +141 -0
  209. stdferdowsim-0.1.0/maintenance/ensembl.py +124 -0
  210. stdferdowsim-0.1.0/maintenance/liftOver.py +681 -0
  211. stdferdowsim-0.1.0/maintenance/liftOver_catalog.py +188 -0
  212. stdferdowsim-0.1.0/maintenance/liftOver_comeron2012.py +201 -0
  213. stdferdowsim-0.1.0/maintenance/main.py +570 -0
  214. stdferdowsim-0.1.0/maintenance/ncbi.py +75 -0
  215. stdferdowsim-0.1.0/pyproject.toml +55 -0
  216. stdferdowsim-0.1.0/requirements/CI/conda.txt +2 -0
  217. stdferdowsim-0.1.0/requirements/CI/requirements.txt +23 -0
  218. stdferdowsim-0.1.0/requirements/development.txt +28 -0
  219. stdferdowsim-0.1.0/requirements/rtd-conda-environment.yml +18 -0
  220. stdferdowsim-0.1.0/setup.cfg +67 -0
  221. stdferdowsim-0.1.0/setup.py +9 -0
  222. stdferdowsim-0.1.0/stdferdowsim/__init__.py +30 -0
  223. stdferdowsim-0.1.0/stdferdowsim/__main__.py +4 -0
  224. stdferdowsim-0.1.0/stdferdowsim/_version.py +34 -0
  225. stdferdowsim-0.1.0/stdferdowsim/annotations.py +90 -0
  226. stdferdowsim-0.1.0/stdferdowsim/cache.py +178 -0
  227. stdferdowsim-0.1.0/stdferdowsim/catalog/AfrHor/__init__.py +6 -0
  228. stdferdowsim-0.1.0/stdferdowsim/catalog/AfrHor/demographic_models.py +377 -0
  229. stdferdowsim-0.1.0/stdferdowsim/catalog/AfrHor/genome_data.py +14 -0
  230. stdferdowsim-0.1.0/stdferdowsim/catalog/AfrHor/species.py +51 -0
  231. stdferdowsim-0.1.0/stdferdowsim/catalog/AlDem/__init__.py +6 -0
  232. stdferdowsim-0.1.0/stdferdowsim/catalog/AlDem/demographic_models.py +377 -0
  233. stdferdowsim-0.1.0/stdferdowsim/catalog/AlDem/genome_data.py +13 -0
  234. stdferdowsim-0.1.0/stdferdowsim/catalog/AlDem/species.py +51 -0
  235. stdferdowsim-0.1.0/stdferdowsim/catalog/AzhDra/__init__.py +6 -0
  236. stdferdowsim-0.1.0/stdferdowsim/catalog/AzhDra/demographic_models.py +377 -0
  237. stdferdowsim-0.1.0/stdferdowsim/catalog/AzhDra/genome_data.py +14 -0
  238. stdferdowsim-0.1.0/stdferdowsim/catalog/AzhDra/species.py +51 -0
  239. stdferdowsim-0.1.0/stdferdowsim/catalog/BahFir/__init__.py +6 -0
  240. stdferdowsim-0.1.0/stdferdowsim/catalog/BahFir/demographic_models.py +377 -0
  241. stdferdowsim-0.1.0/stdferdowsim/catalog/BahFir/genome_data.py +14 -0
  242. stdferdowsim-0.1.0/stdferdowsim/catalog/BahFir/species.py +51 -0
  243. stdferdowsim-0.1.0/stdferdowsim/catalog/ChaGri/__init__.py +6 -0
  244. stdferdowsim-0.1.0/stdferdowsim/catalog/ChaGri/demographic_models.py +377 -0
  245. stdferdowsim-0.1.0/stdferdowsim/catalog/ChaGri/genome_data.py +14 -0
  246. stdferdowsim-0.1.0/stdferdowsim/catalog/ChaGri/species.py +51 -0
  247. stdferdowsim-0.1.0/stdferdowsim/catalog/DaeWar/__init__.py +6 -0
  248. stdferdowsim-0.1.0/stdferdowsim/catalog/DaeWar/demographic_models.py +377 -0
  249. stdferdowsim-0.1.0/stdferdowsim/catalog/DaeWar/genome_data.py +14 -0
  250. stdferdowsim-0.1.0/stdferdowsim/catalog/DaeWar/species.py +51 -0
  251. stdferdowsim-0.1.0/stdferdowsim/catalog/DivMaz/__init__.py +6 -0
  252. stdferdowsim-0.1.0/stdferdowsim/catalog/DivMaz/demographic_models.py +377 -0
  253. stdferdowsim-0.1.0/stdferdowsim/catalog/DivMaz/genome_data.py +14 -0
  254. stdferdowsim-0.1.0/stdferdowsim/catalog/DivMaz/species.py +51 -0
  255. stdferdowsim-0.1.0/stdferdowsim/catalog/DouGia/__init__.py +6 -0
  256. stdferdowsim-0.1.0/stdferdowsim/catalog/DouGia/demographic_models.py +377 -0
  257. stdferdowsim-0.1.0/stdferdowsim/catalog/DouGia/genome_data.py +14 -0
  258. stdferdowsim-0.1.0/stdferdowsim/catalog/DouGia/species.py +51 -0
  259. stdferdowsim-0.1.0/stdferdowsim/catalog/DraAng/__init__.py +6 -0
  260. stdferdowsim-0.1.0/stdferdowsim/catalog/DraAng/demographic_models.py +377 -0
  261. stdferdowsim-0.1.0/stdferdowsim/catalog/DraAng/genome_data.py +14 -0
  262. stdferdowsim-0.1.0/stdferdowsim/catalog/DraAng/species.py +51 -0
  263. stdferdowsim-0.1.0/stdferdowsim/catalog/EsfSmi/__init__.py +6 -0
  264. stdferdowsim-0.1.0/stdferdowsim/catalog/EsfSmi/demographic_models.py +377 -0
  265. stdferdowsim-0.1.0/stdferdowsim/catalog/EsfSmi/genome_data.py +14 -0
  266. stdferdowsim-0.1.0/stdferdowsim/catalog/EsfSmi/species.py +51 -0
  267. stdferdowsim-0.1.0/stdferdowsim/catalog/FarGlo/__init__.py +6 -0
  268. stdferdowsim-0.1.0/stdferdowsim/catalog/FarGlo/demographic_models.py +377 -0
  269. stdferdowsim-0.1.0/stdferdowsim/catalog/FarGlo/genome_data.py +14 -0
  270. stdferdowsim-0.1.0/stdferdowsim/catalog/FarGlo/species.py +51 -0
  271. stdferdowsim-0.1.0/stdferdowsim/catalog/GavPri/__init__.py +6 -0
  272. stdferdowsim-0.1.0/stdferdowsim/catalog/GavPri/demographic_models.py +377 -0
  273. stdferdowsim-0.1.0/stdferdowsim/catalog/GavPri/genome_data.py +13 -0
  274. stdferdowsim-0.1.0/stdferdowsim/catalog/GavPri/species.py +51 -0
  275. stdferdowsim-0.1.0/stdferdowsim/catalog/GhoUnd/__init__.py +6 -0
  276. stdferdowsim-0.1.0/stdferdowsim/catalog/GhoUnd/demographic_models.py +377 -0
  277. stdferdowsim-0.1.0/stdferdowsim/catalog/GhoUnd/genome_data.py +13 -0
  278. stdferdowsim-0.1.0/stdferdowsim/catalog/GhoUnd/species.py +51 -0
  279. stdferdowsim-0.1.0/stdferdowsim/catalog/GulRos/__init__.py +6 -0
  280. stdferdowsim-0.1.0/stdferdowsim/catalog/GulRos/demographic_models.py +377 -0
  281. stdferdowsim-0.1.0/stdferdowsim/catalog/GulRos/genome_data.py +14 -0
  282. stdferdowsim-0.1.0/stdferdowsim/catalog/GulRos/species.py +51 -0
  283. stdferdowsim-0.1.0/stdferdowsim/catalog/HumBir/__init__.py +6 -0
  284. stdferdowsim-0.1.0/stdferdowsim/catalog/HumBir/demographic_models.py +377 -0
  285. stdferdowsim-0.1.0/stdferdowsim/catalog/HumBir/genome_data.py +15 -0
  286. stdferdowsim-0.1.0/stdferdowsim/catalog/HumBir/species.py +51 -0
  287. stdferdowsim-0.1.0/stdferdowsim/catalog/JamPis/__init__.py +6 -0
  288. stdferdowsim-0.1.0/stdferdowsim/catalog/JamPis/demographic_models.py +377 -0
  289. stdferdowsim-0.1.0/stdferdowsim/catalog/JamPis/genome_data.py +14 -0
  290. stdferdowsim-0.1.0/stdferdowsim/catalog/JamPis/species.py +51 -0
  291. stdferdowsim-0.1.0/stdferdowsim/catalog/KayDyn/__init__.py +6 -0
  292. stdferdowsim-0.1.0/stdferdowsim/catalog/KayDyn/demographic_models.py +377 -0
  293. stdferdowsim-0.1.0/stdferdowsim/catalog/KayDyn/genome_data.py +14 -0
  294. stdferdowsim-0.1.0/stdferdowsim/catalog/KayDyn/species.py +51 -0
  295. stdferdowsim-0.1.0/stdferdowsim/catalog/KhiWis/__init__.py +6 -0
  296. stdferdowsim-0.1.0/stdferdowsim/catalog/KhiWis/demographic_models.py +377 -0
  297. stdferdowsim-0.1.0/stdferdowsim/catalog/KhiWis/genome_data.py +13 -0
  298. stdferdowsim-0.1.0/stdferdowsim/catalog/KhiWis/species.py +51 -0
  299. stdferdowsim-0.1.0/stdferdowsim/catalog/ManTig/__init__.py +6 -0
  300. stdferdowsim-0.1.0/stdferdowsim/catalog/ManTig/demographic_models.py +377 -0
  301. stdferdowsim-0.1.0/stdferdowsim/catalog/ManTig/genome_data.py +14 -0
  302. stdferdowsim-0.1.0/stdferdowsim/catalog/ManTig/species.py +51 -0
  303. stdferdowsim-0.1.0/stdferdowsim/catalog/MarMor/__init__.py +6 -0
  304. stdferdowsim-0.1.0/stdferdowsim/catalog/MarMor/demographic_models.py +377 -0
  305. stdferdowsim-0.1.0/stdferdowsim/catalog/MarMor/genome_data.py +14 -0
  306. stdferdowsim-0.1.0/stdferdowsim/catalog/MarMor/species.py +51 -0
  307. stdferdowsim-0.1.0/stdferdowsim/catalog/MitSol/__init__.py +6 -0
  308. stdferdowsim-0.1.0/stdferdowsim/catalog/MitSol/demographic_models.py +377 -0
  309. stdferdowsim-0.1.0/stdferdowsim/catalog/MitSol/genome_data.py +13 -0
  310. stdferdowsim-0.1.0/stdferdowsim/catalog/MitSol/species.py +51 -0
  311. stdferdowsim-0.1.0/stdferdowsim/catalog/NarHer/__init__.py +6 -0
  312. stdferdowsim-0.1.0/stdferdowsim/catalog/NarHer/demographic_models.py +377 -0
  313. stdferdowsim-0.1.0/stdferdowsim/catalog/NarHer/genome_data.py +14 -0
  314. stdferdowsim-0.1.0/stdferdowsim/catalog/NarHer/species.py +51 -0
  315. stdferdowsim-0.1.0/stdferdowsim/catalog/PahDiv/__init__.py +6 -0
  316. stdferdowsim-0.1.0/stdferdowsim/catalog/PahDiv/demographic_models.py +377 -0
  317. stdferdowsim-0.1.0/stdferdowsim/catalog/PahDiv/genome_data.py +14 -0
  318. stdferdowsim-0.1.0/stdferdowsim/catalog/PahDiv/species.py +51 -0
  319. stdferdowsim-0.1.0/stdferdowsim/catalog/PerPar/__init__.py +6 -0
  320. stdferdowsim-0.1.0/stdferdowsim/catalog/PerPar/demographic_models.py +377 -0
  321. stdferdowsim-0.1.0/stdferdowsim/catalog/PerPar/genome_data.py +14 -0
  322. stdferdowsim-0.1.0/stdferdowsim/catalog/PerPar/species.py +51 -0
  323. stdferdowsim-0.1.0/stdferdowsim/catalog/PriJin/__init__.py +6 -0
  324. stdferdowsim-0.1.0/stdferdowsim/catalog/PriJin/demographic_models.py +377 -0
  325. stdferdowsim-0.1.0/stdferdowsim/catalog/PriJin/genome_data.py +14 -0
  326. stdferdowsim-0.1.0/stdferdowsim/catalog/PriJin/species.py +51 -0
  327. stdferdowsim-0.1.0/stdferdowsim/catalog/RakEqu/__init__.py +6 -0
  328. stdferdowsim-0.1.0/stdferdowsim/catalog/RakEqu/demographic_models.py +377 -0
  329. stdferdowsim-0.1.0/stdferdowsim/catalog/RakEqu/genome_data.py +14 -0
  330. stdferdowsim-0.1.0/stdferdowsim/catalog/RakEqu/species.py +51 -0
  331. stdferdowsim-0.1.0/stdferdowsim/catalog/RosHer/__init__.py +6 -0
  332. stdferdowsim-0.1.0/stdferdowsim/catalog/RosHer/demographic_models.py +377 -0
  333. stdferdowsim-0.1.0/stdferdowsim/catalog/RosHer/genome_data.py +14 -0
  334. stdferdowsim-0.1.0/stdferdowsim/catalog/RosHer/species.py +51 -0
  335. stdferdowsim-0.1.0/stdferdowsim/catalog/RudSim/__init__.py +6 -0
  336. stdferdowsim-0.1.0/stdferdowsim/catalog/RudSim/demographic_models.py +377 -0
  337. stdferdowsim-0.1.0/stdferdowsim/catalog/RudSim/genome_data.py +14 -0
  338. stdferdowsim-0.1.0/stdferdowsim/catalog/RudSim/species.py +51 -0
  339. stdferdowsim-0.1.0/stdferdowsim/catalog/SenBir/__init__.py +6 -0
  340. stdferdowsim-0.1.0/stdferdowsim/catalog/SenBir/demographic_models.py +377 -0
  341. stdferdowsim-0.1.0/stdferdowsim/catalog/SenBir/genome_data.py +14 -0
  342. stdferdowsim-0.1.0/stdferdowsim/catalog/SenBir/species.py +51 -0
  343. stdferdowsim-0.1.0/stdferdowsim/catalog/ShaSha/__init__.py +6 -0
  344. stdferdowsim-0.1.0/stdferdowsim/catalog/ShaSha/demographic_models.py +377 -0
  345. stdferdowsim-0.1.0/stdferdowsim/catalog/ShaSha/genome_data.py +15 -0
  346. stdferdowsim-0.1.0/stdferdowsim/catalog/ShaSha/species.py +51 -0
  347. stdferdowsim-0.1.0/stdferdowsim/catalog/SimAvi/__init__.py +6 -0
  348. stdferdowsim-0.1.0/stdferdowsim/catalog/SimAvi/demographic_models.py +377 -0
  349. stdferdowsim-0.1.0/stdferdowsim/catalog/SimAvi/genome_data.py +15 -0
  350. stdferdowsim-0.1.0/stdferdowsim/catalog/SimAvi/species.py +51 -0
  351. stdferdowsim-0.1.0/stdferdowsim/catalog/SorWiz/__init__.py +6 -0
  352. stdferdowsim-0.1.0/stdferdowsim/catalog/SorWiz/demographic_models.py +377 -0
  353. stdferdowsim-0.1.0/stdferdowsim/catalog/SorWiz/genome_data.py +14 -0
  354. stdferdowsim-0.1.0/stdferdowsim/catalog/SorWiz/species.py +51 -0
  355. stdferdowsim-0.1.0/stdferdowsim/catalog/TurNom/__init__.py +6 -0
  356. stdferdowsim-0.1.0/stdferdowsim/catalog/TurNom/demographic_models.py +377 -0
  357. stdferdowsim-0.1.0/stdferdowsim/catalog/TurNom/genome_data.py +14 -0
  358. stdferdowsim-0.1.0/stdferdowsim/catalog/TurNom/species.py +51 -0
  359. stdferdowsim-0.1.0/stdferdowsim/catalog/YazGua/__init__.py +6 -0
  360. stdferdowsim-0.1.0/stdferdowsim/catalog/YazGua/demographic_models.py +377 -0
  361. stdferdowsim-0.1.0/stdferdowsim/catalog/YazGua/genome_data.py +13 -0
  362. stdferdowsim-0.1.0/stdferdowsim/catalog/YazGua/species.py +51 -0
  363. stdferdowsim-0.1.0/stdferdowsim/catalog/ZalAlb/__init__.py +6 -0
  364. stdferdowsim-0.1.0/stdferdowsim/catalog/ZalAlb/demographic_models.py +377 -0
  365. stdferdowsim-0.1.0/stdferdowsim/catalog/ZalAlb/genome_data.py +14 -0
  366. stdferdowsim-0.1.0/stdferdowsim/catalog/ZalAlb/species.py +51 -0
  367. stdferdowsim-0.1.0/stdferdowsim/catalog/ZorPri/__init__.py +6 -0
  368. stdferdowsim-0.1.0/stdferdowsim/catalog/ZorPri/demographic_models.py +377 -0
  369. stdferdowsim-0.1.0/stdferdowsim/catalog/ZorPri/genome_data.py +14 -0
  370. stdferdowsim-0.1.0/stdferdowsim/catalog/ZorPri/species.py +51 -0
  371. stdferdowsim-0.1.0/stdferdowsim/catalog/__init__.py +8 -0
  372. stdferdowsim-0.1.0/stdferdowsim/citations.py +120 -0
  373. stdferdowsim-0.1.0/stdferdowsim/cli.py +1157 -0
  374. stdferdowsim-0.1.0/stdferdowsim/dfe.py +380 -0
  375. stdferdowsim-0.1.0/stdferdowsim/engines.py +334 -0
  376. stdferdowsim-0.1.0/stdferdowsim/genetic_maps.py +132 -0
  377. stdferdowsim-0.1.0/stdferdowsim/genomes.py +903 -0
  378. stdferdowsim-0.1.0/stdferdowsim/models.py +374 -0
  379. stdferdowsim-0.1.0/stdferdowsim/qc/__init__.py +1 -0
  380. stdferdowsim-0.1.0/stdferdowsim/selection.py +397 -0
  381. stdferdowsim-0.1.0/stdferdowsim/slim_engine.py +2074 -0
  382. stdferdowsim-0.1.0/stdferdowsim/species.py +381 -0
  383. stdferdowsim-0.1.0/stdferdowsim/utils.py +359 -0
  384. stdferdowsim-0.1.0/stdferdowsim/warning_categories.py +32 -0
  385. stdferdowsim-0.1.0/stdferdowsim.egg-info/PKG-INFO +219 -0
  386. stdferdowsim-0.1.0/stdferdowsim.egg-info/SOURCES.txt +433 -0
  387. stdferdowsim-0.1.0/stdferdowsim.egg-info/dependency_links.txt +1 -0
  388. stdferdowsim-0.1.0/stdferdowsim.egg-info/not-zip-safe +1 -0
  389. stdferdowsim-0.1.0/stdferdowsim.egg-info/requires.txt +27 -0
  390. stdferdowsim-0.1.0/stdferdowsim.egg-info/top_level.txt +1 -0
  391. stdferdowsim-0.1.0/tests/__init__.py +50 -0
  392. stdferdowsim-0.1.0/tests/conftest.py +106 -0
  393. stdferdowsim-0.1.0/tests/test_AedAeg.py +55 -0
  394. stdferdowsim-0.1.0/tests/test_AnaPla.py +178 -0
  395. stdferdowsim-0.1.0/tests/test_AnoCar.py +90 -0
  396. stdferdowsim-0.1.0/tests/test_AnoGam.py +79 -0
  397. stdferdowsim-0.1.0/tests/test_ApiMel.py +92 -0
  398. stdferdowsim-0.1.0/tests/test_AraTha.py +44 -0
  399. stdferdowsim-0.1.0/tests/test_BosTau.py +173 -0
  400. stdferdowsim-0.1.0/tests/test_CaeEle.py +113 -0
  401. stdferdowsim-0.1.0/tests/test_CanFam.py +166 -0
  402. stdferdowsim-0.1.0/tests/test_ChlRei.py +89 -0
  403. stdferdowsim-0.1.0/tests/test_DroMel.py +59 -0
  404. stdferdowsim-0.1.0/tests/test_DroSec.py +73 -0
  405. stdferdowsim-0.1.0/tests/test_EscCol.py +60 -0
  406. stdferdowsim-0.1.0/tests/test_GasAcu.py +98 -0
  407. stdferdowsim-0.1.0/tests/test_GorGor.py +99 -0
  408. stdferdowsim-0.1.0/tests/test_HelAnn.py +84 -0
  409. stdferdowsim-0.1.0/tests/test_HelMel.py +91 -0
  410. stdferdowsim-0.1.0/tests/test_HomSap.py +56 -0
  411. stdferdowsim-0.1.0/tests/test_MusMus.py +127 -0
  412. stdferdowsim-0.1.0/tests/test_OrySat.py +78 -0
  413. stdferdowsim-0.1.0/tests/test_PanTro.py +53 -0
  414. stdferdowsim-0.1.0/tests/test_PapAnu.py +96 -0
  415. stdferdowsim-0.1.0/tests/test_PhoSin.py +123 -0
  416. stdferdowsim-0.1.0/tests/test_PonAbe.py +118 -0
  417. stdferdowsim-0.1.0/tests/test_RatNor.py +124 -0
  418. stdferdowsim-0.1.0/tests/test_StrAga.py +60 -0
  419. stdferdowsim-0.1.0/tests/test_SusScr.py +138 -0
  420. stdferdowsim-0.1.0/tests/test_annotations.py +268 -0
  421. stdferdowsim-0.1.0/tests/test_cache.py +111 -0
  422. stdferdowsim-0.1.0/tests/test_citations.py +107 -0
  423. stdferdowsim-0.1.0/tests/test_cli.py +1141 -0
  424. stdferdowsim-0.1.0/tests/test_dfes.py +839 -0
  425. stdferdowsim-0.1.0/tests/test_engines.py +175 -0
  426. stdferdowsim-0.1.0/tests/test_genetic_maps.py +252 -0
  427. stdferdowsim-0.1.0/tests/test_genomes.py +519 -0
  428. stdferdowsim-0.1.0/tests/test_maintenance.py +98 -0
  429. stdferdowsim-0.1.0/tests/test_masking.py +153 -0
  430. stdferdowsim-0.1.0/tests/test_models.py +516 -0
  431. stdferdowsim-0.1.0/tests/test_slim_engine.py +3387 -0
  432. stdferdowsim-0.1.0/tests/test_species.py +419 -0
  433. stdferdowsim-0.1.0/tests/test_utils.py +552 -0
  434. stdferdowsim-0.1.0/validation.py +960 -0
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Bug report
3
+ about: A problem with stdvoidsim
4
+ title:
5
+ labels:
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ *This template is a suggestion that may not fit your issue: delete/modify anything!*
11
+
12
+ **Short description of the problem:**
13
+ *Describe what you are doing, what you think should happen, and what actually happens.*
14
+
15
+ **How to reproduce the problem:**
16
+ *If possible, post code (a [minimal working example](https://en.wikipedia.org/wiki/Minimal_working_example))
17
+ that reproduces the problem.*
18
+
19
+ **Suggested fixes:**
20
+ *If you have an idea of what's causing the problem or how to fix it, we'd like to hear it!*
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: DFE QC issue template
3
+ about: Quality control process for DFE addition
4
+ title: QC for {dfe_id} ({species})
5
+ labels: DFE QC
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **PR for new model:** {link to Pull Request}
11
+ **Original paper:** {ink to original paper}
12
+ **Parameter values:** {reference to where parameter values can be found}
13
+
14
+ **Potential issues that might lead to differences between the model implementations:**
15
+ {description of any potential issues}
16
+
17
+ **QC'er requests:** {tag potential developers to QC the model}
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: Feature request
3
+ about: A suggestion for something to add to stdvoidsim.
4
+ title:
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ *This template is a suggestion that may not fit your issue: delete/modify anything!*
11
+
12
+ **Short description of what you'd like added:**
13
+ *Describe briefly how you think stdvoidsim could be better.*
14
+
15
+ **Rationale and considerations:**
16
+ *Give some more explanation of why this is a good idea,
17
+ and what considerations there are in implementing it.
18
+ For instance: if you're suggesting that a new species, model, or map is added
19
+ then say who'd use the resource.
20
+ Or, if you're suggesting a new method in the API,
21
+ talk through the proposed arguments to the method and outputs.*
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: Model QC issue template
3
+ about: Quality control process for model addition
4
+ title: QC for {model_id} ({species})
5
+ labels: Model QC
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **PR for new model:** {link to Pull Request}
11
+ **Original paper:** {ink to original paper}
12
+ **Parameter values:** {reference to where parameter values can be found}
13
+ **Population indices:** {description of population indices}
14
+
15
+ **Potential issues that might lead to differences between the model implementations:**
16
+ {description of any potential issues}
17
+
18
+ **QC'er requests:** {tag potential developers to QC the model}
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: New species
3
+ about: Adding a new species to the stdvoidsim catalogue.
4
+ title:
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ - **Name:** scientific name of the species
11
+ - **Common name:**
12
+
13
+ **Description:** any other discussion or useful background? (optional)
14
+
15
+ *Note: Maybe you don't know a lot of the things below - but, that's OK!
16
+ The criteria are that (a) the choice is reasonable, and (b) the rationale is clear.
17
+ What we want is a "reasonable estimate" (or, "best guess") - if you were to use a number in a paper,
18
+ what would you use and how would you justify it to your collaborators?
19
+ For instance, for "generation time", best would be to cite a paper that actually measures
20
+ or estimates generation time. But most species don't have this;
21
+ next best would be to give a number used in the literature, and provide a citation that used it
22
+ (and hopefully the publication gives a justification also).
23
+ Lacking this, you might provide a number from a related species (and a citation for this).*
24
+
25
+ *Here is the checklist of things that we need to add a species to the catalogue.
26
+ Each thing should be provided, with a justification (maybe short) and a citation.*
27
+
28
+ **Demographic information:**
29
+
30
+ - [] generation time in years
31
+ - [] "default" population size
32
+
33
+
34
+ **Chromosome structure:**
35
+
36
+ *Note:* The assembly should be *chromosome-level*, i.e., not composed of thousands of scaffolds.
37
+
38
+ - [] ensembl assembly ID *or*, if the assembly is not in Ensembl, a list of chromosomes with *name* and *length* (in bp)
39
+
40
+ *Note: species in Ensembl can be found in one of these lists:
41
+ [vertebrates](https://uswest.ensembl.org/info/about/species.html),
42
+ ["metazoa"](https://metazoa.ensembl.org/species.html),
43
+ [plants](https://plants.ensembl.org/species.html),
44
+ [fungi](https://fungi.ensembl.org/species.html),
45
+ [protists](http://protists.ensembl.org/species.html),
46
+ or [bacteria](http://bacteria.ensembl.org/species.html).*
47
+
48
+
49
+ **Recombination rates:**
50
+
51
+ - [] genetic map of recombination rates (as a hapmap or csv file)
52
+ - [] genome-wide mean recombination rate (which will be used as the default)
53
+
54
+
55
+ **Mutation rate:**
56
+
57
+ - [] genome-wide mean mutation rate
58
+
59
+
60
+ **Demographic model:**
61
+
62
+ - [] as a list of population sizes, growth rates, migration rates, etcetera. **(optional)**
63
+ - [] citation
64
+
65
+
66
+ **Other information:**
67
+
68
+ These are things we don't currently use, but will want to use in the future:
69
+
70
+ - [] sex determination system, and which chromosomes are the sex chromosome(s)
71
+ - [] ploidy
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: Species QC issue template
3
+ about: Quality control process for species addition
4
+ title: QC for {species}
5
+ labels: Species QC
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **PR for new species:** {link to Pull Request}
11
+
12
+ If you volunteer to QC this species, please use the checklist below.
13
+ While this list is intended to be comprehensive, it may not be exhaustive.
14
+ Where relevant, the QC reviewer should identify that parameter values match
15
+ those given in the linked citation(s).
16
+
17
+ The QC reviewer should start a pull request that fills out the test stubs
18
+ with independently obtained values. The reviewer may look at the python code
19
+ for rationale provided in comments, but should ignore the actual code
20
+ as much as possible - comments in the code should give enough information
21
+ that it's obvious how to get the correct value from the provided references.
22
+ (In particular, we shouldn't copy-paste the value from the code into the test!)
23
+
24
+ - [ ] Recombination rate.
25
+ - This might be genome-wide, or per-chromosome. Both are fine.
26
+ - Check there's a comment describing where it came from, and/or how calculated.
27
+ - From a publication? Check the value(s) match the publication.
28
+ - Calculated somehow? Average over a recombination/genetic map? Redo the calculation.
29
+ - [ ] Mutation rate.
30
+ - This might be genome-wide, or per-chromosome. Both are fine.
31
+ - Check there's a comment describing where it came from, and/or how calculated.
32
+ - From a publication? Check the value(s) match the publication.
33
+ - Calculated somehow? Redo the calculation.
34
+ - [ ] Recombination/genetic map (if present).
35
+ - Does it match the assembly? Liftover is fine, if clearly stated.
36
+ - Is the description/long_description a good summary of how the map was created?
37
+ - [ ] Population size.
38
+ - [ ] Generation time.
39
+
40
+ For each citation, check:
41
+ - Doi link.
42
+ - Is publication a preprint? Is there a peer-reviewed publication instead?
43
+ - Is the year correct.
44
+ - Is the author correct (spelling, accents/ligatures/etc.)
45
+
46
+ Citations are required for:
47
+ - [ ] Genome reference assembly.
48
+ - [ ] Mutation rate.
49
+ - [ ] Recombination rate.
50
+ - [ ] Recombination/genetic map(s) (if relevant).
51
+ - [ ] Population size.
52
+ - [ ] Generation time.
53
+
54
+ The final PR should:
55
+ - [ ] fill out the test stubs
56
+ - [ ] delete the `pytest.mark.skip` lines that make the tests not run
57
+ - [ ] make sure they pass, talking to the original author to figure out discrepancies
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/requirements/CI"
5
+ schedule:
6
+ interval: weekly
7
+ open-pull-requests-limit: 10
@@ -0,0 +1,34 @@
1
+ queue_rules:
2
+ - name: default
3
+ conditions:
4
+ - base=main
5
+ - check-success=build-deploy-docs
6
+ - check-success=pre-commit
7
+ - check-success=tests (ubuntu-20.04, 3.7)
8
+ - check-success=tests (ubuntu-20.04, 3.10)
9
+ - check-success=tests (macos-11, 3.7)
10
+ - check-success=tests (macos-11, 3.10)
11
+ - check-success=tests (windows-latest, 3.7)
12
+ - check-success=tests (windows-latest, 3.10)
13
+ - check-success=codecov/patch
14
+ - check-success=codecov/project
15
+
16
+ pull_request_rules:
17
+ - name: automatic merge for Dependabot pull requests
18
+ conditions:
19
+ - base=main
20
+ - author~=^dependabot(|-preview)\[bot\]$
21
+ - label=dependencies
22
+ - check-success=build-deploy-docs
23
+ - check-success=pre-commit
24
+ - check-success=tests (ubuntu-20.04, 3.7)
25
+ - check-success=tests (ubuntu-20.04, 3.10)
26
+ - check-success=tests (macos-10.15, 3.7)
27
+ - check-success=tests (macos-10.15, 3.10)
28
+ - check-success=tests (windows-latest, 3.7)
29
+ - check-success=tests (windows-latest, 3.10)
30
+ - check-success=codecov/patch
31
+ - check-success=codecov/project
32
+ actions:
33
+ queue:
34
+ name: default
@@ -0,0 +1,60 @@
1
+ name: Build and deploy docs
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+ tags:
8
+ - '*'
9
+
10
+ # Allow the deploy job to write to the repo (e.g. gh-pages).
11
+ permissions:
12
+ contents: read
13
+ pages: write
14
+ id-token: write
15
+
16
+ # Only one concurrent deployment
17
+ concurrency:
18
+ group: "pages"
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ # Only run in the main repo; skip in forks or other repos (e.g. stdvoidsim-docs) to avoid 404 on checkout.
23
+ build:
24
+ if: github.repository == 'kevinkorfmann/stdvoidsim'
25
+ runs-on: ubuntu-24.04
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ with:
29
+ fetch-depth: 0
30
+
31
+ - uses: actions/setup-python@v5
32
+ with:
33
+ python-version: "3.10"
34
+
35
+ - name: Install deps
36
+ run: |
37
+ python -m pip install wheel
38
+ python -m pip install -r requirements/CI/requirements.txt
39
+ python -m pip install .
40
+
41
+ - name: Build Docs
42
+ run: make -C docs
43
+
44
+ - name: Upload artifact
45
+ if: (!github.event.pull_request)
46
+ uses: actions/upload-pages-artifact@v3
47
+ with:
48
+ path: docs/_build/html
49
+
50
+ # Uncomment the deploy job and enable Pages (Settings → Pages → Source: GitHub Actions) to publish docs.
51
+ # deploy:
52
+ # if: (!github.event.pull_request) && github.repository == 'kevinkorfmann/stdvoidsim'
53
+ # needs: build
54
+ # runs-on: ubuntu-24.04
55
+ # environment:
56
+ # name: github-pages
57
+ # url: ${{ steps.deploy.outputs.page_url }}
58
+ # steps:
59
+ # - id: deploy
60
+ # uses: actions/deploy-pages@v4
@@ -0,0 +1,17 @@
1
+ name: pre-commit
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ pre-commit:
11
+ runs-on: ubuntu-24.04
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: actions/setup-python@v5
15
+ with:
16
+ python-version: 3.12
17
+ - uses: pre-commit/action@v3.0.1
@@ -0,0 +1,37 @@
1
+ # Publish stdferdowsim to PyPI when a version tag (v*.*.*) is pushed.
2
+ # Uses PyPI Trusted Publishing (OIDC); no API token needed.
3
+ # Configure the publisher at https://pypi.org/manage/project/stdferdowsim/settings/publishing/
4
+ # Then: git tag v0.1.0 && git push origin v0.1.0
5
+ name: Publish to PyPI
6
+
7
+ on:
8
+ push:
9
+ tags:
10
+ - "v*.*.*"
11
+
12
+ jobs:
13
+ build-and-publish:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ id-token: write # required for Trusted Publishing
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+ with:
21
+ fetch-depth: 0 # needed for setuptools_scm to get version from tag
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.12"
27
+
28
+ - name: Install build dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install build
32
+
33
+ - name: Build package
34
+ run: python -m build
35
+
36
+ - name: Publish to PyPI
37
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,90 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ tests:
11
+ runs-on: ${{ matrix.os }}
12
+ defaults:
13
+ run:
14
+ shell: bash
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-24.04, macos-latest, windows-latest]
19
+ python: ["3.10", "3.12"]
20
+ env:
21
+ CONDA_ENV_NAME: stdvoidsim
22
+ OS: ${{ matrix.os }}
23
+ PYTHON: ${{ matrix.python }}
24
+ steps:
25
+ - name: cancel previous runs
26
+ uses: styfle/cancel-workflow-action@0.12.1
27
+ with:
28
+ access_token: ${{ github.token }}
29
+
30
+ - name: checkout
31
+ uses: actions/checkout@v4.2.2
32
+
33
+ - name: Cache conda and dependencies
34
+ id: cache
35
+ uses: actions/cache@v4.2.0
36
+ env:
37
+ # Increase this to reset the cache if the key hasn't changed.
38
+ CACHE_NUM: 0
39
+ with:
40
+ path: ${{ env.CONDA }}/envs
41
+ key: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.python}}-conda-${{ env.CACHE_NUM }}-${{ hashFiles('requirements/CI/*') }}
42
+
43
+ - name: Install Conda
44
+ uses: conda-incubator/setup-miniconda@v3.1.0
45
+ if: steps.cache.outputs.cache-hit != 'true'
46
+ with:
47
+ activate-environment: anaconda-client-env
48
+ python-version: ${{ matrix.python }}
49
+ channels: conda-forge
50
+ channel-priority: strict
51
+ auto-update-conda: true
52
+
53
+ - name: Fix windows .profile
54
+ if: steps.cache.outputs.cache-hit != 'true' && matrix.os == 'windows-latest'
55
+ run: |
56
+ cp ~/.bash_profile ~/.profile
57
+
58
+ - name: Install conda deps
59
+ if: steps.cache.outputs.cache-hit != 'true'
60
+ shell: bash -l {0} #We need a login shell to get conda
61
+ run: |
62
+ conda install --yes --file=requirements/CI/conda.txt
63
+
64
+ - name: Install pip deps
65
+ if: steps.cache.outputs.cache-hit != 'true'
66
+ shell: bash -l {0}
67
+ run: |
68
+ pip install -r requirements/CI/requirements.txt
69
+
70
+ - name: run test suite
71
+ run: |
72
+ source ~/.profile
73
+ conda activate anaconda-client-env
74
+ python -m pytest \
75
+ -n 0 \
76
+ -v \
77
+ --cov=stdvoidsim \
78
+ --cov-branch \
79
+ --cov-report=term-missing \
80
+ --cov-report=xml \
81
+ tests
82
+
83
+ - name: upload coverage report to codecov
84
+ uses: codecov/codecov-action@v5.1.1
85
+ with:
86
+ fail_ci_if_error: true
87
+ env_vars: OS,PYTHON
88
+ # Use upload token to avoid upload failures.
89
+ # https://github.com/codecov/codecov-action/issues/837
90
+ token: 8ae76ade-9d0e-4a2d-b9ef-1180235be07f
@@ -0,0 +1,20 @@
1
+ __pycache__
2
+ stdferdowsim/_version.py
3
+ docs/_build
4
+ docs/parameter_images
5
+ .*.swp
6
+ build
7
+ dist
8
+ stdvoidsim.egg-info
9
+ .coverage
10
+ htmlcov
11
+ _test_cache
12
+ test_cache
13
+ .manuscript
14
+ .test/*
15
+ !.test/run_slim_test.py
16
+ !.test/run_simulation.py
17
+ !.test/README.txt
18
+ !.test/run_cli_test.sh
19
+ !.test/install_and_run.sh
20
+ *.pyc
@@ -0,0 +1,28 @@
1
+ # .readthedocs.yml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ build:
9
+ os: ubuntu-22.04
10
+ tools:
11
+ python: "mambaforge-23.11"
12
+ jobs:
13
+ post_checkout:
14
+ - git fetch --unshallow || true
15
+
16
+ sphinx:
17
+ builder: html
18
+ configuration: docs/conf.py
19
+ fail_on_warning: false
20
+
21
+ conda:
22
+ environment: requirements/rtd-conda-environment.yml
23
+
24
+ python:
25
+ # Install the local package using pip so that stdferdowsim is in the path.
26
+ install:
27
+ - method: pip
28
+ path: .
@@ -0,0 +1,27 @@
1
+ stdvoidsim – install and use (hidden test dir)
2
+
3
+ Install (from repo root):
4
+ pip install -e .
5
+
6
+ Or use the script (creates .test/venv and installs there):
7
+ .test/install_and_run.sh
8
+
9
+ Use (Python):
10
+ import stdvoidsim
11
+ species = stdvoidsim.get_species("DagHyd") # Deep Ones
12
+ model = species.get_demographic_model("InnsmouthDecline_1M27")
13
+ contig = species.get_contig(length=10_000)
14
+ engine = stdvoidsim.get_default_engine()
15
+ ts = engine.simulate(model, contig, {"DeepOnes": 4})
16
+ print(ts.num_trees, ts.num_sites)
17
+
18
+ Use (CLI):
19
+ stdvoidsim DagHyd -d InnsmouthDecline_1M27 -L 10000 -o out.trees DeepOnes:4
20
+
21
+ Run the test script (from repo root, after install):
22
+ python .test/run_simulation.py
23
+ # or: .test/install_and_run.sh
24
+
25
+ Run SLiM engine test (script generation + optional run; diploid species only):
26
+ python .test/run_slim_test.py
27
+ # Script generation works without SLiM. Actual run requires SLiM on PATH (SLiM 3.x recommended; 4.x may need engine updates).
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env bash
2
+ # From repo root: create venv, install stdgrimmsim, then run the test script.
3
+ set -e
4
+ cd "$(dirname "$0")/.."
5
+ TESTDIR=".test"
6
+ if [ ! -d "$TESTDIR/venv" ]; then
7
+ echo "Creating venv in $TESTDIR/venv ..."
8
+ python3 -m venv "$TESTDIR/venv"
9
+ fi
10
+ echo "Activating venv and installing stdgrimmsim (editable)..."
11
+ source "$TESTDIR/venv/bin/activate"
12
+ pip install -e . -q
13
+ echo "Running simulation test..."
14
+ python "$TESTDIR/run_simulation.py"
15
+ deactivate 2>/dev/null || true
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ # Run stdgrimmsim CLI (requires venv: run install_and_run.sh first, or have stdgrimmsim on PATH).
3
+ set -e
4
+ cd "$(dirname "$0")/.."
5
+ if [ -d ".test/venv" ]; then
6
+ source .test/venv/bin/activate
7
+ fi
8
+ stdgrimmsim DagHyd -d InnsmouthDecline_1M27 -L 5000 -o .test/out.trees DeepOnes:4
9
+ echo "Wrote .test/out.trees"
10
+ python3 -c "import tskit; ts=tskit.load('.test/out.trees'); print(' Trees:', ts.num_trees, 'Sites:', ts.num_sites)"
11
+ rm -f .test/out.trees
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env python3
2
+ """Quick test: load stdferdowsim and run tiny simulations for several models."""
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ # Allow running from repo root without installing (add parent to path)
7
+ repo = Path(__file__).resolve().parent.parent
8
+ if str(repo) not in sys.path:
9
+ sys.path.insert(0, str(repo))
10
+
11
+
12
+ def run_one(engine, species_id, model_id, samples, length=5000, seed=42):
13
+ import stdferdowsim
14
+ species = stdferdowsim.get_species(species_id)
15
+ model = species.get_demographic_model(model_id)
16
+ contig = species.get_contig(length=length)
17
+ ts = engine.simulate(model, contig, samples, seed=seed)
18
+ return ts
19
+
20
+
21
+ def main():
22
+ import stdferdowsim
23
+
24
+ engine = stdferdowsim.get_default_engine()
25
+ tests = [
26
+ ("ZweBerg", "BlackForest_1D12", {"BlackForest": 4}, "Mountain Dwarves"),
27
+ ("ZweBerg", "HarzBlackForest_2D12", {"BlackForest": 2, "Harz": 2}, "Dwarves two-pop"),
28
+ ("NixRhe", "Rhine_1D12", {"Rhine": 4}, "Nix (Rhine)"),
29
+ ("FraHol", "WellRealm_1D12", {"WellRealm": 4}, "Frau Holle"),
30
+ ("SchWar", "BlackForest_1D12", {"NorthBlackForest": 4}, "Black Forest spirit"),
31
+ ]
32
+
33
+ for species_id, model_id, samples, label in tests:
34
+ print(f"{label} ({species_id} / {model_id})")
35
+ try:
36
+ ts = run_one(engine, species_id, model_id, samples)
37
+ print(f" Trees: {ts.num_trees}, Sites: {ts.num_sites}, Samples: {ts.num_samples}")
38
+ except Exception as e:
39
+ print(f" FAIL: {e}")
40
+ print("Done")
41
+
42
+ if __name__ == "__main__":
43
+ main()