DOI: 10.5061/dryad.c59zw3rjk
title: Data from: Navigating nature's terrain: Jumping performance robust to substrate moisture and roughness by blackspotted rockskippers (Entomacrodus striatus)

description: Escape responses are vital for the survival of prey. The high speeds and
 accelerations needed to evade predators successfully require exerting
 forces on the environment. Unlike water, terrestrial habitats can vary in
 ways that constrain the forces applied, requiring animals to adjust their
 behavior in response to variable conditions. We evaluated the terrestrial
 jumping of an amphibious fish, the blackspotted rockskipper (Entomacrodus
 striatus), to determine if substrate roughness and wetness influence
 jumping performance. We predicted that rockskippers produce a greater
 force output as substrate roughness increased and wetness decreased. Using
 a novel waterproof force-plate capable of detecting milliNewton loads, we
 collected ground reaction forces from rockskippers jumping on wet and dry
 sandpapers of varying grits. We also used micro-CT scans to quantify
 muscle mass as a relative fraction of body mass to determine if these
 jumps could be performed without power amplification. Mixed-model analysis
 of jumps revealed significantly higher maximum horizontal forces, jump
 duration, and maximum power on dry vs. wet substrates, but no effect of
 substrate roughness. However, final jump outcomes (takeoff speed and
 angle) were unaffected. Peak jump power was within the range of typical
 fish muscle. Thus, these fish display a jumping behavior which is robust
 to substrate property variation.
description: Data Collection: Force data were recorded from blackspotted
 rockskippers (Entomacrodus striatus) using a custom 3D-printed force plate
 with strain gauges. The plate was designed to detect forces as low as 2 mN
 along three axes (vertical, fore-aft, and medio-lateral) and was sampled
 at 1000 Hz using a NIDAQ USB-6002. As rockskippers jumped from the
 platform, strain gauges recorded deformations as voltage changes, which
 were then amplified and stored. Calibration and
 Filtering: The recorded voltage data were converted to force values
 through a least-squares linear regression calibration, correcting for
 cross-talk between channels and calibrated with weights applied across the
 force range (2, 10, and 20 grams). A Savitzky-Golay filter (window length
 = 6, polynomial order = 3) was applied to the data to minimize noise and
 smooth the force traces. Data Analysis: Post-processing
 involved calculating takeoff angle, acceleration, velocity, and power for
 each jump using the calibrated 3-axis force data, time, and the mass of
 each rockskipper. Acceleration was derived by dividing force by mass.
 Velocity was calculated by integrating acceleration over time. Takeoff
 angle was determined as the arctangent of the vertical and horizontal
 velocities at takeoff.Power was computed by taking the rate of change of
 kinetic and potential energy over time. Statistical
 Analysis: The processed data were analyzed using mixed-model ANCOVA, with
 individual rockskipper identity as a random factor to account for repeated
 measures, and substrate wetness and roughness as fixed factors.
 Rockskipper mass was included as a covariate to control for size
 differences across individuals. Dependent variables included takeoff
 angle, maximum power, maximum work, maximum horizontal force, maximum
 vertical force, and jump duration. Additional tests, such as Levene’s test
 and Ryan-Joiner tests, confirmed the homogeneity of variances and
 normality of residuals, with transformations applied to non-normal
 distributions as needed.
