## 2 Methods
### Force Application on Elastic Networks  
Here, we propose a new approach for the calculation of protein flexibility and fluctuations. This approach is based on the application of random forces on protein elastic networks. These forces are intended to simulate the external perturbations that arise from the external environment, i.e., protein-solvent interactions, Brownian motions, collisions of molecules, etc. The reality, however, is that the environment is not usually known, but cryoEM has the promise of providing some information about this. In this work, we use two different ENMs for modelling the protein structure. The first one is the parameter-free anisotropic network model (pfANM) [33], where the C\({}^{\alpha}\) atoms are the only nodes used to build the protein network and all the C\({}^{\alpha}\)-C\({}^{\alpha}\) connections are considered to be linked with distance-dependent springs. In the second model, the water molecules contained in the PDB file are also added to the network as additional nodes. Additional springs are correspondingly created that connect the water molecules to all the other nodes of the network. We refer to this second model as the water-pfANM (wpfANM). Both models are built by considering a decay exponent \(p\) for the spring constant equal to 3 (see Equation (2)), based on results shown to yield the best results analyzed in our previous work [62]. The response of the protein structure to external perturbations is evaluated by applying forces to the nodes of the network and consequently computing the corresponding elastic displacements. Various force application patterns are considered here. For the pfANM, the perturbations are applied both to the complete structure, i.e., on all C\({}^{\alpha}\) atoms, and separately only to the nodes lying on the external protein surface. For the wpfANM, three different force patterns are considered: (1) forces acting on the entire network, i.e., all the C\({}^{\alpha}\) atoms and water molecules, (2) only on the nodes lying on the protein-water network surface, and (3) only on the water molecules. For each of the models considered (pfANM and wpfANM) and their force application patterns, the calculation is based on the generation of a random \(3\times 1\) force vector \(\mathbf{F_{i}}^{s}\) for each node \(i\) to be perturbed for each simulation \(s\). The three scalar components of this force vector, i.e., \(F_{i,x}\), \(F_{i,y}\) and \(F_{i,z}\), are sampled from a uniform distribution \(U\) in the interval [-1,1]. The complete force vector \(\mathbf{F}^{s}\) is then generated by assembling all the \(3\times 1\) nodal vectors. Note that \(\mathbf{F}^{s}\) is a \(3N\times 1\) vector, with \(N\) the number of C\({}^{\alpha}\) atoms in the pfANM case or the total number of C\({}^{\alpha}\) atoms plus water molecules in the wpfANM. Once the force vector \(\mathbf{F}^{s}\) is defined, it is straightforward to compute the \(3N\times 1\) displacement vector \(\mathbf{\delta}^{s}\) for each simulation \(s\) that contains the elastic displacements of the nodes, i.e., the protein response, as follows:  
\[\mathbf{\delta}^{s}=\mathbf{H}^{-1}\mathbf{F}^{s}, \tag{4}\]  
where \(\mathbf{H}^{-1}\) is the pseudo-inverse of the elastic network. \(\mathbf{H}^{-1}\) can be computed from the eigenvalues and eigenvectors of the Hessian matrix as:  
\[\mathbf{\widetilde{H}}^{-1}=\sum_{n=7}^{3N}\frac{\mathbf{U_{n}}\mathbf{U_{n}}^{T}}{\lambda _{n}}. \tag{5}\]  
From the displacement vector \(\mathbf{\delta}^{s}\), the total displacement of each \(i\)th node can be computed as:  
\[\delta_{i}^{s}=\sqrt{\left(\delta_{i,x}{}^{s}\right)^{2}+\left(\delta_{i,y}{} ^{s}\right)^{2}+\left(\delta_{i,z}{}^{s}\right)^{2}}, \tag{6}\]  
With \(\delta_{i,x}{}^{s}\), \(\delta_{i,y}{}^{s}\) and \(\delta_{i,z}{}^{s}\) being the three Cartesian components of the node displacements. This procedure is repeated multiple times in order to generate a sample with different random force vectors \(\mathbf{F}^{s}\) and evaluating the corresponding node displacements \(\mathbf{\delta}^{s}\) each time.