Skip to content

Information for contributors

We are excited that you want to contribute to Lovelace’s Square! 🥳 Please read the following information carefully. It will guide you through everything you need to know to prepare and submit your work. We’ve made the process as smooth as possible, and we’re here to support you at every step.

Core requirements

At Lovelace’s Square, we strongly encourage all contributions to follow these essential requirements, to ensure quality, clarity, and reproducibility for the entire community.

Open licensing

All code and datasets must use recognized open-source or open-data licenses. The most restrictive license we accept allows non-commercial use only (e.g. CC BY-NC 4.0).

Clear documentation

Every contribution needs proper documentation explaining what it does, how to use it, and any requirements or dependencies.

Data privacy

Ensure your datasets are clean and free of sensitive information. Remove any personal identifiers or private data before submission.

Legal rights

You must have the rights to share everything in your submission. Get permission from co-authors if needed and ensure license compatibility.

Contributing algorithms and tools

What you can contribute

We welcome all kinds of content related to chemometrics. If it helps others explore, clean, model, explain, or teach chemical data, it belongs in The Square. You can contribute many different things such as:

CategoryDescription
Algorithms and modelsFor dimensionality reduction, regression, classification, clustering, calibration, variable selection, etc.
Preprocessing techniquesSuch as baseline correction, smoothing, normalization, centering, scaling, or signal alignment among others.
Visualization toolsFor plotting spectra, score plots, loadings, heatmaps, or interactive displays.
Exploratory toolsTo help reveal patterns, trends, or groupings in complex data.
Validation and evaluation toolsLike cross-validation scripts, residual analysis, performance metrics, or model comparison.
Helper functions and utilitiesFor data cleaning, transformation, formatting, or organizing workflows.
Teaching and learning resourcesExamples, templates, notebooks, or small demos to support study and training.

Code can be in any programming language: Python, R, MATLAB, C++, or others.

Making your code reusable

To help make your contribution useful and reusable for others, we recommend following a few simple coding practices. These steps will improve clarity, avoid system-specific issues, and make it easier for users to test, adapt, and build upon your work.

  1. Structure your code clearly: Break your code into functions or classes instead of writing everything in one long script. This makes your code easier to read, test, and reuse. A well-structured script also helps others understand what each part does and where to make changes if needed.

  2. Avoid hard-coding: Don’t write file paths, parameter values, or system-specific settings directly into the code. Instead, let users input their own data and options through arguments, configuration files, or prompts. This allows your code to run correctly on different computers and with different datasets.

  3. Include examples: Add sample data, demo files, or ready-to-run scripts that show how your code works in practice. Providing a typical use case with default settings makes it much easier for others to get started and understand how your method can be applied.

  4. List requirements: Make a clear list of all external libraries, packages, or toolboxes your code depends on. This could be a requirements.txt file or a README section. Listing dependencies ensures users can set up their environment without guessing or running into errors.

Documentation requirements

When you upload your code to The Square, you will need to fill out two description boxes. This information helps others understand and use your work, and it also supports our review and indexing process.

Short Description: Write a concise line summarizing what your code does. Keep it brief for easy analysis by our system.

Example:
EMSC algorithm for correcting multiplicative/additive effects in spectral data.

Extended Description: This is where you explain your code in more detail. Try to include:

  • Purpose: What problem does the code solve?
  • Algorithm or method: What technique is used?
  • How it works: Main logic or approach used in the script.
  • How to use it: Basic instructions or required inputs.

Example:
The EMSC (Extended Multiplicative Signal Correction) function corrects spectral data by removing multiplicative scaling, additive offsets, and baseline variations. It fits a reference spectrum (e.g., mean/median) to each input spectrum using a polynomial baseline model, estimating scaling (a), offset (b), and baseline coefficients.

We know the extended description field can feel a bit restrictive in terms of space. This limit is intentional; it helps Ada, our artificial intelligence agent, work more efficiently when guiding users. We truly appreciate the effort you make to squeeze your explanation into a compact but meaningful format.

Code package preparation

