DOI: 10.5281/zenodo.17923207
title: Data for: Norden 2025, Drab cuckoos retain the melanosome types of brilliantly colored relatives

description: This README was generated on 21 September 2023 by Klara NordénEdited 13 December 2025

OVERVIEW:This document describes the relationship between data, code and manuscript files contained in the folder "Norden_et_al_2025_Cuckoos_retain_the _melanosome_types_of_drab_relatives". It describes how these files are used to produce the results and figures presented in the associated paper step by step.

ASSOCIATED PAPER:DRAB CUCKOOS RETAIN THE MELANOSOME TYPES OF BRILLIANTLY COLORED RELATIVESAuthors: Klara K. Nordén, Christopher C. Cooney, Frane Babarovic, Mary Caswell Stoddard (PI)Preprint: https://www.biorxiv.org/content/10.1101/2023.12.05.570151v1

FOLDER STRUCTURE:A. Main folder: data. Contains all the data required for analyses described in the paper

A.1. Subfolder: Plumage_scoring. Contains all the data and results from scoring plumage patches (intensity of metallic luster) and trait modelling.

A.1. Files: Cuculidae_plumage_scores.txt. Visual scoring of the degree of metallic luster (0-2) in ten plumage patches for all Cuculidae species, scored by KKN. (variables: hbw_species, species name on Handbook of Birds of the World; crown, score for crown patch;    nape, score for nape patch;    mantle, score for mantle patch; rump, score for rump patch;    dorsal_tail, score for dorsal tail;    wing_covert, score for wing covert;    wing_primaries_secondaries, score for wing primaries and secondaries; throat, score for throat patch; breast, score for breast patch;    belly, score for belly patch; Available_photos_ebird, number of uploaded photos available for species on ebird at time of scoring; species_hackett, species name used in hackett/jetz tree).

jetz_mcc.nex. Maximum clade credibility tree created from the Jetz et al. 2012 phylogeny (trees downloaded from birdtree.org). Used for phylogenetic analyses and Figure 3.

mantle_scores.txt. The mantle plumage scores for the 126 species present in the tree (jetz_mcc.nex), extracted from Cuculidae_plumage_scores.txt. Used for phylogenetic analyses and Figure 3.

max_scores.txt. The maximum plumage scores of any of the 10 patches scored for each species, for the 126 species present in the tree (jetz_mcc.nex). Extracted from 

Cuculidae_plumage_scores.txt. Used for phylogenetic analyses and Figure 3.

bayesmodels.txt. The model specifications and output names for each phylogenetic trait analysis we ran.

A.2. Subfolder: confocal_images. Contains confocal microscope images of feathers sampled.

A.3. Subfolder: TEM_images. Contains Transmission Electron Microscopy images of feathers sampled.

A.4. Subfolder: TEM_for_measurment. Contains TEM images (sourced from data/TEM_images) selected for melanosome diameter measurements.

A.5. Subfolder: Output_melanosome_measurement. Output of melansome diameter measurements (see section 4).

A.6. Subfolder: manual_measuring_melanosome_results. Output from validation of semi-automatic measurment of melanosome diameters.

A.7. Subfolder: dngs. RAW images from cross-polarization photography sample.

A.8. Subfolder: ROIs. ROI for color checker and patch analyzed from image, see step 1.2. below.

A. 9. Subfolder: Output_cross_polarization_test. Output from cross-polarization analysis, see step 1.3 below.

A. Files: TEM_samples_info.csv. Metadata for TEM grid samples. The samples are deposited with respective museums (ANSP, Philadelphia, USA; and AMNH, NYC, USA). (variables: TEM_sample_holder_ID, the number of the TEM sample box; Grid_slot, the grid slot number of the box; Species, latin species name;    cat, specimen catalogue number; institution, the institution where the specimen is from; resin_block, the resin block from which sections were cut).

cuculidae_photography_sampling.csv. Metadata for cross-polarization images. (variables: Filename, the image filename; Species, latin species name; cat, specimen catalogue number; institution, the institution where the specimen is from; sex, sex of specimen; photo, patch photographed; sample, patch sampled for TEM; score, the visual score for intensity of metallic luster (sourced from data/Cuculidae_plumage_scores.txt)).

melanosome_diameters_li_babarovic_norden.csv. Melanosome diameter sourced from other studies used in Figure 7B. Data from Li et al. 2012, Babarovic et al. 2019, Norden et al. 2019.

merged_diameter.txt. Summary output from melanosome diameter measurement of TEM sections.

merged_means_whole_patch_mantle.txt. Summary output from cross-polarization photography. See step 1.3 below.

B. Main folder: code. Contains all the code required for for analyses described in the paper (MATLAB and R required to run code).

ANALYSES AND PLOTS STEP BY STEP

1. Measuring metallic luster with cross-polarized photography, Figure 2.

Note that more details and background on this method is available in the preprint On metallic luster and iridescence in animal coloration: doi.org/10.1101/2023.10.12.562066 .

1.1. Processing of RAW image filesScript: Step1_RAW_processing_images.mRequired functions from MATLAB File Exchange: demosaicing_v2 (Jonathan Lin (2023).(https://www.mathworks.com/matlabcentral/fileexchange/63628-demosaicing_v2-input-type)).data: data/dngs

Produces demosaiced images in folder data/demosaiced.

1.2. Creating ROIs and aligning imagesScript: Step2_ROI.mRequired functions available from MATLAB File Exchange: checker2colors (Color checker extraction toolbox, Jueqin Qiu (2023). Color Checker Extraction Toolbox (https://github.com/QiuJueqin/color-checker-extraction), GitHub; and Akkaynak (2014). Consistent imaging with consumer cameras (https://www.mathworks.com/matlabcentral/fileexchange/42548-consistent-imaging-with-consumer-cameras))data: data/demosaiced

Produces saved ROIs for the patch of interest and the colochecker in a folder called ROIs. Also saves the transform for plane and cross-polarized image alignment.

1.3. Analyzing imagesScript: Step_3_Analysis.m

data: data/demosaiced, data/ROIs

Produces a number of output files in data/Output_cross_polarization_test, including *_means_whole_patch.txt, which gives the relative specular reflection and specular saturation for each sample. Description of output:*_means_whole_patch.txt Output of analysis, with variables (S0_r, total reflection red channel; S0_g, total reflection green channel; S0_b, total reflection blue channel;    S1_r, specular reflection red channel; S1_g, specular refelction green channel; S1_b, specular reflection blue channel; diffuse_r, diffuse reflection red channel; diffuse_g, diffuse reflection green channel; diffuse_b, diffuse reflection blue channel; DoLP_r, degree of linear polarization (relative specular refelction) red channel; DoLP_g, degree of linear polarization (relative specular refelction) green channel; DoLP_b, degree of linear polarization (relative specular refelction) blue channel; S1_sat, specular saturation; S1_chroma, specular chroma).*_colorcalib_table_xyz.txt The xyz values of the color checker chips in the color calibrated image. To check for color calibration accuracy.*_diffuse.png Diffuse image*_specular.png Specular image*_total.png Total reflection image*_image_alignement.png Result of alignment of PPL and XPL*_DoLP_r.png Relative specular refelction in the red channel, false color image (degree of linear polarization)*_DoLP_g.png Relative specular refelction in the green channel, false color image (degree of linear polarization)*_DoLP_b.png Relative specular refelction in the blue channel, false color image (degree of linear polarization)*_specular_saturation.png Specular saturaton, false color image*_norm_image_0 Full color balanced XPL image*_norm_image_90 Full color balanced PPL image

1.4. Merging output dataScript: txt_file_merge.mdata: data/Output_cross_polarization

Merge data for *_means_whole_patch.txt output files for each patch.

1.5. Analyze output data and produce plot (Fig 2)Script: code/data_analysis.Rdata: data/merged_means_whole_patch_mantle.txt, cuculidae_photography_sampling.csv

Calculates averages of three measurements for each patch and the relative speuclar reflection in the color channel of highest intensity. Produces Figure 7A.

2. Scoring of metallic luster in plumage patches and plotting on tree, Figure 3.

data: data/Plumage_scoring/Cuculidae_plumage_scores.txtdata/Plumage_scoring/jetz_mcc.nex

The plumage scores for 10 patches across all Cuculidae species is contained in the file data/Plumage_scoring/Cuculidae_plumage_scores.txt. (variables: hbw_species, species name on Handbook of Birds of the World; crown, score for crown patch;    nape, score for nape patch;    mantle, score for mantle patch; rump, score for rump patch;    dorsal_tail, score for dorsal tail;    wing_covert, score for wing covert;    wing_primaries_secondaries, score for wing primaries and secondaries; throat, score for throat patch; breast, score for breast patch;    belly, score for belly patch; Available_photos_ebird, number of uploaded photos available for species on ebird at time of scoring; species_hackett, species name used in hackett/jetz tree).

The tree on which these traits were plotted is the file jetz_mcc.nex, which is a maximum clade credibility tree created from a tree distribution of 1000 trees downloaded from birdtree.org (including all Cuculidae species with genetic data, 126 species).

3. Distribution of metallic luster across the bird body, Figure 4.

data: data/Plumage_scoring/Cuculidae_plumage_scores.txtscript: code/plumage_percentage.R

The script and data outputs Figure 4 in the paper.

4. Transmission Electron Microscopy (TEM) and confocal images of feathers, Figure 5-6.

All confocal images are located in data/confocal_images. The files are named after species, specimen number, and magnification. There is also a scale bar included in each image.

All TEM images are located in data/TEM_images. The subfolders/files are named after species, TEM sample holder ID, and grid sample number. Refer to data/TEM_samples_info.csv for more details on samples.

5. Diameter of melanosomes in TEM sections and across birds, Figure 7.

5.1. Diameter of melanosomes in TEM sections, measurementdata: data/TEM_for_measurmentcode: code/measureorder_diameter.mRequired MATLAB packages/functions to download for script to work:Nicolas (2023). Snip.m Snip elements out of vectors/matrices (https://www.mathworks.com/matlabcentral/fileexchange/41941-snip-m-snip-elements-out-of-vectors-matrices), MATLAB Central File Exchange.Elad (2023). Circles overlap remover (https://www.mathworks.com/matlabcentral/fileexchange/42370-circles-overlap-remover), MATLAB Central File Exchange. 

Follow instructions in the measureorder_diameter.m script to identify circles in TEM images (melanosomes) and measure their diameter. Output is saved in data/Output_melanosome_measurement.

5.2. Diameter of melanosomes in TEM sections, merge data filedata: data/Output_melanosome_measurementcode: code/txt_file_merge.m

Create datafile data/merged_diameter.txt with all measurements.

5.3.  Diameter of melanosomes in TEM sections, analyze and plot datadata: data/merged_diameter.txtcode: code/mel_diameter_analysis.R

Run script to generate boxplot in Figure 7A.

5.4. Diameter of melanosomes in differently colored feathers, Figure 7B.data: data/merged_diameter.txt, data/melanosome_diameters_li_babarovic_norden.csvcode: code/mel_diameter_analysis.R

Run script from "Compare with melanosome diameters from earlier studies" to generate boxplot in Figure 7B. Note that parts of this data comes from other publications: Li et al. 2012, Babarovic et al. 2019, Norden et al. 2019.

5.5. Compare diameter of melanosomes in black, grey, brown and structural barb-colored feathers with solid rods in Cuculidae

data: data/merged_diameter.txt, data/melanosome_diameters_li_babarovic_norden.csvcode: code/mel_diameter_analysis.R

Run script from "Test for significant differences between groups" to run a Kruskal-Wallis test to test for differences between groups. Note that parts of this data comes from other publications: Li et al. 2012, Babarovic et al. 2019, Norden et al. 2019.

APPENDIX

7. Ancestral state reconstruction.data: data/Plumage_scoring/jetz_mcc.nex, data/Plumage_scoring/mantle_scores.txt, data/Plumage_scoring/mcmcexp10_mantle.Log.txt, data/Plumage_scoring/mcmcresexp10_mantle.Log.txt, data/Plumage_scoring/ML_mantle.Log.txt, data/Plumage_scoring/revjumpexp10_mantle.Log.txt.

script: code/ancetral_state_reconstruction.R

Run script to reconstruct ancestral states using different transition rates acquired from models in Bayestrait. Plots Figure A.1.

8. Phylogenetic signal.data:data/Plumage_scoring/jetz_mcc.nex, data/Plumage_scoring/Cuculidae_plumage_scores.txt

script: code/Physig_code.R

9. Validate semi-automatic measurement of melanosome diametersdata: data/merged_diameter.txt, data/manual_measuring_melanosome_results/Results_manual_measuring.csvcode: code/mel_diameter_analysis.R

Run script to generate boxplot in Figure C.1.