Information for contributors
Complete guide for contributing algorithms, datasets, and tools to Lovelace's Square. Learn about licensing, documentation, and the submission process.
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.
Before your start
Before submitting your contribution, please make sure to follow our platform's guidelines on good practices. These will help you prepare high-quality, reusable content for the community.
You can find the full guidelines here: Good Practices
This ensures your submission is complete, clearly documented, and ready for review.
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:
| Category | Description |
|---|---|
| Algorithms and models | For dimensionality reduction, regression, classification, clustering, calibration, variable selection, etc. |
| Preprocessing techniques | Such as baseline correction, smoothing, normalization, centering, scaling, or signal alignment among others. |
| Visualization tools | For plotting spectra, score plots, loadings, heatmaps, or interactive displays. |
| Exploratory tools | To help reveal patterns, trends, or groupings in complex data. |
| Validation and evaluation tools | Like cross-validation scripts, residual analysis, performance metrics, or model comparison. |
| Helper functions and utilities | For data cleaning, transformation, formatting, or organizing workflows. |
| Teaching and learning resources | Examples, templates, notebooks, or small demos to support study and training. |
Code can be in any programming language: Python, R, MATLAB, Julia, 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.
-
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.
-
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.
-
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.
-
List requirements: Make a clear list of all external libraries, packages, or toolboxes your code depends on. This could be a
requirements.txtfile or aREADMEsection. 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.
Include a detailed README file or clear comments within your code, with no limit on length. The goal is for someone to download and understand your code without needing to contact you.
Code hosting
We strongly recommend hosting your code on GitHub (or a similar platform like GitLab or Bitbucket). A repository makes your contribution easier to maintain, version, and cite, and it lets the community open issues, suggest improvements, and track changes over time. During submission, you can provide the repository URL directly.
If you prefer not to use a repository, you can upload your code as a ZIP file instead. In either case, your contribution should include:
- All source code files
- Documentation (README file with clear instructions for use)
- Example usage
Example Structure:
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.
| Category | Description |
|---|---|
| Validation | Datasets for checking and validating new algorithms or workflows |
| Benchmarking | Standardized sets used to compare performance across multiple methods |
| Performance Evaluation | Real-world or synthetic data aimed at stress-testing scalability, speed, robustness... |
| Simulation Data | Synthetic or modeled data for exploring hypothetical scenarios or method behavior |
| Domain-Specific Collections | Datasets related to specific fields (e.g., environmental sensors, bioinformatics, process control) |
| Educational Challenges | Competition 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.
-
Clean format
Organize your data with clear, consistent column headers and remove errors or corrupt entries. CSV is preferred for maximum compatibility. -
Rich metadata
Provide a data dictionary: describe how measurements were taken, what each variable means, units, timestamps, and any preprocessing steps applied. -
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, strongly preferred by Lovelace's Square Team)
- Institutional repository
- Google Drive or Dropbox (acceptable alternatives, but verify public-access settings)
Important
Before submitting, open your download link in a private/incognito window to confirm it’s accessible without permissions. Lovelace's Square can consider to re-upload the dataset to other platforms (such as Zenodo) to guarantee long term access.
Submission process
-
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
-
Fill in contributor details
- Authors: Your name and any co-contributors
- Affiliation: Your institution or organization (required)
- Email: Contact email for communication (not shown publicly)
-
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
-
Specify technical details
- License: Choose an appropriate open license
- Keywords: Add relevant tags for discoverability
- Version: Label your submission (e.g., v1.0)
- Categories: Select all that apply
- Programming Language for code or Download Link for datasets
- GitHub Link: If your code is hosted on GitHub, you can provide the repository URL in the corresponding field
-
Upload and submit
- For code: Provide your GitHub repository URL, or upload a ZIP file if you don't use a repository
- 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.
Review Timeline
We aim to review submissions quickly, usually within a few days. The review ensures quality and protects both contributors and users who download content.
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
Be Proud!
Remember that even small contributions can have big impact. A simple script or small dataset can save someone hours of work or help a student understand a concept. We welcome contributors of all experience levels.
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! 🚀