{
  "access": {
    "embargo": {
      "active": false,
      "reason": null
    },
    "files": "public",
    "record": "public",
    "status": "open"
  },
  "created": "2026-04-22T21:33:22.584630+00:00",
  "custom_fields": {
    "code:codeRepository": "https://github.com/annefou/fiesta-scattering-bio"
  },
  "deletion_status": {
    "is_deleted": false,
    "status": "P"
  },
  "files": {
    "count": 1,
    "enabled": true,
    "entries": {
      "annefou/fiesta-scattering-bio-v0.3.0.zip": {
        "access": {
          "hidden": false
        },
        "checksum": "md5:177e8e397b1f25777150970970089312",
        "ext": "zip",
        "id": "6ade1169-003f-46d9-bc41-d775bb718752",
        "key": "annefou/fiesta-scattering-bio-v0.3.0.zip",
        "links": {
          "content": "https://zenodo.org/api/records/19701108/files/annefou/fiesta-scattering-bio-v0.3.0.zip/content",
          "self": "https://zenodo.org/api/records/19701108/files/annefou/fiesta-scattering-bio-v0.3.0.zip"
        },
        "metadata": null,
        "mimetype": "application/zip",
        "size": 31355,
        "storage_class": "L"
      }
    },
    "order": [],
    "total_bytes": 31355
  },
  "id": "19701108",
  "is_draft": false,
  "is_published": true,
  "links": {
    "access": "https://zenodo.org/api/records/19701108/access",
    "access_grants": "https://zenodo.org/api/records/19701108/access/grants",
    "access_links": "https://zenodo.org/api/records/19701108/access/links",
    "access_request": "https://zenodo.org/api/records/19701108/access/request",
    "access_users": "https://zenodo.org/api/records/19701108/access/users",
    "archive": "https://zenodo.org/api/records/19701108/files-archive",
    "archive_media": "https://zenodo.org/api/records/19701108/media-files-archive",
    "communities": "https://zenodo.org/api/records/19701108/communities",
    "communities-suggestions": "https://zenodo.org/api/records/19701108/communities-suggestions",
    "doi": "https://doi.org/10.5281/zenodo.19701108",
    "draft": "https://zenodo.org/api/records/19701108/draft",
    "file_modification": "https://zenodo.org/api/records/19701108/file-modification",
    "files": "https://zenodo.org/api/records/19701108/files",
    "latest": "https://zenodo.org/api/records/19701108/versions/latest",
    "latest_html": "https://zenodo.org/records/19701108/latest",
    "media_files": "https://zenodo.org/api/records/19701108/media-files",
    "parent": "https://zenodo.org/api/records/19687112",
    "parent_doi": "https://doi.org/10.5281/zenodo.19687112",
    "parent_doi_html": "https://zenodo.org/doi/10.5281/zenodo.19687112",
    "parent_html": "https://zenodo.org/records/19687112",
    "preview_html": "https://zenodo.org/records/19701108?preview=1",
    "quota_increase": "https://zenodo.org/api/records/19701108/quota-increase",
    "request_deletion": "https://zenodo.org/api/records/19701108/request-deletion",
    "requests": "https://zenodo.org/api/records/19701108/requests",
    "reserve_doi": "https://zenodo.org/api/records/19701108/draft/pids/doi",
    "self": "https://zenodo.org/api/records/19701108",
    "self_doi": "https://doi.org/10.5281/zenodo.19701108",
    "self_doi_html": "https://zenodo.org/doi/10.5281/zenodo.19701108",
    "self_html": "https://zenodo.org/records/19701108",
    "self_iiif_manifest": "https://zenodo.org/api/iiif/record:19701108/manifest",
    "self_iiif_sequence": "https://zenodo.org/api/iiif/record:19701108/sequence/default",
    "versions": "https://zenodo.org/api/records/19701108/versions"
  },
  "media_files": {
    "count": 0,
    "enabled": false,
    "entries": {},
    "order": [],
    "total_bytes": 0
  },
  "metadata": {
    "additional_descriptions": [
      {
        "description": "If you use this software, please cite this repository together with Decrop et al. 2025 (CNN baseline) and Delouis et al. 2022 (scattering method).",
        "type": {
          "id": "notes",
          "title": {
            "de": "Anmerkungen",
            "en": "Notes"
          }
        }
      }
    ],
    "creators": [
      {
        "affiliations": [
          {
            "name": "LifeWatch ERIC"
          }
        ],
        "person_or_org": {
          "family_name": "Fouilloux",
          "given_name": "Anne",
          "identifiers": [
            {
              "identifier": "0000-0002-1784-2920",
              "scheme": "orcid"
            }
          ],
          "name": "Fouilloux, Anne",
          "type": "personal"
        }
      }
    ],
    "description": "<p>Headline change: the repository is now built around a <strong>stacked\nCNN + scattering meta-classifier</strong> instead of the prior 10-class\nclassification demo.</p>\n<h2>Result (held-out, Decrop et al. 2025's test.txt)</h2>\n<p>| Method | Top-1 | Top-5 | Rare-class mean recall |\n|---|---:|---:|---:|\n| CNN alone (Decrop 2025) | 86.34 % | 98.70 % | 47.7 % |\n| Scattering + LR alone | 26.93 % | 60.43 % | 43.0 % |\n| 50/50 probability ensemble | 86.28 % | 94.82 % | 50.3 % |\n| <strong>Stacked LR (val-trained)</strong> | <strong>85.62 %</strong> | <strong>95.39 %</strong> | <strong>56.1 %</strong> |\n| Oracle ceiling | 87.68 % | \u2014 | 64.6 % |</p>\n<ul>\n<li><strong>33 of 95 classes</strong> improve by &gt; 1 pp under stacking; only 16 degrade.</li>\n<li><strong>+8.4 pp rare-class recall</strong> \u2014 captures about half the oracle ceiling.</li>\n<li><strong>\u22120.72 pp overall top-1</strong> \u2014 the bounded trade-off.</li>\n</ul>\n<p>Full per-class numbers in `results/stacking_val_trained_results.json`.</p>\n<h2>What changed</h2>\n<ul>\n<li><strong>Three-step pipeline</strong> (`01_scattering_features.py`, `02_cnn_predictions.py`, `03_stacking.py`) replaces the old single-notebook 10-class experiment.</li>\n<li><strong>New companion repo</strong> <a href=\"https://github.com/annefou/fiesta-decrop-reproduction\">fiesta-decrop-reproduction</a> produces the CNN predictions on Decrop's val + test splits \u2014 reused here as the CNN baseline.</li>\n<li><strong>Dockerfile rewritten</strong>: apt installs p7zip-full/git/libgl1/libglib2.0-0, pip install uses `--extra-index-url` for the torch CPU wheel (fixes the v0.2.0 build failure caused by `--index-url` overriding PyPI for non-torch packages).</li>\n<li>`environment.yml` expanded; new optional `environment-cnn.yml` for in-repo CNN inference.</li>\n<li>CITATION.cff and codemeta.json now cite Decrop et al. 2025 as the baseline paper (DOI 10.3389/fmars.2025.1699781).</li>\n</ul>\n<h2>Why this framing</h2>\n<p>CNNs on class-imbalanced microscopy datasets systematically underperform on rare taxa. Scattering coefficients are deterministic wavelet statistics with no learned parameters and no frequency bias. The two predictors err on different samples \u2014 scattering alone is uniquely correct on 1.3 % of test images, heavily enriched in rare classes \u2014 and a small linear meta-classifier trained on Decrop's held-out val split captures most of this complementarity.</p>\n<p>This is the one FIESTA-OSCARS repository demonstrating scattering as a <strong>complementary layer</strong> on top of an existing deep model, alongside three gap-filling repos (astro, SST, SST-WGS84) and the CNN reproduction repo.</p>\n<h2>Breaking changes</h2>\n<ul>\n<li>`01_plankton_classification.py`, `02_cnn_baseline.py`, `03_reproduce_decrop.py` removed. Git history preserves them.</li>\n<li>`experiments/` folder removed (scripts consolidated to top level).</li>\n<li>Old `results/plankton_classification_results.json` removed. The canonical artefact is now `results/stacking_val_trained_results.json`.</li>\n</ul>\n<p>\ud83e\udd16 Generated with <a href=\"https://claude.com/claude-code\">Claude Code</a></p>",
    "publication_date": "2026-04-22",
    "publisher": "Zenodo",
    "related_identifiers": [
      {
        "identifier": "https://github.com/annefou/fiesta-scattering-bio/tree/v0.3.0",
        "relation_type": {
          "id": "issupplementto",
          "title": {
            "de": "Erg\u00e4nzt",
            "en": "Is supplement to"
          }
        },
        "resource_type": {
          "id": "software",
          "title": {
            "de": "Software",
            "en": "Software"
          }
        },
        "scheme": "url"
      }
    ],
    "resource_type": {
      "id": "software",
      "title": {
        "de": "Software",
        "en": "Software"
      }
    },
    "rights": [
      {
        "description": {
          "en": "A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code."
        },
        "id": "mit",
        "props": {
          "scheme": "spdx",
          "url": "https://opensource.org/licenses/MIT"
        },
        "title": {
          "en": "MIT License"
        }
      }
    ],
    "subjects": [
      {
        "subject": "scattering transform"
      },
      {
        "subject": "plankton classification"
      },
      {
        "subject": "stacked ensemble"
      },
      {
        "subject": "FORRT"
      },
      {
        "subject": "marine biodiversity"
      },
      {
        "subject": "FlowCam"
      },
      {
        "subject": "FOSCAT"
      },
      {
        "subject": "reproducible research"
      },
      {
        "subject": "FAIR"
      }
    ],
    "title": "FIESTA Scattering Bio \u2014 scattering transforms complement a plankton CNN",
    "version": "v0.3.0"
  },
  "parent": {
    "access": {
      "owned_by": {
        "user": "258391"
      },
      "settings": {
        "accept_conditions_text": null,
        "allow_guest_requests": false,
        "allow_user_requests": false,
        "secret_link_expiration": 0
      }
    },
    "communities": {
      "default": "aec7ac41-c6c7-4a1f-81d3-6f52f32eb35b",
      "entries": [
        {
          "access": {
            "member_policy": "open",
            "members_visibility": "public",
            "record_submission_policy": "closed",
            "review_policy": "members",
            "visibility": "public"
          },
          "children": {
            "allow": false
          },
          "created": "2025-10-10T14:10:48.795416+00:00",
          "custom_fields": {
            "subjects": [
              {
                "id": "mesh:D000079803"
              },
              {
                "id": "mesh:D066295"
              }
            ]
          },
          "deletion_status": {
            "is_deleted": false,
            "status": "P"
          },
          "id": "aec7ac41-c6c7-4a1f-81d3-6f52f32eb35b",
          "links": {},
          "metadata": {
            "curation_policy": "<p>Only registered members of the Science Live Platform can submit content. Membership ensures that contributions follow community guidelines, maintain FAIR principles, and support collaboration across research and industry.</p>",
            "description": "Science Live is a community reimagining knowledge sharing through AI-assisted \"knowledge bricks\" \u2014 modular, FAIR units of data, methods, and insights spanning TRL 3\u20136 to bridge research and industry.",
            "page": "<p><a href=\"https://sciencelive4all.org\">Science Live</a> is a collaborative community dedicated to reimagining how scientific and technological knowledge is shared, tracked, and reused. At the core of the community are AI-assisted <em>knowledge bricks</em> &mdash; modular, FAIR units of data, methods, and insights that make research and innovation transparent, traceable, and reproducible.</p>\n<p>The community spans the full Technology Readiness Level (TRL) spectrum, from early-stage research (TRL 3) to solutions ready for industrial application (TRL 6), fostering connections between research and industry. By encouraging incremental contributions, Science Live allows members to publish work as it develops, without waiting for fully polished artifacts, enabling faster knowledge exchange and collaborative progress.</p>\n<p>Membership is required to submit content, ensuring that all contributions adhere to community guidelines, uphold FAIR principles, and support collaborative workflows. Science Live brings together researchers, innovators, and practitioners to create a shared ecosystem of reusable knowledge, helping accelerate innovation, strengthen Open Science practices, and bridge the gap between discovery and application.</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
            "title": "Science Live - Research beyond Walls",
            "type": {
              "id": "organization"
            },
            "website": "http://sciencelive4all.org/"
          },
          "revision_id": 11,
          "slug": "sciencelive4all",
          "updated": "2026-02-18T15:59:43.609182+00:00"
        }
      ],
      "ids": [
        "aec7ac41-c6c7-4a1f-81d3-6f52f32eb35b"
      ]
    },
    "id": "19687112",
    "pids": {
      "doi": {
        "client": "datacite",
        "identifier": "10.5281/zenodo.19687112",
        "provider": "datacite"
      }
    }
  },
  "pids": {
    "doi": {
      "client": "datacite",
      "identifier": "10.5281/zenodo.19701108",
      "provider": "datacite"
    },
    "oai": {
      "identifier": "oai:zenodo.org:19701108",
      "provider": "oai"
    }
  },
  "revision_id": 4,
  "stats": {
    "all_versions": {
      "data_volume": 0.0,
      "downloads": 0,
      "unique_downloads": 0,
      "unique_views": 31,
      "views": 31
    },
    "this_version": {
      "data_volume": 0.0,
      "downloads": 0,
      "unique_downloads": 0,
      "unique_views": 28,
      "views": 28
    }
  },
  "status": "published",
  "swh": {},
  "updated": "2026-04-22T21:33:22.857542+00:00",
  "versions": {
    "index": 3,
    "is_latest": true
  }
}