Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - mpopara/RotCorrFun: Python script to compute rotational correlation function of a protein backbone N-H vector · GitHub
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RotCorrFun

Python script to compute rotational correlation function of a protein backbone N-H vector

General description

NMR and fluorescence spectroscopy are examples of experimental methods which are sensitive to inter- and intramolecular dynamics across range of timescales, from picoseconds to hours. However, only all-atom MD simulations can provide atomistic insight into these motions. Scripts within this repository serve for calculation of rotational correlation function, Cc), of a vector of interest, using trajectories obtained from all-atom MD simulations. Reorientation of a vector is determined by both overall rotational diffusion of a protein and internal motions. Since global rotational diffusion is much slower compared to internal motions of backbone or side-chain vectors, rotational correlation function Cc) can be separated into correlation function for global and internal rotational motions1:

C(τc) = Cinternalc)Cglobalc)

If MD trajectory is aligned, overall rotational diffusion of a protein will be removed, and only timescales of internal rotational motions can be determined from the analysis of correlation function.

Rotational correlation function can be expressed in terms of second Legendre polynomial of the dot product of the unit vector e at time t and t+τc The scalar product between two unit vectors equals to the cosine of the angle θ between them, which further simplifies the equation:

C(τc) = ⟨P2(e(t)⋅e(t+τc))⟩ = ⟨½(3cos2θ(t+τc)-1)⟩

Within this repository, two scripts are provided, namely RotCorrFun_full_traj.py and RotCorrFun_subtraj.py. In the first case, rotational correlation function is calculated for the entire trajectory. In the latter case, trajectory is divided in N subtrajectories of subtraj_length. The idea is that by subsequently averaging over several subtrajectories, less noisy Cc) can be obtained. Length of subtrajectory should be fewfold longer than the overal rotational diffusion time of the protein (if its estimate is available from other source).

Particularly convenient is to calculate rotational correlation function for the backbone N-H bond vector, because this allows to directly compare the results with NMR data of {1H}-15N labelled protein:

vector_origin = "resname LYS and name N"
vector_end = "resname LYS and name H"

In this particular example, I studied reorientation of N-H bond vectors in lysine residues. Script calculates and saves as .txt file individual lysine correlation functions for each of the (sub)trajectories, as well as the average correlation function across all lysine residues within a (sub)trajectory. Depending on the system under the study, if local environments for different residues vary, such averaging will likely not be meaningful. Therefore, it is left to the user to decide if C(τc) should be averaged over residues and/or trajectories.

Using mdtraj text-based atom selection language, reorientation of any other vector of choice can be monitored by defining its origin and end, as given in the example above.

Lys_N-H_rot_corr_fun

C(τc) can be modelled as weighted sum of exponential decays, whose characteristic times correspond to rotational correlation times of internal and global rotational motions. Furthermore, amplitudes of exponential terms relate to so-called order parameter, S2, which is a measure of bond flexibility, and in the case of backbone vectors, it relates to secondary structure. Full framework related to analysis of rotational correlation function using fluorescence, NMR and MD data is presented in work by Möckel et al, 2019.1

Input file requirement

  • time-ordered trajectory obtained from all-atom MD simulations, in any of the mdtraj compatible formats (dcd, xtc, nc,..). If global rotational diffusion of the protein is to be quantified, trajectory should not be aligned. Otherwise, if only internal motions of backbone and side-chain vectors are of interest, trajectory should be superimposed on the first frame in trajectory.
  • topology as .pdb file

Dependencies

RotCorrFun_full_traj.py and RotCorrFun_subtraj.py are Python scripts developed on Python 3.8.8. Scripts were tested under the following configuration:

  • Windows 10
  • Python 3.8.8
  • numpy 1.23.0
  • mdtraj 1.9.4

References

  1. Mockel, C.; Kubiak, J.; Schillinger, O.; Kuhnemuth, R.; Della Corte, D.; Schroder, G. F.; Willbold, D.; Strodel, B.; Seidel, C. A. M.; Neudecker, P., Integrated NMR, Fluorescence, and Molecular Dynamics Benchmark Study of Protein Mechanics and Hydrodynamics. J Phys Chem B 2019, 123 (7), 1453-1480.

Authors

  • Milana Popara

About

Python script to compute rotational correlation function of a protein backbone N-H vector

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages