π€ How to Contribute#
π Thank you for considering contributions to this project! π
We welcome new methods, enhancements, bug fixes, and improvements to the existing content.
Note
π Quick Start: To ensure consistency and smooth integration, please follow the guidelines below.
1. β Add or Update Methods#
Each method is stored as an individual YAML file in the methods/ directory. This makes it easy to add new methods or edit existing ones without navigating through a large file.
π To add a new method:#
π Create File: New YAML file in the
methods/directory with a descriptive filename (e.g.,my_new_method.yaml)π Follow Structure: Use existing method files as templates, including these required fields:
Method: Method Name # π·οΈ Official method name Year: 2024 # π Publication year Published: true # β Publication status (true/false) Description: | # π Detailed description A comprehensive description of the method, including its approach, key features, and how it works. This text appears in the expandable table rows on the website. Task: # π― List of computational tasks - Task Category 1 - Task Category 2 Publication: https://doi.org/10.1000/example # π DOI or URL Code Availability: https://github.com/user/repo # π» Repository link
Additional optional fields:
Model: List of underlying models or frameworksInspired by: List of references or inspirations
βοΈ To edit an existing method:#
π Find File: Locate the corresponding YAML file in the
methods/directoryβοΈ Edit Directly: Modify the file - filenames correspond to method names (lowercased with special characters replaced)
Tip
π‘ File Naming: Use descriptive names based on the method name:
Method: cPCAβcpca.yamlMethod: GEARSβgears.yamlMethod: scGENβscgen.yaml
Warning
β οΈ YAML Syntax: Please ensure valid YAML syntax and follow existing entries for examples.
β
2. π Continuous Integration#
π Automated Workflow
A GitHub Actions workflow automatically runs generate_methods.py against methods.rst.j2 whenever your pull request is merged into main. This regenerates source/methods.rst to reflect your changes.
Important
β No Manual Work Required: You do NOT need to run any commands manually for the table update!
β
3. π Local Preview (Optional)#
If you wish to preview the changes locally before pushing your PR:
# π¦ Set up environment
conda env create -f environment.yml
# π Activate environment (once created)
conda activate iep-singlecell
# ποΈ Generate docs and build
python generate_methods.py && make -C docs clean html
π± View Results: Open docs/build/html/index.html in a browser.
β
4. π‘οΈ Quality Guidelines#
π‘ Best Practices
For Method Descriptions:
π Be comprehensive but concise - aim for 3-5 sentences
π― Focus on the key innovation or distinguishing features
π Mention the main application area or use case
βοΈ Include technical details that help users understand the approach
For Code Availability:
β Use
'-'if no code is availableπ Prefer GitHub/GitLab links over personal websites
π¦ Link to the main repository, not individual files
For Publications:
π·οΈ Use DOI links when available (
https://doi.org/10.xxxx/...)π° For preprints, use bioRxiv/arXiv links
π Ensure the link is publicly accessible
β
5. π Getting Help#
β Need Assistance?
π¬ Questions: Open a GitHub issue with the
questionlabelπ Bug Reports: Use the
buglabel and provide detailsπ‘ Feature Requests: Use the
enhancementlabelπ§ Direct Contact: Reach out to the maintainers
β
π Thank You for Contributing! π
Every contribution helps make this resource better for the entire single-cell community.
π Don't forget to star the repository if you find it useful! π