Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle removed replisomes in superhelical density calculations #269

Merged
merged 8 commits into from
Dec 17, 2024

Conversation

thalassemia
Copy link
Contributor

@thalassemia thalassemia commented Dec 17, 2024

If a replisome is unexpectedly removed from the simulation, the superhelical density calculation will fail (see gh-268). While our simulation does not allow this to happen, it can happen in real cells (see https://doi.org/10.1016/S0968-0004(00)01565-6), so I figured I might as well try to tackle the issue.

My solution was to always assume that the now bare replication fork is located at the last recorded location for a removed replisome. For now, I also assume that the bare fork acts like a regular one, treating it as a stationary boundary for superhelical density calculations. In the future, we could introduce more dynamic models of replication fork collapse that include things like dsDNA breaks and replication restart. At that time, we could replace the placeholder indices for removed replisomes with designated indices for each possibility. We could then calculate superhelical density differently for segments bounded by molecules with those indices.

Other minor things:

  • Update dependency versions
  • Require full experiment ID for runscripts/workflow.py --resume
  • Change analysis publish mode to copy to allow caching (no need to rerun when resuming)
  • Sanity check that unique molecule indices are unique upon creation
  • Add pre-commit instructions to set up ruff linting and formatting for every commit

@thalassemia thalassemia merged commit 8f630d2 into master Dec 17, 2024
6 checks passed
Copy link

Package Line Rate Complexity Health
. 30% 0
analysis 100% 0
analysis.antibiotics_colony 11% 0
analysis.antibiotics_colony.subgen_gene_plots 20% 0
analysis.causality_network 18% 0
analysis.colony 11% 0
analysis.multidaughter 100% 0
analysis.multiexperiment 100% 0
analysis.multigeneration 23% 0
analysis.multiseed 17% 0
analysis.multivariant 17% 0
analysis.single 15% 0
composites 35% 0
composites.ecoli_configs 90% 0
composites.environment 26% 0
debug 17% 0
ecoli 9% 0
ecoli.compendium 18% 0
ecoli.dataclasses 31% 0
ecoli.dataclasses.process 22% 0
ecoli.dataclasses.state 32% 0
ecoli.scripts 43% 0
ecoli.scripts.fold_changes 15% 0
ecoli.scripts.metabolism_kinetics 36% 0
ecoli.scripts.metabolite_concentrations 26% 0
ecoli.scripts.nca 10% 0
ecoli.scripts.protein_half_lives 29% 0
ecoli.scripts.rna_half_lives 21% 0
experiments 35% 0
io 52% 0
library 48% 0
library.cell_wall 14% 0
processes 42% 0
processes.antibiotics 27% 0
processes.chemotaxis 14% 0
processes.environment 29% 0
processes.listeners 78% 0
processes.membrane 27% 0
processes.spatiality 19% 0
processes.stubs 45% 0
tests 22% 0
tests.io 24% 0
tests.utils 25% 0
utils 28% 0
utils._netflow 45% 0
variants 36% 0
Summary 28% (8461 / 30175) 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant