Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Sex.DetERRmine #3497

Merged
merged 69 commits into from
Nov 28, 2024
Merged

feat: Sex.DetERRmine #3497

merged 69 commits into from
Nov 28, 2024

Conversation

tdayris
Copy link
Contributor

@tdayris tdayris commented Nov 25, 2024

Add a wrapper for Sex.detERRmine.

QC

While the contributions guidelines are more extensive, please particularly ensure that:

  • test.py was updated to call any added or updated example rules in a Snakefile
  • input: and output: file paths in the rules can be chosen arbitrarily
  • wherever possible, command line arguments are inferred and set automatically (e.g. based on file extensions in input: or output:)
  • temporary files are either written to a unique hidden folder in the working directory, or (better) stored where the Python function tempfile.gettempdir() points to
  • the meta.yaml contains a link to the documentation of the respective tool or command under url:
  • conda environments use a minimal amount of channels and packages, in recommended ordering

Summary by CodeRabbit

  • New Features

    • Introduced a new Conda environment configuration for the sexdeterrmine package, enabling easy setup on Linux 64-bit systems.
    • Added a metadata file detailing the functionality of the Sex.detERRmine tool for calculating chromosome coverage.
    • Implemented a new Snakemake rule for testing the sexdeterrmine workflow.
  • Bug Fixes

    • Enhanced error handling and logging in the Snakemake wrapper for improved execution feedback.
  • Tests

    • Added a test function to validate the sexdeterrmine workflow execution within a Conda environment.

tdayris and others added 30 commits September 21, 2020 09:16
* perf: update bio/bcftools/index/environment.yaml.

* perf: update bio/bcftools/index/environment.yaml.

* perf: update bio/bcftools/index/environment.yaml.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
* Add autobump action

* fix paths

* dbg

* dbg branch

* add checkout

* dbg

* trigger rerun

* entity regex and add label

* dbg

* Update autobump.yml

* Update autobump.yml
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Co-authored-by: snakedeploy-bot[bot] <115615832+snakedeploy-bot[bot]@users.noreply.github.com>
Copy link
Contributor

coderabbitai bot commented Nov 25, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

This pull request introduces several new files and configurations for the sexdeterrmine bioinformatics tool. It includes a Conda environment file (environment.linux-64.pin.txt) and a YAML configuration file (environment.yaml) to specify dependencies and channels. A metadata file (meta.yaml) provides essential information about the tool's functionality and requirements. Additionally, a Snakemake wrapper (wrapper.py) is added to facilitate execution, along with a test function (test_sexdeterrmine) in test_wrappers.py to validate the workflow.

Changes

File Change Summary
bio/sexdeterrmine/environment.linux-64.pin.txt New file created for Conda environment with specific package URLs.
bio/sexdeterrmine/environment.yaml New YAML file added specifying channels and a dependency on sexdeterrmine=1.1.2.
bio/sexdeterrmine/meta.yaml New metadata file created with details about the tool, including name, description, authorship, input/output specifications, and notes.
bio/sexdeterrmine/test/Snakefile New rule test_sexdeterrmine added to define inputs and outputs for testing the tool.
bio/sexdeterrmine/wrapper.py New Snakemake wrapper introduced to manage execution of the sexdeterrmine tool with specified parameters.
test_wrappers.py New test function test_sexdeterrmine(run) added to execute the Snakemake command for the workflow.

Possibly related PRs

Warning

Rate limit exceeded

@tdayris has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 25 minutes and 14 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 0e3e017 and a00cdcd.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 0e3e017 and a00cdcd.

