Skip to content

Commit

Permalink
Merge branch 'master' of ssh://github.com/KarrLab/wc_model_gen
Browse files Browse the repository at this point in the history
  • Loading branch information
jonrkarr committed Apr 2, 2019
2 parents 571b700 + 3ec9a77 commit 5f2df6e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 13 deletions.
32 changes: 21 additions & 11 deletions tests/eukaryote/test_initialize_model.py
Expand Up @@ -50,7 +50,7 @@ def setUp(self):
with open(self.sequence_path, 'w') as f:
f.write('>chr1\nTTTATGAARGTNCTCATHAAYAARAAYGARCTCTAGTTTAT\n'
'>chrX\nATGCGTCA\n'
'>chrMT\nATGAARAARTTYCTCCTCACNCCNCTCTAATTT\n')
'>chrM\nATGAARAARTTYCTCCTCACNCCNCTCTAATTT\n')

self.kb = wc_kb.KnowledgeBase()
cell = self.kb.cell = wc_kb.Cell()
Expand All @@ -61,7 +61,7 @@ def setUp(self):
mito = cell.compartments.create(id='m', name='mitochondrion', volumetric_fraction=0.2)
extra = cell.compartments.create(id='e', name='extracellular space')

chr1 = wc_kb.core.DnaSpeciesType(cell=cell, id='chr1', name='chromosome 1',
chr1 = wc_kb.core.DnaSpeciesType(cell=cell, id='chr1', name='chromosome 1', ploidy=2,
sequence_path=self.sequence_path, circular=False, double_stranded=False)
gene1 = wc_kb.eukaryote_schema.GeneLocus(polymer=chr1, start=1, end=36)
exon1 = wc_kb.eukaryote_schema.GenericLocus(start=4, end=36)
Expand All @@ -75,7 +75,7 @@ def setUp(self):
prot1_spec = wc_kb.core.Species(species_type=prot1, compartment=nucleus)
prot1_conc = wc_kb.core.Concentration(cell=cell, species=prot1_spec, value=0.03)

chrX = wc_kb.core.DnaSpeciesType(cell=cell, id='chrX', name='chromosome X',
chrX = wc_kb.core.DnaSpeciesType(cell=cell, id='chrX', name='chromosome X', ploidy=1,
sequence_path=self.sequence_path, circular=False, double_stranded=False)
gene2 = wc_kb.eukaryote_schema.GeneLocus(polymer=chrX, start=1, end=4)
exon2 = wc_kb.eukaryote_schema.GenericLocus(start=1, end=4)
Expand All @@ -84,9 +84,9 @@ def setUp(self):
transcript2_spec = wc_kb.core.Species(species_type=transcript2, compartment=nucleus)
transcript2_conc = wc_kb.core.Concentration(cell=cell, species=transcript2_spec, value=0.01)

chrMT = wc_kb.core.DnaSpeciesType(cell=cell, id='chrMT', name='mitochondrial chromosome',
chrM = wc_kb.core.DnaSpeciesType(cell=cell, id='chrM', name='mitochondrial chromosome', ploidy=150,
sequence_path=self.sequence_path, circular=False, double_stranded=False)
gene3 = wc_kb.eukaryote_schema.GeneLocus(polymer=chrMT, start=1, end=33)
gene3 = wc_kb.eukaryote_schema.GeneLocus(polymer=chrM, start=1, end=33)
exon3 = wc_kb.eukaryote_schema.GenericLocus(start=1, end=30)
transcript3 = wc_kb.eukaryote_schema.TranscriptSpeciesType(cell=cell, id='trans3',
name='transcript3', gene=gene3, exons=[exon3])
Expand Down Expand Up @@ -222,13 +222,13 @@ def test_gen_dna(self):

chr1_model = model.species_types.get_one(id='chr1')
chrX_model = model.species_types.get_one(id='chrX')
chrMT_model = model.species_types.get_one(id='chrMT')
chrM_model = model.species_types.get_one(id='chrM')

self.assertEqual(chr1_model.name, 'chromosome 1')
self.assertEqual(chr1_model.type, onto['WC:DNA'])
self.assertEqual(all(i.compartment.id=='n' for i in model.species.get(species_type=chr1_model)), True)
self.assertEqual(all(i.compartment.id=='n' for i in model.species.get(species_type=chrX_model)), True)
self.assertEqual(all(i.compartment.id=='m' for i in model.species.get(species_type=chrMT_model)), True)
self.assertEqual(all(i.compartment.id=='m' for i in model.species.get(species_type=chrM_model)), True)

dna = self.kb.cell.species_types.get_one(id='chrX')
L = dna.get_len()
Expand Down Expand Up @@ -344,7 +344,8 @@ def test_gen_distribution_init_concentrations(self):

model = core.EukaryoteModelGenerator(self.kb,
component_generators=[initialize_model.InitializeModel],
options={'component': {'InitializeModel': self.set_options(['gen_distribution_init_concentrations'])}}).run()
options={'component': {'InitializeModel': self.set_options([
'gen_dna', 'gen_distribution_init_concentrations'])}}).run()

met1_nucleus = model.distribution_init_concentrations.get_one(id='dist-init-conc-met1[n]')

Expand All @@ -361,12 +362,21 @@ def test_gen_distribution_init_concentrations(self):

model = core.EukaryoteModelGenerator(self.kb,
component_generators=[initialize_model.InitializeModel],
options={'component': {'InitializeModel': self.set_options(['gen_distribution_init_concentrations'])}}).run()
options={'component': {'InitializeModel': self.set_options([
'gen_dna', 'gen_distribution_init_concentrations'])}}).run()

met1_nucleus = model.distribution_init_concentrations.get_one(id='dist-init-conc-met1[n]')
self.assertEqual(met1_nucleus.mean, 0.5)
self.assertEqual(met1_nucleus.units, unit_registry.parse_units('molecule'))

chr1_conc = model.distribution_init_concentrations.get_one(id='dist-init-conc-chr1[n]')
chrX_conc = model.distribution_init_concentrations.get_one(id='dist-init-conc-chrX[n]')
chrM_conc = model.distribution_init_concentrations.get_one(id='dist-init-conc-chrM[m]')

self.assertEqual(chr1_conc.mean, 2)
self.assertEqual(chrX_conc.mean, 1)
self.assertEqual(chrM_conc.mean, 150)

def test_gen_observables(self):

model = core.EukaryoteModelGenerator(self.kb,
Expand Down Expand Up @@ -418,8 +428,8 @@ def test_gen_kb_rate_laws(self):

model = core.EukaryoteModelGenerator(self.kb,
component_generators=[initialize_model.InitializeModel],
options={'component': {'InitializeModel': self.set_options(['gen_protein',
'gen_metabolites', 'gen_complexes', 'gen_observables',
options={'component': {'InitializeModel': self.set_options(['gen_dna',
'gen_protein', 'gen_metabolites', 'gen_complexes', 'gen_observables',
'gen_distribution_init_concentrations', 'gen_kb_reactions',
'gen_kb_rate_laws'])}}).run()

Expand Down
14 changes: 12 additions & 2 deletions wc_model_gen/eukaryote/initialize_model.py
Expand Up @@ -174,7 +174,7 @@ def gen_dna(self):
__type=wc_kb.core.DnaSpeciesType)

for kb_species_type in kb_species_types:
if 'MT' in kb_species_type.id or 'mt' in kb_species_type.id:
if 'M' in kb_species_type.id:
self.gen_species_type(kb_species_type, ['m'])
else:
self.gen_species_type(kb_species_type, ['n'])
Expand Down Expand Up @@ -329,7 +329,17 @@ def gen_distribution_init_concentrations(self):
for identifier in conc.identifiers:
identifier_model = wc_lang.Identifier(model=model,
namespace=identifier.namespace, id=identifier.id)
conc_model.identifiers.append(identifier_model)
conc_model.identifiers.append(identifier_model)

for chromosome in kb.cell.species_types.get(__type=wc_kb.core.DnaSpeciesType):
model_species_type = model.species_types.get_one(id=chromosome.id)
model_species = model.species.get(species_type=model_species_type)[0]
conc_model = model.distribution_init_concentrations.create(
species=model_species,
mean=chromosome.ploidy,
units=unit_registry.parse_units('molecule'),
)
conc_model.id = conc_model.gen_id()

def gen_observables(self):
""" Generate observables for the model from knowledge base """
Expand Down

0 comments on commit 5f2df6e

Please sign in to comment.