E. Coli Whole Cell Model by Covert Lab Output overview by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Run output is placed under
out/
:Some of the output data is stored as
.cpickle
files. To observe those files, you need the original Python classes, and therefore you have to be inside Docker, from the host it won't work.We can list all the plots that have been produced under Plots are also available in SVG and PDF formats, e.g.:
out/
withfind -name '*.png'
The output directory has a hierarchical structure of type:where:
./out/manual/wildtype_000000/000000/generation_000000/000000/
wildtype_000000
: variant conditions.wildtype
is a human readable label, and000000
is an index amongst the possiblewildtype
conditions. For example, we can have different simulations with different nutrients, or different DNA sequences. An example of this is shown at run variants.000000
: initial random seed for the initial cell, likely fed to NumPy'snp.random.seed
genereation_000000
: this will increase with generations if we simulate multiple cells, which is supported by the model000000
: this will presumably contain the cell index within a generation
We also understand that some of the top level directories contain summaries over all cells, e.g. the
massFractionSummary.pdf
plot exists at several levels of the hierarchy:./out/manual/plotOut/massFractionSummary.pdf
./out/manual/wildtype_000000/plotOut/massFractionSummary.pdf
./out/manual/wildtype_000000/000000/plotOut/massFractionSummary.pdf
./out/manual/wildtype_000000/000000/generation_000000/000000/plotOut/massFractionSummary.pdf
Each of thoes four levels of
plotOut
is generated by a different one of the analysis scripts:./out/manual/plotOut
: generated bypython runscripts/manual/analysisVariant.py
. Contains comparisons of different variant conditions. We confirm this by looking at the results of run variants../out/manual/wildtype_000000/plotOut
: generated bypython runscripts/manual/analysisCohort.py --variant_index 0
. TODO not sure how to differentiate between two different labels e.g.wildtype_000000
andsomethingElse_000000
. If-v
is not given, a it just picks the first one alphabetically. TODO not sure how to automatically generate all of those plots without inspecting the directories../out/manual/wildtype_000000/000000/plotOut
: generated bypython runscripts/manual/analysisMultigen.py --variant_index 0 --seed 0
./out/manual/wildtype_000000/000000/generation_000000/000000/plotOut
: generated bypython runscripts/manual/analysisSingle.py --variant_index 0 --seed 0 --generation 0 --daughter 0
. Contains information about a single specific cell.
E. Coli Whole Cell Model by Covert Lab Publications by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Unfortunately, due to lack of one page to rule them all, the on-Git tree publication list is meager, some of the most relevant ones seems to be:
- 2021 open access review paper: journals.asm.org/doi/full/10.1128/ecosalplus.ESP-0001-2020 "The E. coli Whole-Cell Modeling Project". They should just past that stuff in a README :-) The article mentions that it is a follow up to the previous M. genitalium whole cell model by Covert lab. Only 43% of known genes modelled at this point however, a shame.
- 2020 under Science paywall: www.science.org/doi/10.1126/science.aav3751 "Simultaneous cross-evaluation of heterogeneous E. coli datasets via mechanistic simulation"
David Tong's 2009 Quantum Field Theory lectures at the Perimeter Institute Lecture 1 by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Undergraduate course of the University of Oxford by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Cool data embedded in the Bitcoin blockchain AtomSea & EMBII data format by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Best guess so far, all in ASCII hex of output scripts:
- remove the single output value different from first one from payload, that's the change, and it is randomly placed as far as I see
- 64 bytes: hex address of top level text
- 1 byte: some random punctuation
- decimal number of bytes of some payload
- 1 byte: some random punctuation
- 64 bytes: same as the first address
- CR LF
- ends in NUL
Classification of 3-transitive groups by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
This was the CPU architecure that saved AMD in the 2010's, see also: Video "How AMD went from nearly Bankrupt to Booming by Brandon Yen (2021)"
x86 Paging Tutorial Hardware implementation by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Paging is implemented by the CPU hardware itself.
Paging could be implemented in software, but that would be too slow, because every single RAM memory access uses it!
Operating systems must setup and control paging by communicating to the CPU hardware. This is done mostly via:
- the CR3 register, which tells the CPU where the page table is in RAM memory
- writing the correct paging data structures to the RAM pointed to the CR3 register.Using RAM data structures is a common technique when lots of data must be transmitted to the CPU as it would cost too much to have such a large CPU register.The format of the configuration data structures is fixed by the hardware, but it is up to the OS to set up and manage those data structures on RAM correctly, and to tell the hardware where to find them (via
cr3
).Then some heavy caching is done to ensure that the RAM access will be fast, in particular using the TLB.Another notable example of RAM data structure used by the CPU is the IDT which sets up interrupt handlers. - CR3 cannot be modified in ring 3. The OS runs in ring 0. See also:
- the page table structures are made invisible to the process using paging itself!
Processes can however make requests to the OS that cause the page tables to be modified, notably:
- stack size changes
brk
andmmap
calls, see also: stackoverflow.com/questions/6988487/what-does-brk-system-call-do/31082353#31082353
The kernel then decides if the request will be granted or not in a controlled manner.
Physical address extension.
With 32 bits, only 4GB RAM can be addressed.
This started becoming a limitation for large servers, so Intel introduced the PAE mechanism to Pentium Pro.
Page table structure is also altered if PAE is on. The exact way in which it is altered depends on weather PSE is on or off.
x86 Paging Tutorial Memory management unit by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Paging is done by the Memory Management Unit (MMU) part of the CPU.
It was later integrated into the CPU, but the term MMU still used.
As of 2022:
- www.ox.ac.uk/students/fees-funding/fees/rates gives study fees. Almost all courses are about 9k pounds / academic year. Courses take minimum 3 years, with an optional 4th year masters. The costs of masters can be higher however, though most aren't much.It is funny to note how Public Policy is comically priced at 45,890 for a course without laboratories, how can a country be so corrupt? :-) It was later brought to Ciro's attention that the reason is that those courses are not usually paid by individuals, but by their employers...Another eye popping one is Mathematical & Computational Finance MSc for £36,370.
- www.ox.ac.uk/students/fees-funding/living-costs gives living costs, an average 12k for the usual 9 month period
- there is the Crankstart scholarship: www.ox.ac.uk/admissions/undergraduate/student-life/help-with-the-cost/crankstart-scholarships which gives 5k/year to students whose families have less than 27k/year income, and values decrease from there to 60k/year income where they become zero.It is funny to note that the scholarship was previously named after a Welsh billionaire who studied there and donated and his wife, Michael Moritz and wife Harriet Heyman. It is actually the Welsh who are creating those scholarships for the English! It is so funny to see. His background is quite amazing, from historian to journalist to venture capitalist.It was later renamed Crankstart after the Crankstart Foundation, presumably to help gather funds from others, but it is just still led by Michael.It does appear that most/all of the natural sciences ones are reasonably priced, perhaps they are subsided.
The median household income at the time was 31k[ref]. Clearly, putting one child through university with that income would be basically impossible, you would pay 19 - 5 = 14k/year, almost half of your income. Two children would be impossible. Remember how each family needs to have two children minimum to perpetuate life?
- cherwell.org/2023/10/02/27000-for-a-library-card/ £27,000 for a library card? published on the Cherwell
Divisions of the University of Oxford by
Ciro Santilli 37 Updated 2025-05-21 +Created 1970-01-01
Unlisted articles are being shown, click here to show only listed articles.