Line 1: |
Line 1: |
| + | '''NOTE: Not all validation Criteria has been listed here, and not all listed here have been implemented (Implemented checks are marked green.)''' |
| + | |
| === SAM Header Validation Rules === | | === SAM Header Validation Rules === |
| TODO | | TODO |
Line 13: |
Line 15: |
| |- | | |- |
| | All Required Fields are set | | | All Required Fields are set |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | If HD line is there, VN is also there. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | HD/VN is not in valid format /^[0-9]+\.[0-9]+$/ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | HD/SO is a valid value (unsorted, queryname, coordinate) |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | SQ/SN all SQ lines have a unique SN field |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | SQ/LN is in the range [1, (2^29) -1] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | SQ/LN is not a number |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | RG/ID all RG lines have a unique ID field |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | RG/PL is a valid value (ILLUMINA, SOLID, LS454, HELICOS, PACBIO) |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | Header has X-lines or fewer (or a max number of SQ lines (this was a problem once of a file with a crazy number of header lines) |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
Line 37: |
Line 93: |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
− | | QNAME does not contain [ \t\n\r] | + | | QNAME is valid: [!-?A-~] (printable characters minus space and '@') '''This is a new regular expression''' |
− | |style="background-color:green;"| | + | |style="background-color:red;"| |
− | |style="background-color:green;"| | + | |style="background-color:red;"| |
− | |style="background-color:green;"| | + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
Line 107: |
Line 163: |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |- |
| + | | CIGAR string matches the length of SEQ if both are not "*" |
| + | |style="background-color:green;"| |
| + | |style="background-color:green;"| |
| + | |style="background-color:green;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
Line 163: |
Line 225: |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
− | | If QUAL is not “*” it is the same length as SEQ. | + | | If QUAL and SEQ are not “*” they are the same length. |
− | |style="background-color:red;"| | + | |style="background-color:green;"| |
− | |style="background-color:red;"|
| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| + | |style="background-color:green;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
Line 248: |
Line 310: |
| | | |
| Consider may want to validate the cigar string against the read length... | | Consider may want to validate the cigar string against the read length... |
− |
| |
| | | |
| == Other Read Validation == | | == Other Read Validation == |