Line 5: |
Line 5: |
| {| class="wikitable" style="width:100%" border="1" | | {| class="wikitable" style="width:100%" border="1" |
| |+ style="font-size:150%"|'''SAM Alignment Record''' | | |+ style="font-size:150%"|'''SAM Alignment Record''' |
− | ! width="70%"|Validation Criteria | + | ! rowspan='2' width="60%"|Validation Criteria |
− | ! width="15%"|Implemented | + | ! colspan="2" width="20%"|Implemented |
− | ! width="15%"|Tested | + | ! colspan="2" width="20%"|Tested |
| + | |- |
| + | ! width="10%"|SAM |
| + | ! width="10%"|BAM |
| + | ! width="10%"|SAM |
| + | ! width="10%"|BAM |
| |- | | |- |
| | QNAME.Length() > 0 and <= 254 | | | QNAME.Length() > 0 and <= 254 |
| |style="background-color:red;"| | | |style="background-color:red;"| |
− | |style="background-color:red;"| | + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |- | | |- |
| | QNAME does not contain [ \t\n\r] | | | QNAME does not contain [ \t\n\r] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | FLAG is an integer [0-9]+ | | | FLAG is an integer [0-9]+ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | FLAG < 2048 (I think) or [0, (2^16)-1] | | | FLAG < 2048 (I think) or [0, (2^16)-1] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | RNAME does not contain [ \t\n\r@=] | | | RNAME does not contain [ \t\n\r@=] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | POS is an integer [0-9]+ | | | POS is an integer [0-9]+ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | POS is [0, (2^29)-1] | | | POS is [0, (2^29)-1] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | MAPQ is an integer [0-9]+ | | | MAPQ is an integer [0-9]+ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | MAPQ is [0, (2^8)-1] | | | MAPQ is [0, (2^8)-1] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | <nowiki>CIGAR ([0-9]+[MIDNSHP])+|\*</nowiki> | | | <nowiki>CIGAR ([0-9]+[MIDNSHP])+|\*</nowiki> |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | MRNM does not contain [ \t\n\r@] ('=' means it is the same as RNAME) | | | MRNM does not contain [ \t\n\r@] ('=' means it is the same as RNAME) |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | If SQ is in the header RNAME & MRNM (if not “=”) must be in SQ. | | | If SQ is in the header RNAME & MRNM (if not “=”) must be in SQ. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | MPOS is an integer [0-9]+ | | | MPOS is an integer [0-9]+ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | MPOS is [0, (2^29)-1] | | | MPOS is [0, (2^29)-1] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | ISIZE is an integer -?[0-9]+ | | | ISIZE is an integer -?[0-9]+ |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | ISIZE is [-(2^29), 2^29] | | | ISIZE is [-(2^29), 2^29] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | <nowiki>SEQ is [acgtnACGTN.=]+|\*</nowiki> | | | <nowiki>SEQ is [acgtnACGTN.=]+|\*</nowiki> |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | If SEQ is * then QUAL is * | | | If SEQ is * then QUAL is * |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | <nowiki>QUAL is [!-~]+|* → dec 33 – 126 or dec 42 (which is in 32-126) (for BAM, it is between [0,93])</nowiki> | | | <nowiki>QUAL is [!-~]+|* → dec 33 – 126 or dec 42 (which is in 32-126) (for BAM, it is between [0,93])</nowiki> |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | If QUAL is not “*” it is the same length as SEQ. | | | If QUAL is not “*” it is the same length as SEQ. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | TAG is [A-Z][A-Z0-9] | | | TAG is [A-Z][A-Z0-9] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | A TAG only appears once per alignment | | | A TAG only appears once per alignment |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | VTYPE is [AifZH] for SAM and [AcCsSiIfZH] | | | VTYPE is [AifZH] for SAM and [AcCsSiIfZH] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | VALUE does NOT contain [\t\n\r] | | | VALUE does NOT contain [\t\n\r] |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | For VTYPE = “A”, VALUE is a printable character | | | For VTYPE = “A”, VALUE is a printable character |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | For VTYPE = “i”, VALUE is a signed 32-bit integer. | | | For VTYPE = “i”, VALUE is a signed 32-bit integer. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | For VTYPE = “f”, VALUE is a single-precision float. | | | For VTYPE = “f”, VALUE is a single-precision float. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | For VTYPE = “Z”, VALUE is a printable string. | | | For VTYPE = “Z”, VALUE is a printable string. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |- | | |- |
| | For VTYPE = “H”, VALUE is a Hex string. | | | For VTYPE = “H”, VALUE is a Hex string. |
| + | |style="background-color:red;"| |
| + | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
| |style="background-color:red;"| | | |style="background-color:red;"| |
Line 128: |
Line 191: |
| NOTE: There are other TAG Validations that can be done. They will come later. | | NOTE: There are other TAG Validations that can be done. They will come later. |
| | | |
− | NOTE: There are other BAM Validations that can be done. They will come later. | + | NOTE: There may be other BAM Validations that can be done. They will come later. |
| | | |
| ===SAM Questions=== | | ===SAM Questions=== |