Improve error reporting

Issue #134 resolved
Jason Vander Heiden created an issue

Errors can be ambiguous in cases where columns are missing or records have been failed due to internal checks. We need to do a pass through all the error/warning reports and add column checks.

Some issues currently:

  • CreateGermlines will fail sequences with a length mismatch if the NP1_LENGTH and NP2_LENGTH are missing, because they default to 0 if absent. We should pre-check to make sure these are present and exit if they're not.
  • MakeDb doesn't have a log file, so it's unclear when a sequence is failed because the JUNCTION and SEQUENCE_IMGT values don't align properly.
  • MakeDb reports missing germlines to stderr instead of a log.
  • MakeDb and CreateGermlines will fail without IMGT-gapped germlines, but we don't pre-check that the reference set is properly IMGT-gapped, so the basis for failure is unclear. It may be sufficient to check for dots in the reference set - otherwise, I'm not sure how we would about this without engineering a way to gap germlines de novo.

Comments (5)

  1. Jason Vander Heiden reporter

    We could probably do an error only log file for MakeDb. It would be a little weird, because nothing else works like that, but probably better than dumping every error to stderr.

  2. Jason Vander Heiden reporter
    • Added check for missing fields to CreateGermlines and ConvertDb-genbank.
    • Added naive check for IMGT-gapped references in CreateGermlines and MakeDB.
  3. Jason Vander Heiden reporter

    Getting MakeDb messages into a log is going to require some restructuring of IO.IMGTReader, IO.IgBLASTReader and IO.IHMMuneReader. Probably the easiest way is to add a log handle argument to each, add exception raises with informative messages during parser errors in the relevant functions/methods, and have the reader catch those execeptions and write the log as it iterates independent of MakeDb's writer.

  4. Jason Vander Heiden reporter

    Added the --log argument to MakeDb in 5a2125e. Going to skip dumping missing germline messages into the log. It's a lot of work, and it might actually be better for the warning to be "in your face" more so you fix it.

  5. Log in to comment