description: # Data from: Navigating Nature's Terrain: Jumping Performance Robust
 to Substrate Moisture and Roughness by Blackspotted Rockskippers
 (Entomacrodus striatus)
 [https://doi.org/10.5061/dryad.c59zw3rjk](https://doi.org/10.5061/dryad.c59zw3rjk) ## Description of the data and file structure This dataset was collected to examine the jumping performance of blackspotted rockskippers (*Entomacrodus striatus*) on terrestrial substrates with varying wetness and roughness. These amphibious fish rely on robust jumping mechanics to navigate intertidal zones, and this study aimed to assess how substrate properties influence their jump dynamics. Force data were recorded from custom 3D-printed force plates equipped with strain gauges, capturing three-axis force measurements during jumps. The dataset includes raw and processed force data, calibration files, biomechanical calculations (e.g., takeoff angle, velocity, and power), as well as supplementary data supporting statistical analysis. This data provides insights into the adaptability of amphibious locomotion in response to environmental factors. ### **Folder: rockskipper data** **raw files from the field folder:** * `collected untouched data`: Contains unedited .mat files with raw voltage data collected directly from the force plate strain gauges during each trial. This data has not been filtered or processed in any way. * File name convention (Rockskipper ID)_(substrate condition)_force.mat * Variables: * force_data: a 3 collum array where collum 1 is the fore-aft force, collum 2 is the med-lateral force, and the third collum is the vertical force where a light Savgol filter was applied.  * Max_foreaft_force: the max force in the foreaft direction during that trial * Max_horizontal_force: the max of the sum vector when combining the foreaft and medlat forces * Max_Vertical_force: the max force in the vertical direction during that trial * unfiltered_data: a 3 collum array where collum 1 is the fore-aft force, collum 2 is the med-lateral force, and the third collum is the vertical force where no filtering has been applied * Missing values are represented by NaN. * `csvs of the trials`:  * file name convention: (Rockskipper ID)_(substrate condition)_(Trial Number)_raw.csv * time: Time in seconds (s), recorded at a 1000 Hz sampling rate. * Dev1_ai1: Voltage from the vertical axis strain gauge (V). * Dev1_ai2: Voltage from the fore-aft axis strain gauge (V). * Dev1_ai3: Voltage from the medio-lateral axis strain gauge (V). **cropped and processed:** mat files containing force data after calibration and filtering, ready for analysis. File format: (rockskipper ID)_(substrate)_processed.mat Variables: For variables with three components (directional forces, velocities, accelerations, positions), the order follows: Fore-Aft, Medial-Lateral, Vertical * **Vertical_Force**: Force exerted in the vertical direction, representing the reaction force from the ground. (milinewtons) * **acceleration**: The rate at which velocity changes over time, representing how quickly the subject speeds up or slows down. (meters per second squared) * **final_velocity**: The velocity of the subject at the moment of takeoff, indicating the final speed achieved before losing contact with the force plate. (meters per second) * **force_data**: Recorded force data throughout the movement, reflecting changes in force application over time. (milinewtons) * **Fore_Aft_Force**: The force exerted in the forward-backward direction relative to the subject's motion, capturing braking or propulsion forces. (milinewtons) * **Horizontal_Force**: The resultant force in the horizontal plane, combining fore-aft and medial-lateral forces. (milinewtons) * **jump_duration**: The total time from the start of movement to takeoff from the force plate. (seconds) * **jump_height**: The vertical displacement achieved during the jump, measuring how high the subject traveled. (meters) * **jump_length**: The horizontal distance covered during the jump, measured from takeoff to landing. (meters) * **kinetic_energy**: The energy associated with the subject's motion, calculated based on mass and velocity. (milijoules) * **mass**: The body mass of the rockskipper. (grams) * **Max_acceleration**: The highest acceleration recorded during the movement in any direction. (meters per second squared) * **Max_final_velocity**: The peak final velocity observed at takeoff across all trials. (meters per second) * **Max_force_data**: The maximum force recorded across the trial duration. (milinewtons) * **Max_Horizontal_Force**: The highest force recorded in the horizontal plane (combining fore-aft and medial-lateral directions). (milinewtons) * **Max_jump_height**: The highest vertical jump achieved across trials. (meters) * **Max_jump_length**: The farthest horizontal jump achieved across trials. (meters) * **Max_kinetic_energy**: The highest kinetic energy measured during the trial. (milijoules) * **Max_mass**: The maximum mass value observed in the dataset. (grams) * **Max_Max_acceleration**: The largest acceleration value observed across all trials in any direction. (meters per second squared) * **Max_Max_force_data**: The absolute highest force value measured across all trials. (milinewtons) * **Max_Max_kinetic_energy**: The highest kinetic energy value recorded across all trials. (milijoules) * **Max_Max_position**: The greatest displacement observed across all trials. (meters) * **Max_Max_potential_energy**: The highest potential energy recorded across all trials. (milijoules) * **Max_Max_power**: The highest mechanical power output recorded across all trials. (miliwatts) * **Max_Max_total_energy**: The highest total energy recorded across all trials, combining kinetic and potential energy. (milijoules) * **Max_Max_velocity**: The highest velocity recorded across all trials in any direction. (meters per second) * **Max_offset_subtracted_data**: The largest force value after subtracting the baseline offset from the data. (milinewtons) * **Max_position**: The highest position recorded in any direction during a single trial. (meters) * **Max_potential_energy**: The maximum potential energy stored due to the subject's height. (milijoules) * **Max_power**: The maximum power output calculated from force and velocity. (miliwatts) * **Max_smoothed_data**: The maximum force value observed after applying a smoothing filter. (milinewtons) * **Max_takeoff_angle**: The largest takeoff angle recorded relative to the horizontal plane. (degrees) * **Max_total_energy**: The highest total mechanical energy observed during the trial. (milijoules) * **Max_velocity**: The maximum velocity observed in any direction during the trial. (meters per second) * **Medial_Lateral_Force**: The force exerted in the side-to-side direction, representing lateral stability. (milinewtons) * **Name**: The identifier for the subject or trial. (string) * **offset_subtracted_data**: Force data with the baseline offset removed to account for sensor drift. (milinewtons) * **position**: The spatial location of the subject during movement relative to the force plate. (meters) * **potential_energy**: The energy stored due to the height of the subject above the ground. (milijoules) * **power**: The rate of performing work based on force and velocity data. (miliwatts) * **smoothed_data**: Processed force data with noise removed using a smoothing technique. (milinewtons) * **Substrate**: The type of surface condition during the experiment, such as "wet" or "dry." (string) * **takeoff_angle**: The angle of the subject’s velocity vector at the moment of takeoff. (degrees) * **total_energy**: The combined kinetic and potential energy at any given point in the trial. (milijoules) * **velocity**: The subject's speed in any given direction during the trial. (meters per second) Missing values are represented by NaN. **rockskipper data sheet.csv:** * A csv file with summary data for all trials used in analysis with units included in the variable names. **supplemental table.docx:** * A Word document containing summary statistics for each substrate condition (wet/dry and rough/smooth) such as average takeoff angle, power, and forces. ### Folder: Codes * **Cal_matrix_builder.mlx:**  MATLAB live script to set weights, directions, and on/off points for calibration. * No output variables directly within this file. * **Calibration_Matrix_Finder_Linsolve_rachel.mlx:** MATLAB live script that performs least-squares regression to generate calibration matrices for converting voltage to force. * **forceplate_code_for_collection.m:** MATLAB script used in the field to collect real-time force data. * No direct variables in the output; it logs raw data in .mat format. * **generates rockskipper excel file.py:** Python script to convert .mat files to Excel format and append each trial’s data to a master sheet. * No new variables generated; this script formats existing data for further analysis. * **rockskipper calculation.txt:** Text document describing calculations for biomechanical parameters, such as acceleration, velocity, power, and takeoff angle, from force data. * **Rockskipper_figure.R:** * R script for generating figures used in the publication, visualizing the force and performance data. ### Folder: STL of load cells * **8020 new piece v15.stl:** * STL file of the load cell design used in the force plate, enabling 3D printing of the custom load cell. ### Folder: equations **Files:** * Fish Jump Angle.docx – Document describing the mathematical approach to calculating jump angles. * Supp Mat math.docx – Supplementary material detailing the equations used in force and power calculations. ### Folder: highspeed\_video\_and\_photos Contains high-speed video footage and sequential images documenting blackspotted rockskipper jumping trials. These files provide visual validation of force data and facilitate kinematic analysis. **Files:** * **Video Files:** * highspeed video for figure.mp4 – A high-speed video capturing the complete jump sequence used for figure generation and qualitative analysis. * **Image Files (JPEG):** * rock_skip_124.jpeg – Initial stance of the fish before jumping. * rock_skip_169.jpeg – Pre-load phase with fish pushing against the substrate. * rock_skip_198.jpeg – Peak force application just before takeoff. * rock_skip_223.jpeg – Mid-air phase after takeoff. * rock_skip_253.jpeg – Fish at the highest point of the jump. * rock_skip_264.jpeg – Descent phase of the jump. * rock_skip_300.jpeg – Fish landing on the target surface. ### Folder: Excluded Trial stats: * Used vs Not.xlsx: An Excel file summarizing the results of a least squares test examining the effect of removing low quality trials which found no effect for any variable tested (Takeoff Angle, Max power, Max Work, Max Horizontal Force, Max Vertical Force, Jump Duration).  * Sheet1 - Fit Least Squares.jrp: A least square regression used to determine the effect of removing low quality/ compromised trials as a result of environmental factors which found no change for any variable tested ## Code/software MATLAB (version 2019b or later) * Purpose: Used for collecting raw force data, calibration, and initial data processing. * Files: * Cal_matrix_builder.mlx: Script for setting weights, directions, and on/off points for calibration. * Calibration_Matrix_Finder_Linsolve_rachel.mlx: Generates calibration matrices by performing least-squares regression on weight and voltage data. * forceplate_code_for_collection.m: Used in the field to collect real-time force data from the custom 3D-printed force plate. * Packages: No additional toolboxes are required beyond the standard MATLAB installation. Python (version 3.8 or later) * Purpose: For post-processing, data conversion, and calculating biomechanical parameters from the processed data. * Files: * generates rockskipper excel file.py: Converts .mat files to Excel format, appending each trial’s data to a master sheet for easy analysis. * Required Packages: * numpy: For numerical calculations and handling data arrays. * scipy: Used for data filtering (e.g., Savitzky-Golay filter). * matplotlib (optional): For basic data visualization if needed. * pandas: For data manipulation and exporting data to Excel. * Installation: Install packages using pip install numpy scipy matplotlib pandas if they are not already installed. R (version 4.0 or later) * Purpose: Used to generate figures and perform statistical analysis on the biomechanical data. * Files: * Rockskipper_figure.R: Script for creating publication-ready figures based on the force and performance data. * Required Packages: * ggplot2: For data visualization and figure generation. * dplyr: For data manipulation. * Installation: Install packages using install.packages("ggplot2") and install.packages("dplyr") in R. Excel or LibreOffice Calc (any version) * Purpose: View and manipulate .xlsx files generated by the Python script, including the master data sheet containing biomechanical parameters for each trial. * Files:a * rockskipper data sheet.xlsx: The summary spreadsheet containing processed and calculated biomechanical data. 3D Model Viewer (MeshLab) * Purpose: View and edit the STL file of the load cell used in the custom force plate. * Files: * 8020 new piece v15.stl: STL file for 3D printing the load cell component.