#+STARTUP: inlineimages #+TITLE: Quality Control Application ** Project Goals The project seeks to handle the checking of data files for correct syntax and other errors before allowing the code to be uploaded. The files are *"tab-separated"* values (TSV) files, and must conform to the following criteria: *** Line-Level Checks - Must be tab-separated - *** Cell-Level Checks - No empty data cells - no data cells with spurious characters like `eeeee`, `5.555iloveguix`, etc. - decimal numbers must conform to the following criteria: - - when checking an average file decimal numbers must contain exactly three places to the right side of the dot. - - when checking a standard error file decimal numbers must contain six or greater places to the right side of the dot. - - there must be a number to the left side of the dot (e.g. 0.55555 is allowed but .55555 is not). - check line endings to make sure they are Unix and not DOS - check strain headers against a source of truth (see strains.csv) ** Development For reproducibility, this project is developed using guix. To launch a guix shell for development, do: #+BEGIN_SRC shell guix shell --container --network --manifest=manifest.scm #+END_SRC to get an environment that is isolated from the rest of your system. *** Tests Run tests with: #+BEGIN_SRC shell pytest #+END_SRC