msasim 24.10.4__cp312-cp312-musllinux_1_2_x86_64.whl → 24.13.0__cp312-cp312-musllinux_1_2_x86_64.whl

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.

Potentially problematic release.


This version of msasim might be problematic. Click here for more details.

Binary file
msasim/sailfish.py CHANGED
@@ -1,5 +1,5 @@
1
1
  import _Sailfish
2
- import os, warnings, math, operator, time, profile
2
+ import os, warnings, math, operator, time, profile, tempfile, pathlib
3
3
  from functools import reduce
4
4
  from typing import List, Optional, Dict
5
5
  from re import split
@@ -101,12 +101,9 @@ class ZipfDistribution(Distribution):
101
101
  """
102
102
  self.p = p
103
103
  self.truncation = truncation
104
- HARMONIC = lambda n,s: sum([(i**-s) for i in range(1,n+1)])
105
- PMF = lambda x: (x**-p)*(1.0/HARMONIC(truncation, p))
106
- CDF = lambda x: HARMONIC(x, p) / HARMONIC(truncation, p)
107
- norm_factor = CDF(truncation) - CDF(0)
108
104
 
109
- probabilities = [PMF(i)/norm_factor for i in range(1, truncation+1)]
105
+ norm_factor = sum([(i**-p) for i in range(1,truncation+1)])
106
+ probabilities = [(i**-p)/norm_factor for i in range(1, truncation+1)]
110
107
 
111
108
  self.set_dist(probabilities)
112
109
 
@@ -465,15 +462,16 @@ class Simulator:
465
462
  def set_replacement_model(
466
463
  self,
467
464
  model: _Sailfish.modelCode,
465
+ amino_model_file: pathlib.Path = None,
468
466
  model_parameters: List = None,
469
467
  gamma_parameters_alpha : float = 1.0,
470
- gamma_parameters_catergories: int = 1,
468
+ gamma_parameters_categories: int = 1,
471
469
  invariant_sites_proportion: float = 0.0
472
470
  ) -> None:
473
471
  if not model:
474
472
  raise ValueError(f"please provide a substitution model from the the following list: {_Sailfish.modelCode}")
475
- if int(gamma_parameters_catergories) != gamma_parameters_catergories:
476
- raise ValueError(f"gamma_parameters_catergories has to be a positive int value: received value of {gamma_parameters_catergories}")
473
+ if int(gamma_parameters_categories) != gamma_parameters_categories:
474
+ raise ValueError(f"gamma_parameters_catergories has to be a positive int value: received value of {gamma_parameters_categories}")
477
475
  self._model_factory = _Sailfish.modelFactory(self._simProtocol._get_Sailfish_tree())
478
476
 
479
477
  self._model_factory.set_alphabet(self._alphabet)
@@ -481,6 +479,8 @@ class Simulator:
481
479
  if model_parameters:
482
480
  raise ValueError(f"no model parameters are used in protein, recevied value of: {model_parameters}")
483
481
  self._model_factory.set_replacement_model(model)
482
+ if model == MODEL_CODES.CUSTOM and amino_model_file:
483
+ self._model_factory.set_amino_replacement_model_file(str(amino_model_file))
484
484
  else:
485
485
  if model == MODEL_CODES.NUCJC and model_parameters:
486
486
  raise ValueError(f"no model parameters in JC model, recevied value of: {model_parameters}")
@@ -492,7 +492,7 @@ class Simulator:
492
492
  else:
493
493
  self._model_factory.set_model_parameters(model_parameters)
494
494
 
495
- self._model_factory.set_gamma_parameters(gamma_parameters_alpha, gamma_parameters_catergories)
495
+ self._model_factory.set_gamma_parameters(gamma_parameters_alpha, gamma_parameters_categories)
496
496
  self._model_factory.set_invariant_sites_proportion(invariant_sites_proportion)
497
497
  self._simulator.init_substitution_sim(self._model_factory)
498
498
 
@@ -537,6 +537,26 @@ class Simulator:
537
537
  Msas.append(msa)
538
538
  return Msas
539
539
 
540
+ def simulate_low_memory(self, output_file_path: pathlib.Path) -> Msa:
541
+ if self._simProtocol._is_insertion_rate_zero and self._simProtocol._is_deletion_rate_zero:
542
+ msa = Msa(sum(self.get_sequences_to_save()),
543
+ self._simProtocol.get_sequence_size(),
544
+ self.get_sequences_to_save())
545
+ else:
546
+ blocktree = self.gen_indels()
547
+ msa = Msa(blocktree._get_Sailfish_blocks(),
548
+ self._simProtocol._get_root(),
549
+ self.get_sequences_to_save())
550
+
551
+ # sim.init_substitution_sim(mFac)
552
+ if self._simulation_type != SIMULATION_TYPE.NOSUBS:
553
+ with tempfile.TemporaryDirectory() as tmpdirname:
554
+ self._simulator.gen_substitutions_to_dir(msa.get_length(), tmpdirname)
555
+ msa._msa.set_substitutions_folder(tmpdirname)
556
+ msa._msa.write_msa_from_dir(str(output_file_path))
557
+
558
+
559
+
540
560
  def __call__(self) -> Msa:
541
561
  return self.simulate(1)[0]
542
562
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: msasim
3
- Version: 24.10.4
3
+ Version: 24.13.0
4
4
  Summary: A fast MSA simulator
5
5
  Home-page: https://github.com/elyawy/Sailfish-backend
6
6
  Author: Elya Wygoda
@@ -9,7 +9,7 @@ Requires-Python: >=3.6
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Provides-Extra: test
12
- Requires-Dist: pytest ; extra == 'test'
12
+ Requires-Dist: pytest; extra == "test"
13
13
 
14
14
  # Sailfish
15
15
 
@@ -0,0 +1,10 @@
1
+ _Sailfish.cpython-312-x86_64-linux-musl.so,sha256=ABg26WKU9PLRpgPJ4BshHDT3poGdm0kEAmXCBjIUH1U,1344945
2
+ msasim.libs/libstdc++-496613c0.so.6.0.32,sha256=AwZhL5WFT99I2Q6vIxXOhW7qddfuOZ1xecxiP9QTVY4,3494361
3
+ msasim.libs/libgcc_s-a3a07607.so.1,sha256=5ptIUeAzZweNZrFehN0_Bb5B0FcJgux7NbAFoU8vwwo,148041
4
+ msasim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ msasim/sailfish.py,sha256=o_6N1f1rFXgG0z_b17CJRC3wUzIcoKy__c6s1FroHgI,25901
6
+ msasim-24.13.0.dist-info/top_level.txt,sha256=NS1ILx5V94Yyh_M7yDrrqbBPu1TL_zJuxhsI90YEJVY,17
7
+ msasim-24.13.0.dist-info/RECORD,,
8
+ msasim-24.13.0.dist-info/LICENSE,sha256=p1Aa_mM2Nu6dG3XqMVU62Jhf04lNOwtXUrhhvhcDips,10312
9
+ msasim-24.13.0.dist-info/METADATA,sha256=EnhB_caqxOZOhmTtV7wOJSzEMx-HZyXE4OjlwKsVdVQ,1467
10
+ msasim-24.13.0.dist-info/WHEEL,sha256=0YqoKpIYqm37NqpTXnSSuBR8luVWM2UMssZySUeF554,112
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-musllinux_1_2_x86_64
5
5
 
@@ -1,10 +0,0 @@
1
- _Sailfish.cpython-312-x86_64-linux-musl.so,sha256=39mZDrQz8u928itDmqF9QSYhwizzHxCmX2RdqsmSmNc,1315321
2
- msasim.libs/libstdc++-496613c0.so.6.0.32,sha256=AwZhL5WFT99I2Q6vIxXOhW7qddfuOZ1xecxiP9QTVY4,3494361
3
- msasim.libs/libgcc_s-a3a07607.so.1,sha256=5ptIUeAzZweNZrFehN0_Bb5B0FcJgux7NbAFoU8vwwo,148041
4
- msasim-24.10.4.dist-info/LICENSE,sha256=p1Aa_mM2Nu6dG3XqMVU62Jhf04lNOwtXUrhhvhcDips,10312
5
- msasim-24.10.4.dist-info/METADATA,sha256=lcUfw5rRfQ2FfAc8yEwU8I82UHWQp-r_WFW_PnsGP0U,1468
6
- msasim-24.10.4.dist-info/RECORD,,
7
- msasim-24.10.4.dist-info/WHEEL,sha256=BwYrisTu1yp8WloXcEi-3Rmdx-uar3nqcuXFSFGpP_Q,112
8
- msasim-24.10.4.dist-info/top_level.txt,sha256=NS1ILx5V94Yyh_M7yDrrqbBPu1TL_zJuxhsI90YEJVY,17
9
- msasim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- msasim/sailfish.py,sha256=xcSh3Q4fo-PiQVjYQgqcqCV3sJ-u32jdMhsJJAL9vHY,24896