Fix Python 3 bytes compatibility in ragtag_agp2fa.py #205
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When running
ragtag.py scaffoldwith Python 3.6+, the process fails during FASTA generation with:TypeError: a bytes-like object is required, not 'dict'Root Cause
pysam.FastaFile.fetch()returns bytes in Python 3, but the code was trying to pass these bytes directly toreverse_complement()andsys.stdout.write(), which expect strings.Solution
Added
.decode('utf-8')to convert bytes to strings before processing in two locations inragtag_agp2fa.py:reverse_complement()sys.stdout.write()Testing
Tested with actual genomic data where the original code was failing. The fix resolves the issue and scaffolding completes successfully.