Your code should be uploaded as a ZIP file containing:

  • All source code files
  • Documentation (README file with clear instructions for use)
  • Example datasets (if needed)

Example Structure:

  • DirectoryEMSC_toolbox.zip
    • EMSC_correction.m # Main function
    • README.txt # Documentation
    • example_data.mat # Sample data
    • example_usage.m # Usage example

Contributing datasets

What you can contribute

We welcome any dataset related to the data-analysis field that can benefit the community; useful for benchmarking, teaching, testing, or research purposes.

CategoryDescription
TeachingCollections designed to illustrate core analysis concepts in lectures or workshops
ValidationDatasets for checking and validating new algorithms or workflows
BenchmarkingStandardized sets used to compare performance across multiple methods
Tutorial ExamplesSmall, focused datasets for step-by-step walkthroughs and teaching materials
Performance EvaluationReal-world or synthetic data aimed at stress-testing scalability, speed, robustness…
Simulation DataSynthetic or modeled data for exploring hypothetical scenarios or method behavior
Domain-Specific CollectionsDatasets related to specific fields (e.g., environmental sensors, bioinformatics, process control)
Educational ChallengesCompetition datasets designed to engage students in solving specific problems

Data preparation guidelines

Before sharing your dataset on The Square, please prepare it carefully so others can immediately understand and use it.

  1. Clean format
    Organize your data with clear, consistent column headers and remove errors or corrupt entries. CSV is preferred for maximum compatibility.

  2. Rich metadata
    Provide a data dictionary: describe how measurements were taken, what each variable means, units, timestamps, and any preprocessing steps applied.

  3. Privacy protection
    Strip out any personal or confidential information. Anonymize sample IDs and ensure compliance with relevant data-protection regulations.

Data hosting requirements

To ensure long-term accessibility, it is strongly recommended to supply a public download link hosted on a stable service. Recommended platforms include:

  • Zenodo (provides a DOI for citation, recommended by Lovelace’s Square Team)
  • Institutional repository
  • Google Drive or Dropbox (verify public-access settings)

Submission process

  1. Visit the submission page

    Go to Lovelace’s Square and navigate to “The Square” section. Choose either:

    • “List your code” for algorithm contributions
    • “List your dataset” for data contributions
  2. Fill in contributor details

    • Authors: Your name and any co-contributors
    • Affiliation: Your institution or organization (optional but recommended)
    • Email: Contact email for communication (not shown publicly)
  3. Provide title and descriptions

    • Name: Clear, concise title for your contribution
    • Short Description: One or two sentences summarizing the content
    • Extended Description: Detailed explanation with usage notes
  4. Specify technical details

    • License: Choose an appropriate open license
    • Keywords: Add relevant tags for discoverability
    • Version: Label your submission (e.g., v1.0)
    • Category: Select the most appropriate classification
    • Programming Language for code or Download Link for datasets
  5. Upload and submit

    • For code: Upload your ZIP file
    • For datasets: Provide the external download URL
    • Agree to our Terms of Use and Privacy Policy
    • Click Submit!

Review and publication process

What happens next

📋 Team Review

Our team verifies your submission is complete, appropriate, and clearly documented. We check for prohibited content and ensure files work correctly.

💬 Possible Feedback

If we find issues or need clarification, we’ll contact you at your provided email. Common requests include missing files, unclear descriptions, or license questions.

✅ Publication

Once approved, your contribution becomes publicly visible in The Square with your name, description, and download links clearly displayed.

🔄 Updates Welcome

You can submit updated versions in the future. We support versioning to keep contributions current and useful.

Why your contribution matters

By contributing to Lovelace’s Square, you are:

  • Helping the community by sharing knowledge and tools that save others time
  • Advancing open science by making chemometric methods more accessible
  • Supporting education by providing resources for students and newcomers
  • Building your reputation as a contributor to open science

Thank you for considering contributing to Lovelace’s Square. We look forward to seeing your algorithms and datasets become part of this growing library of chemometric resources. Together, we push the boundaries of open science in chemometrics.

Happy contributing! 🚀