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

Vision for pysam2 #5

Open
kevinjacobs-progenity opened this issue Mar 12, 2020 · 0 comments
Open

Vision for pysam2 #5

kevinjacobs-progenity opened this issue Mar 12, 2020 · 0 comments

Comments

@kevinjacobs-progenity
Copy link
Member

Kevin's vision for pysam2

  1. Require Python 3 (perhaps 3.7+)
  2. Upgrade to htslib 2
    • Many many API updates
    • Ensure all pysam code is 64bit clean to match new htslib API
    • Adopt new region parser
    • Avoid need to vendor htslib
    • Work with htslib team to remove few remaining abort()s in the library code
    • Work with htslib team to provide noninvasive output/warning/error hooks
    • Integrate htslib logging with Python logging
  3. Provide a cleaner and more consistent API
    • Complete deprecation of older APIs
    • Harmonize various HtsFile subclasses
    • Deprecate legacy VCF parser
  4. Support new VCF features
    • Follow progress in hts-specs (VCF 4.4), htslib
    • URL encoded info and format values (needed to escape VCF delimiters in values)
  5. Improve Python developer/user experience
    • Prevent virtually all crashes/segfaults from Python wrapper
    • Fully control C struct lifetimes (we're close, I think)
    • Hide all memory management details
    • Support efficient header translation without user intervention to hide
      translation details from one file/header to another. Currently users
      need to know about TIDs, etc.)
    • Prevent or catch and recover from illegal operations
  6. Provide on high quality comprehensive documentation -- a historical weakness
    • Poor/incomplete documentation has been the biggest weakness of pysam
      historically.
  7. Modernize test suite
    • modernize current test suite
    • add more high code coverage unit tests
    • add lightweight system tests
  8. Simplify scope by wrapping only htslib, not samtools or bcftools
    • Subject to debate of course. I don't use this functionality, so it
      isn't important to me. This becomes a much easier feature to support
      if a developer who cares greatly about this feature steps up to work on
      this.
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

No branches or pull requests

1 participant