Skip to content

Latest commit

Β 

History

History
162 lines (107 loc) Β· 5.13 KB

File metadata and controls

162 lines (107 loc) Β· 5.13 KB

🀝 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:

  1. πŸ“ Create File: New YAML file in the methods/ directory with a descriptive filename (e.g., my_new_method.yaml)

  2. πŸ“ 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 frameworks
    • Inspired by: List of references or inspirations

✏️ To edit an existing method:

  1. πŸ” Find File: Locate the corresponding YAML file in the methods/ directory
  2. ✏️ 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.yaml
  • Method: GEARS β†’ gears.yaml
  • Method: 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 question label
  • πŸ› Bug Reports: Use the bug label and provide details
  • πŸ’‘ Feature Requests: Use the enhancement label
  • πŸ“§ 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! 🌟