Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

coupling

Matlab and Python scripts for calculating functional coupling between time series data.

I've created this repository to store some code that I've written to allow for the estimation of dynamic functional coupling between timeseries using the multiplication of temporal derivatives. Briefly, the function takes timeseries data for a set of nodes (stored in a time X node matrix) and then calculates the point-wise multiplication of the temporal derivative of each pair of nodes at each point in time. The resultant scores are then temporally filtered using a simple moving average -- the window length of which is defined by the user.

If you have any questions, let me know at mac.shine@sydney.edu.au.

Mac

Docker

To make usage of coupling.py reproducible, we provide a Dockerfile to build the container and run the python script. The container is provided for you at poldracklab/coupling, so you should not need to re-build unless you want to make further changes.

How do I use the container?

You will need to install Docker for your platform of choice. Then, you will want to run the container and bind the folder (in this example, in the present working directory) to /data in the container. Here is how to run the container and open up an ipython terminal:

$ docker run -v $PWD:/data -it poldracklab/coupling ...
> from coupling import *

You can also change the --entrypoint to be something other than iPython. Here is an example with regular python:

$ docker run -v $PWD:/data -it --entrypoint python poldracklab/coupling 

In both of the above, the working directory is /code (containing coupling.py), and we've mounted your $PWD to /data so you can add data files to use there. You can now use the functions in coupling, and save any outputs to /data to persist on your local machine. If you want to change the entrypoint to something else:

$ docker run -v $PWD:/data -it --entrypoint bash poldracklab/coupling (base) root@0d2bb5c3f857:/code#

A shell (bash) might be a useful entrypoint if you want to start working on the command line inside the container.

How do I build the container?

If you want to build the container locally, you can do the following:

docker build -t poldracklab/coupling .

How do I update the provided container?

If you find a flaw with the provided container, the build for poldracklab/coupling happens in the continuous integration defined in the .circleci folder which is currently run on a fork of this repository, researchapps/coupling. Thus, to make changes, open a pull request there first, and on merge the container will be updated. The maintainer of researchapps/coupling will forward the changes to the repository here.

Support

If you have an issue or question, you can contact @macshine directly, or open an issue here and one of the maintainers will help you.

About

Matlab and Python scripts for calculating functional coupling between time series data

Resources

Stars

21 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages