From my understanding, accurate simulations at the electron level (post Hartree Fock / DFT) are currently limited to 100 atoms (on a gpu cluster this can take hours or days). Maybe this can be pushed to 1000 atoms with aggressive optimization techniques like FMM.
So at this level of simulation it is currently only possible to simulate one medium size molecule or the interaction of a few small ones.
To simulate larger systems, it is necessary to work at a (semi-)classical level of abstraction that approximates quantum mechanics. For example using molecular dynamics to essentially simulate a fluid with a ball and springs model. In this case, electron level simulation can still be useful for deriving heuristics (conceptually, the spring tension).
I completely agree that it’s interesting to investigate how far the electron level simulation can be pushed.
Theoretically yes, but the method that is currently implemented (Hartree Fock) is notoriously inaccurate for molecular interactions. For example it does not predict the Van Der Waals force between water molecules.
I’m planning to add support for an alternative method called density functional theory which gives better results for molecular interaction.
The short answer is yes, but either memory (if the electron integrals are cached) or runtime (if they are not cached) currently scales like O(n^4) where n is the number of atoms.
In cached mode, it can currently jit compile the graph for molecules of around 10 atoms in ~5 minutes on one T4 gpu. Once the graph is compiled, the actual geometry optimization only takes a few seconds.
I’m working on optimizations that improve the scaling behavior (such as density fitting) with the goal of achieving similar or even better performance for molecules with ~50 atoms.
In a nutshell, the only approximation in Hartree Fock is the assumption that the electronic wave function has a very specific form. Namely, that it is a Slater determinant of orbitals, and that each orbital is a linear combination of atomic orbitals from a fixed basis set.
The linear coefficients of the orbitals are then solved for via the (exact) variational method.
Of course, the true wave function is generally not a Slater determinant. In particular, electrons in a Slater determinant with different spins are uncorrelated.
The standard approach to resolving this is density functional theory. In that model, the main approximation is the choice of an “exchange correlation functional” which approximates the electron exchange and correlation energy. The choice of a functional is unfortunately a dark art in the sense that they can only be evaluated empirically rather than from first principles.
Since the gradients are computed with jax, the library can be used to differentiate with respect to all inputs including nuclear charge and basis set parameters (exponents and contraction coefficients). I agree that computing gradients for the nuclear charges could be interesting in the context of molecular design.
But for the colab demo I thought that sticking to nuclear positions (i.e atomic forces) would be easier to visualize.
For example, you could use an additively homomorphic scheme to compute a sum of encrypted values. This could then be converted into an average assuming you knew the number of values.
I completely agree that it is possible to homomorphically evaluate b - <a,s> much more easily using homomorphic addition and multiplication. However, wouldn't we still need some sort of blind rotate magic to bound the output error?
As other commenters have mentioned, it is common practice to use such an approach to find genes that are associated with a disease (GWAS).
But finding a correlated gene is only the first step. One issue is that a single protein can participate in hundreds of seemingly unrelated chemical reactions throughout the body depending on the cell type and environment. So simply tweaking the genes expression will have many unintended consequences.
For instance, each cell is constantly maintaining a baffling complex balance between growing and dying. Any external perturbation has a good chance of either killing the cell or causing cancer.
Yes, the even healthy cells are constantly transporting protein fragments to the cell surface but the immune system learns to ignore these as it is developing.
In addition, B and T cells only detect fragments on the surface of active Dendric cells. Dendric cells become active in response to alternate and less specific indications of infection such as an unusually high amount of mRNA translation or families of protein that occur only in bacteria and viruses.
1. One advantage of the mRNA vaccine is that each strand of mRNA is translated to protein many times before it is degraded. So less vaccine has to be manufactured and the dosage can be smaller. Another advantage is that since it lacks proteins you do not develop immunity to the vaccine itself, meaning that you can receive multiple booster doses.
2. Yes, the mRNA is ultimately degraded. But part of the process of developing the vaccine is fine tuning the precise rna sequence in order to achieve the desired half life.
One issue I noticed: I looked up Chana Masala and the first recipe (Vegan Chana Masala) calls for “12 tsp salt” but the source calls for “1/2 tsp salt” :)
Indeed, the statement is that for any list of axioms there exists a countable set of objects satisfying them.
For example, you could write down axioms for the real numbers by specifying that there should be relations called + and x with the standard properties such as commutativity, as well as an ordering relation < such that for all elements x and y there is an element z for which: x < z < y.
Clearly the real numbers are a model for these axioms. But as it turns out the countable set of rational numbers is a model as well.
So at this level of simulation it is currently only possible to simulate one medium size molecule or the interaction of a few small ones.
To simulate larger systems, it is necessary to work at a (semi-)classical level of abstraction that approximates quantum mechanics. For example using molecular dynamics to essentially simulate a fluid with a ball and springs model. In this case, electron level simulation can still be useful for deriving heuristics (conceptually, the spring tension).
I completely agree that it’s interesting to investigate how far the electron level simulation can be pushed.