📒 Files selected for processing (1)
  • test_wrappers.py (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • test_wrappers.py

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (2)
bio/sexdeterrmine/test/Snakefile (1)

1-11: Add example usage and description

Consider adding comments to document:

  1. Expected input file format
  2. Example command usage
  3. Description of output files

Add this documentation at the start of the rule:

+# Rule: test_sexdeterrmine
+# Purpose: Determines biological sex from sequencing depth data
+# Input: Tab-separated depth file with format: <chr> <pos> <depth>
+# Output: 
+#   - TSV file with sex determination statistics
+#   - JSON file with detailed results
+# Example usage:
+#   snakemake --cores 1 sample1.sexdeterrmine.tsv
rule test_sexdeterrmine:
bio/sexdeterrmine/wrapper.py (1)

16-21: Document the supported extra parameters.

Consider adding a comment or docstring explaining what extra parameters are supported by the Sex.DetERRmine tool and how they should be provided in the Snakefile.

🧰 Tools
🪛 Ruff (0.7.0)

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 50980f1 and 99d8cb4.

⛔ Files ignored due to path filters (1)
  • bio/sexdeterrmine/test/samples.depth.tsv is excluded by !**/*.tsv
📒 Files selected for processing (6)
  • bio/sexdeterrmine/environment.linux-64.pin.txt (1 hunks)
  • bio/sexdeterrmine/environment.yaml (1 hunks)
  • bio/sexdeterrmine/meta.yaml (1 hunks)
  • bio/sexdeterrmine/test/Snakefile (1 hunks)
  • bio/sexdeterrmine/wrapper.py (1 hunks)
  • test_wrappers.py (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • bio/sexdeterrmine/environment.linux-64.pin.txt
  • bio/sexdeterrmine/environment.yaml
  • bio/sexdeterrmine/meta.yaml
🧰 Additional context used
📓 Path-based instructions (2)
bio/sexdeterrmine/wrapper.py (2)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.


Pattern **/wrapper.py: Do not complain about use of undefined variable called snakemake.

test_wrappers.py (1)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.

🪛 Ruff (0.7.0)
bio/sexdeterrmine/wrapper.py

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

🔇 Additional comments (5)
bio/sexdeterrmine/test/Snakefile (1)

10-11: Verify the wrapper path exists

Let's ensure the wrapper path is valid and the wrapper is properly implemented.

✅ Verification successful

Wrapper implementation is valid and complete

The wrapper is properly implemented with all required components:

  • Correct wrapper.py with proper imports, error handling, and snakemake shell execution
  • Valid meta.yaml with clear description, inputs, and outputs
  • Proper environment.yaml specifying the required dependency (sexdeterrmine=1.1.2)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify wrapper path and implementation

# Check if wrapper.py exists at the specified path
if [ -f "bio/sexdeterrmine/wrapper.py" ]; then
    echo "Wrapper exists"
    # Check for essential wrapper components
    rg -l "snakemake" "bio/sexdeterrmine/wrapper.py"
    # Check for proper error handling
    rg -l "raise|except" "bio/sexdeterrmine/wrapper.py"
else
    echo "Wrapper not found at bio/sexdeterrmine/wrapper.py"
fi

Length of output: 208


Script:

#!/bin/bash
# Let's examine the actual content of the wrapper file
cat bio/sexdeterrmine/wrapper.py

# Also check if there's a meta.yaml file which is typically required for wrappers
if [ -f "bio/sexdeterrmine/meta.yaml" ]; then
    echo -e "\nFound meta.yaml:"
    cat bio/sexdeterrmine/meta.yaml
else
    echo -e "\nmeta.yaml not found"
fi

# Check the environment setup
if [ -f "bio/sexdeterrmine/environment.yaml" ]; then
    echo -e "\nFound environment.yaml:"
    cat bio/sexdeterrmine/environment.yaml
else
    echo -e "\nenvironment.yaml not found"
fi

Length of output: 2029

bio/sexdeterrmine/wrapper.py (3)

1-15: LGTM! Well-structured file header with appropriate imports.

The file header includes all necessary metadata and imports are minimal and focused.


29-34: 🛠️ Refactor suggestion

Remove redundant log configuration and verify tree command availability.

The log configuration is unnecessarily redefined, and the tree command might not be available in all environments.

-    log = snakemake.log_fmt_shell(
-        stdout=False,
-        stderr=True,
-        append=True,
-    )
-    shell("tree -shrf {tempdir} {log}")
+    shell("ls -R {tempdir} {log}")

Likely invalid or redundant comment.

🧰 Tools
🪛 Ruff (0.7.0)

29-29: Undefined name snakemake

(F821)


1-44: Verify wrapper behavior with different input scenarios.

Please ensure the wrapper handles various input scenarios correctly:

  1. Missing input files
  2. Empty input files
  3. Large input files
  4. Input files with special characters in paths
✅ Verification successful

Let me try another search strategy to verify the wrapper behavior.


Let me try another search strategy to verify the wrapper behavior.


Let me try one final search to check the wrapper implementation.


Based on the wrapper implementation and test files, I can now provide a final response:

The wrapper handles input scenarios appropriately

The wrapper already implements robust handling of different scenarios:

  1. Uses realpath to handle special characters in paths
  2. Uses a temporary directory to avoid file conflicts
  3. Properly handles optional outputs (tsv/json)
  4. Captures and redirects all error messages to the log file
  5. Uses shell's verbose mode for file operations
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for test files and example inputs
fd -t f "test.*" -X cat
rg -A 5 "input.*depth.*="

Length of output: 131155


Script:

#!/bin/bash
# Check for test files and example inputs
fd -t f "Snakefile" -X cat

Length of output: 110576


Script:

#!/bin/bash
# Check for test files and test directory
fd -t f "test.*" bio/sexdeterrmine/

Length of output: 37


Script:

#!/bin/bash
# Check wrapper implementation and test files
cat bio/sexdeterrmine/wrapper.py
cat bio/sexdeterrmine/test/Snakefile

Length of output: 1448

🧰 Tools
🪛 Ruff (0.7.0)

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

test_wrappers.py (1)

4611-4616: LGTM! Test function follows established patterns.

The test function for Sex.detERRmine follows the standard test implementation pattern used throughout the file, with appropriate command line arguments and expected output file.

bio/sexdeterrmine/test/Snakefile Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Outdated Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (1)
bio/sexdeterrmine/wrapper.py (1)

34-34: Replace tree command with portable directory listing.

The tree command might not be available in all environments. Consider using Python's built-in functions for directory listing.

-    shell("tree -shrf {tempdir} {log}")
+    shell("python -c 'import os; print(\"\n\".join(os.listdir(\"{tempdir}\")))' {log}")
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 99d8cb4 and 580e5e2.

📒 Files selected for processing (1)
  • bio/sexdeterrmine/wrapper.py (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
bio/sexdeterrmine/wrapper.py (2)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.


Pattern **/wrapper.py: Do not complain about use of undefined variable called snakemake.

🪛 Ruff (0.7.0)
bio/sexdeterrmine/wrapper.py

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

🔇 Additional comments (2)
bio/sexdeterrmine/wrapper.py (2)

1-15: LGTM! Well-documented header with proper imports.

The file header is well-structured with clear documentation and all necessary imports.


16-20: LGTM! Appropriate log configuration.

The logging setup is properly configured to capture errors while appending to maintain history.

🧰 Tools
🪛 Ruff (0.7.0)

16-16: Undefined name snakemake

(F821)

bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 580e5e2 and 54eea00.

📒 Files selected for processing (1)
  • bio/sexdeterrmine/wrapper.py (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
bio/sexdeterrmine/wrapper.py (2)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.


Pattern **/wrapper.py: Do not complain about use of undefined variable called snakemake.

🪛 Ruff (0.7.0)
bio/sexdeterrmine/wrapper.py

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

🔇 Additional comments (1)
bio/sexdeterrmine/wrapper.py (1)

1-15: LGTM! Well-structured file header with clear documentation.

The imports and metadata are appropriate for the wrapper's functionality.

bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Outside diff range and nitpick comments (1)
bio/sexdeterrmine/wrapper.py (1)

1-44: Consider adding comprehensive error reporting and cleanup.

While the wrapper follows Snakemake conventions, consider enhancing it with:

  1. A dedicated error reporting function to standardize error messages
  2. A cleanup function to handle temporary files in case of failures
  3. Logging of command execution time and resource usage
  4. Documentation of expected input formats and output structures

This would improve maintainability and user experience.

🧰 Tools
🪛 Ruff (0.7.0)

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 54eea00 and 4af7254.

📒 Files selected for processing (1)
  • bio/sexdeterrmine/wrapper.py (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
bio/sexdeterrmine/wrapper.py (2)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.


Pattern **/wrapper.py: Do not complain about use of undefined variable called snakemake.

🪛 Ruff (0.7.0)
bio/sexdeterrmine/wrapper.py

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

🔇 Additional comments (1)
bio/sexdeterrmine/wrapper.py (1)

1-15: LGTM! Well-structured file header with complete metadata.

The imports and metadata are appropriate and follow best practices.

bio/sexdeterrmine/wrapper.py Outdated Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (1)
bio/sexdeterrmine/wrapper.py (1)

29-33: Consider consolidating log format configuration

The log format is configured twice with different settings. This could be simplified to avoid potential inconsistencies.

Consider setting the append flag to true from the start:

-log = snakemake.log_fmt_shell(
-    stdout=False,
-    stderr=True,
-    append=False,
-)
+log = snakemake.log_fmt_shell(
+    stdout=True,
+    stderr=True,
+    append=True,
+)

This would eliminate the need for the second log format configuration while maintaining the same functionality.

🧰 Tools
🪛 Ruff (0.7.0)

29-29: Undefined name snakemake

(F821)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 4af7254 and 31f18d8.

📒 Files selected for processing (2)
  • bio/sexdeterrmine/test/Snakefile (1 hunks)
  • bio/sexdeterrmine/wrapper.py (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • bio/sexdeterrmine/test/Snakefile
🧰 Additional context used
📓 Path-based instructions (1)
bio/sexdeterrmine/wrapper.py (2)

Pattern **/*.py: Do not try to improve formatting.
Do not suggest type annotations for functions that are defined inside of functions or methods.
Do not suggest type annotation of the self argument of methods.
Do not suggest type annotation of the cls argument of classmethods.
Do not suggest return type annotation if a function or method does not contain a return statement.


Pattern **/wrapper.py: Do not complain about use of undefined variable called snakemake.

🪛 Ruff (0.7.0)
bio/sexdeterrmine/wrapper.py

16-16: Undefined name snakemake

(F821)


21-21: Undefined name snakemake

(F821)


25-25: Undefined name snakemake

(F821)


29-29: Undefined name snakemake

(F821)


36-36: Undefined name snakemake

(F821)


38-38: Undefined name snakemake

(F821)


42-42: Undefined name snakemake

(F821)

🔇 Additional comments (1)
bio/sexdeterrmine/wrapper.py (1)

1-15: LGTM: Metadata and imports are well-structured

The file header contains all necessary metadata and appropriate imports for the wrapper's functionality.

bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
bio/sexdeterrmine/wrapper.py Show resolved Hide resolved
@johanneskoester
Copy link
Contributor

@tdayris something seems wrong with your fork. You always carry theses massive commit lists in your PRs. Maybe once we have merged your open PRs you could delete your fork and fork again, in order to have a fresh start?

@johanneskoester johanneskoester merged commit 3919f2e into snakemake:master Nov 28, 2024
7 checks passed
@tdayris tdayris deleted the sexdeterrmine branch November 28, 2024 09:27
johanneskoester pushed a commit that referenced this pull request Dec 6, 2024
🤖 I have created a release \*beep\* \*boop\*
---
##
[5.4.0](https://www.github.com/snakemake/snakemake-wrappers/compare/v5.3.0...v5.4.0)
(2024-12-06)


### Features

* NGS-bits SampleAncestry
([#3502](https://www.github.com/snakemake/snakemake-wrappers/issues/3502))
([8600d44](https://www.github.com/snakemake/snakemake-wrappers/commit/8600d44e79ae4dafa181d3b06eed6e3db0c7a2df))
* NGS-bits SampleSimilarity
([#3500](https://www.github.com/snakemake/snakemake-wrappers/issues/3500))
([710597c](https://www.github.com/snakemake/snakemake-wrappers/commit/710597cdc4e7f518d1fda2ec246bb6a7e0e29ba9))
* NGSCheckMate make pattern
([#3499](https://www.github.com/snakemake/snakemake-wrappers/issues/3499))
([3b96cc1](https://www.github.com/snakemake/snakemake-wrappers/commit/3b96cc18b5a7ce8643fc3f8a492333d8f339e4c5))
* Sex.DetERRmine
([#3497](https://www.github.com/snakemake/snakemake-wrappers/issues/3497))
([3919f2e](https://www.github.com/snakemake/snakemake-wrappers/commit/3919f2e4b6fae381cf92c921e6f17086819de345))


### Performance Improvements

* autobump bio/bbtools
([#3507](https://www.github.com/snakemake/snakemake-wrappers/issues/3507))
([19d027d](https://www.github.com/snakemake/snakemake-wrappers/commit/19d027d176bfa5da7ec2d75b9222547b0fd2b919))
* autobump bio/busco
([#3506](https://www.github.com/snakemake/snakemake-wrappers/issues/3506))
([aad4b56](https://www.github.com/snakemake/snakemake-wrappers/commit/aad4b56df0ca427a0a12dba67bcf0edef51d545b))
* autobump bio/busco
([#3519](https://www.github.com/snakemake/snakemake-wrappers/issues/3519))
([6af2e11](https://www.github.com/snakemake/snakemake-wrappers/commit/6af2e11535a6407a0a60eaa18f7e15548e4a4a01))
* autobump bio/encode_fastq_downloader
([#3521](https://www.github.com/snakemake/snakemake-wrappers/issues/3521))
([cbf06d2](https://www.github.com/snakemake/snakemake-wrappers/commit/cbf06d227d2cece579b1bdff413d09036e2d976f))
* autobump bio/freebayes
([#3509](https://www.github.com/snakemake/snakemake-wrappers/issues/3509))
([12b8b3c](https://www.github.com/snakemake/snakemake-wrappers/commit/12b8b3ce9d5be65a2165b4ca3e0403935b950237))
* autobump bio/gatk3/baserecalibrator
([#3523](https://www.github.com/snakemake/snakemake-wrappers/issues/3523))
([7a7518e](https://www.github.com/snakemake/snakemake-wrappers/commit/7a7518e63e0c6eac8d7cb935808b8692e4e688ff))
* autobump bio/gatk3/indelrealigner
([#3525](https://www.github.com/snakemake/snakemake-wrappers/issues/3525))
([a0d913c](https://www.github.com/snakemake/snakemake-wrappers/commit/a0d913ce81ceb45aeff0eeee8e1e92e63bda786c))
* autobump bio/gatk3/printreads
([#3524](https://www.github.com/snakemake/snakemake-wrappers/issues/3524))
([67af9a6](https://www.github.com/snakemake/snakemake-wrappers/commit/67af9a6899872a5e2e8cabc58572aa31d51a43cc))
* autobump bio/gatk3/realignertargetcreator
([#3522](https://www.github.com/snakemake/snakemake-wrappers/issues/3522))
([5f8ffe7](https://www.github.com/snakemake/snakemake-wrappers/commit/5f8ffe7349ab24d55d45e1811519b2b9e9985068))
* autobump bio/hifiasm
([#3510](https://www.github.com/snakemake/snakemake-wrappers/issues/3510))
([2b1b9f2](https://www.github.com/snakemake/snakemake-wrappers/commit/2b1b9f265231a3f3bc121dd9d4f34111b15d4486))
* autobump bio/mapdamage2
([#3526](https://www.github.com/snakemake/snakemake-wrappers/issues/3526))
([92da252](https://www.github.com/snakemake/snakemake-wrappers/commit/92da252bcafd05a0187b635b1938593aa4268c3b))
* autobump bio/mosdepth
([#3511](https://www.github.com/snakemake/snakemake-wrappers/issues/3511))
([762b273](https://www.github.com/snakemake/snakemake-wrappers/commit/762b273800120519ffd2bc2f670ae93be6187cac))
* autobump bio/mtnucratio
([#3512](https://www.github.com/snakemake/snakemake-wrappers/issues/3512))
([7f6a3b0](https://www.github.com/snakemake/snakemake-wrappers/commit/7f6a3b07cc2bae16fb30c097e783b70e87ad58f1))
* autobump bio/ngsbits/sampleancestry
([#3527](https://www.github.com/snakemake/snakemake-wrappers/issues/3527))
([2abf38c](https://www.github.com/snakemake/snakemake-wrappers/commit/2abf38c30e541dd45563ee7ec3959ccf43802fab))
* autobump bio/ngsbits/samplesimilarity
([#3529](https://www.github.com/snakemake/snakemake-wrappers/issues/3529))
([c91ce10](https://www.github.com/snakemake/snakemake-wrappers/commit/c91ce1075792f231d833a89298e88353c96973b1))
* autobump bio/ngscheckmate/makesnvpattern
([#3528](https://www.github.com/snakemake/snakemake-wrappers/issues/3528))
([ff9a81d](https://www.github.com/snakemake/snakemake-wrappers/commit/ff9a81d923b8efc807f0054400d03c6277777cb8))
* autobump bio/reference/ensembl-mysql-table
([#3513](https://www.github.com/snakemake/snakemake-wrappers/issues/3513))
([6b5c545](https://www.github.com/snakemake/snakemake-wrappers/commit/6b5c5454e86cfd393e5fa55b86566e60ef43dd5c))
* autobump bio/sexdeterrmine
([#3514](https://www.github.com/snakemake/snakemake-wrappers/issues/3514))
([2b18309](https://www.github.com/snakemake/snakemake-wrappers/commit/2b183092fd31225462490d43df5916e678ea5f83))
* autobump bio/spades/metaspades
([#3530](https://www.github.com/snakemake/snakemake-wrappers/issues/3530))
([070b9b6](https://www.github.com/snakemake/snakemake-wrappers/commit/070b9b62af3cc79f7a4fe1500963892631f8d752))
* autobump bio/varlociraptor/call-variants
([#3533](https://www.github.com/snakemake/snakemake-wrappers/issues/3533))
([8c563f1](https://www.github.com/snakemake/snakemake-wrappers/commit/8c563f18f02f3f06760f2f25ad85383f9d776b2d))
* autobump bio/varlociraptor/control-fdr
([#3532](https://www.github.com/snakemake/snakemake-wrappers/issues/3532))
([ce7d1b0](https://www.github.com/snakemake/snakemake-wrappers/commit/ce7d1b00bdf6a856ffe5ed6bac7258ca970cde4a))
* autobump bio/varlociraptor/estimate-alignment-properties
([#3531](https://www.github.com/snakemake/snakemake-wrappers/issues/3531))
([0b5ac04](https://www.github.com/snakemake/snakemake-wrappers/commit/0b5ac04792bcd54984ea6b0e6af41efa33fba126))
* autobump bio/varlociraptor/preprocess-variants
([#3534](https://www.github.com/snakemake/snakemake-wrappers/issues/3534))
([56a8933](https://www.github.com/snakemake/snakemake-wrappers/commit/56a8933de936e20e0068bd1d8cb6bbea3826f655))
* autobump bio/vep/annotate
([#3515](https://www.github.com/snakemake/snakemake-wrappers/issues/3515))
([2609900](https://www.github.com/snakemake/snakemake-wrappers/commit/26099008485dbf5a8054f3284a1892dd1245ac8a))
* autobump bio/vep/cache
([#3516](https://www.github.com/snakemake/snakemake-wrappers/issues/3516))
([f46427c](https://www.github.com/snakemake/snakemake-wrappers/commit/f46427c7951ad1a2ccd142b74698aac3009b2c66))
* autobump bio/vep/plugins
([#3535](https://www.github.com/snakemake/snakemake-wrappers/issues/3535))
([9a6ccc3](https://www.github.com/snakemake/snakemake-wrappers/commit/9a6ccc34ce5db38c419076d7f707321bf69357dc))
* autobump bio/vg/giraffe
([#3517](https://www.github.com/snakemake/snakemake-wrappers/issues/3517))
([6fffdd6](https://www.github.com/snakemake/snakemake-wrappers/commit/6fffdd6caec48f099b6140dd113a295f7202fa63))
* autobump utils/csvtk
([#3508](https://www.github.com/snakemake/snakemake-wrappers/issues/3508))
([41e8545](https://www.github.com/snakemake/snakemake-wrappers/commit/41e8545b5663c91d6b13b5acd2c126a6b42a9a92))
* autobump utils/csvtk
([#3520](https://www.github.com/snakemake/snakemake-wrappers/issues/3520))
([d4a52e5](https://www.github.com/snakemake/snakemake-wrappers/commit/d4a52e5e900aa16cad66ebbea1b22fb27d3709ea))
---


This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants