Jem Arnold
@jemarnold
PhD candidate & physiotherapist | 🩸Iliac artery endofibrosis / FLIA | Endurance testing & NIRS. Treat declarative statements as questions?
4/5 A minor ⚠️ breaking change to `shift_mnirs()`, `replace_mnirs()`, and `extract_intervals()`: `group_channels` arg handles channels `group_intervals` arg handles intervals for `extract_intervals()` Options are “distinct”, “ensemble”, or a custom group list
3/5 {mnirs} 0.7.0 can now process each `nirs_channel` with independent settings: You can `replace_mnirs()` invalid values with different criteria each for “smo2” and “thb” Or `filter_mnirs()` one channel with “moving average” and another with “butterworth”, side by side
2/5 Core processing functions now accept a list of data frames or grouped dfs with `dplyr::group_by()`: You can `filter_mnirs()` over a list of dfs from multiple `read_mnirs()` files Or `extract_intervals()` from a longer session and `rescale_mnirs()` each independently
{mnirs} R package for reading, processing, analysing muscle near-infrared spectroscopy data🦵🔦 updated to 0.7.0 Mostly internal performance improvements getting ready for `mnirs::analyse_kinetics()` soon! github.com/jemarnold/mn... Here are the key changes: 1/5🧵🔗👇 #rstats #nirs #muscleoxygenation
Doctors, surgeons, clinicians, coaches can directly access the clinician questionnaire from the QR code or link here: mmc.myresearchmanager.com/Survey/9h4fm
Another call for input! 📢 CLINICIANS, COACHES, and ATHLETES managing recovery from surgery for flow limitations in the iliac artery FLIA / endofibrosis We'd love to hear your experiences to help improve care for athletes. Please contact email below 👇 #cycling #sportsmedicine #sportmedicine
Oops, error in the subtitle coefficient results. Height alone is significant
Ooh, good thought, thanks! Yes in fact weight alone is a slightly better explanatory model at ~42% explained variance Both height and weight together reduce r^2 very slightly to 40%, meaning more of the shared explanatory value is provided by weight alone
Turns out significant between-participant relationship with notable within-participant variation. Height alone explains around 37% of the variation in recirculation time. Adding 'fitness' (% predicted VO2max) is not significant and only adds +1% marginal explained variance to that 🤔
This paper found similar ~11sec mean recirculation time in females & males treadmill walking at 3 mph (12:25/km) @ 5% grade So already at walking intensity, or cycling near V̇O₂max, bulk blood flow velocity is nearly the same?😮 Chapman & Fraser 1954 doi.org/10.1161/01.C...
Participant 1RM strength would insignificantly influence SmO2 slope across workload relative to %1RM (top plot) and significantly influence intercept but not slope on abs kg load (bottom plot): Stronger people would have higher SmO2 at the same kg than less strong people. Revolutionary! 😄
From whiteboard hypothesis to predictive model supporting H1 in a ~15 min conversation. Very satisfying! #rstats
For example, we can also use it to filter BxB data by either time- or breath-averaging, specifying ONE OF either `width` (sample/breath-averaging) or `span` (time-averaging
And now I think I need to be accounting for nesting, expecting biological variation, rather than strict repeated measures. Which would reduce the limits of agreement further 🤔. I will have to clarify which is more appropriate Smooth level has greater effect on nested than RM data.
. @fredrikmentzoni.bsky.social here is that sensitivity analysis on smoothing levels for BxB Tymewear vs Parvo respiration rate Methods are un-smoothed; moving-avg by breath; moving-avg by time, and binned by time (reduce to single mean sample per bin)
Woops! Found a substantial memory allocation issue in my code while trying to process a couple 300k+ row data frames. Think I've got it sorted now. Probably need to push a hotfix for this to CRAN 😬
speaking of test-retest differences, we compared a few common metrics to give coaches & athletes reference values to use when comparing data day-to-day If we know our uncertainty, we can be *more* confident where we prescribe training targets www.frontiersin.org/journals/spo...
Always important to consider how relevant & valid are physiological tests to predict real-world training targets / performance outcome If we want to maximise FatOx in a training session, we can do so in a wide intensity range. FatMax isn't magic 🧙♂️ pubmed.ncbi.nlm.nih.gov/24022578/
@EatsleepfitJeff's excellent modelling paper points to which factors (diet, intensity, fitness, age, etc) explain variability in RER & FatOx Up to 60% variance can be explained by these multiple factors. 30+% variance is attributable to individual diffs pubmed.ncbi.nlm.nih.gov/35829994/
To add a bit more context, this excellent review summarises all the different operational decisions (methodological differences) that influence results when testing for FatMax under laboratory conditions pubmed.ncbi.nlm.nih.gov/30929281/
I was just reminded of this nice test-retest reliability study for intensity at #Fatmax & fat oxidation (g/min) This week are we the red line or the blue line? How about next week?? 🤷♂️ Fatmax can be useful, but it isn't magic 🧙♂️ pubmed.ncbi.nlm.nih.gov/32488584/
Anyone else still use autohotkey shortcuts for writing special symbols? Or do the chatbots do it these days?🤔 I just handed down my old script to my grad student colleagues Works system wide, not just in Word! ΔV̇O₂ ≈ 5 ± 2 (mL·kg⁻¹·min⁻¹) 13°C β₁ ≤ α ≠ 𝜏 (†) ¯\_(ツ)_/¯ #academicsky #rstats
I want to make it easier to visually validate our choice of digital filter parameters Filter parameters depend on the signal we're trying to observe and on our data characteristics (e.g. sample rate and raw signal-to-noise ratio) More to come! Tell me when you find new bugs!
What looks like noise at a wide timescale in this cycling interval (recorded at 10Hz w/ @artinis.bsky.social) is actually meaningful intra-cadence changes in Oxy[haeme] Zooming in on the occlusion, we see distortion caused by over-parameterising the Butterworth filter order
Just updated {mnirs} 🦵🔦 app with interactive Plotly for improved no-code workflow processing #muscleoxygenation #nirs #rstats data! Access here: jemarnold-mnirs-app.share.connect.posit.cloud 🔎 Pan & zoom to explore precise time scales 📈️ Compare effects of filtered vs raw tracings A bit more 🧵👇