Skip to content
Alex Kanitz edited this page Mar 24, 2021 · 8 revisions

Functionalities to implement

  • Infer organism from which samples were derived
  • Infer read layout: single vs paired
  • Infer read layout: stranded/unstranded
  • Infer read layout: sense/antisense for each mate
  • Infer sequences of any adapters present in reads

Stretch goals

  • Infer type of captured molecule (RNA, DNA)
  • Infer method type (RNA-Seq vs CLIP vs A-Seq etc.)

Issues to add

  • validate against duplicate IDs and the issues mentioned in the ValidateFastq
  • handle SRA library types
  • handle potential mates for unknown file types (mapping)
  • check SRA metadata
  • allow passing SRA identifiers & download
  • implement --fast option (no validation & fix --records)
  • implement adapter inference properly

Checklist for new commits

  • Bump the tool version: minor versions should be incremented for every new feature; currently we are at v0.5.2, so the next feature added should have v0.6.0 and so on; for fixes, on the other hand, you should bump the patch version
  • Check CLI args: if there are any CLI args to add, (1) manually update the usage string in htsinfer/cli.py (this is necessary because the auto-generated one is wrong because and patching argparse is too much work), (2) add the parameter to the argument parser in the same module, (3) update the usage and parameter descriptions in README.md accordingly, (4) pass the parameter to the htsinfer.htsinfer.HtsInfer() instantiation in htsinfer/cli.py, (5) add the argument to the htsinfer.htsinfer.HtsInfer() signature in htsinfer/htsinfer.py, (6) add the argument and attribute description to its docstring, (7) define a corresponding attribute in its constructor and assign the argument value to it, and (8) pass it on to whatever class you need it
  • Implement/update any required models and enumerators in htsinfer/models.py
  • Add any required exceptions to htsinfer/exceptions.py
  • See if there's anything to add to the CI config (.travis.yml) and make sure that all commands listed in the script section run fine before pushing (including all tests and linters)
  • Make sure all test and data files added have meaningful names; add data files required by a functionality in a directory data/ in the project root
  • Make sure to update any dependencies, if necessary
Clone this wiki locally