INNER CODE UNIT · Python

check_ref_exons

hillerlab/TOGA · CESAR_wrapper.py:467

def check_ref_exons(exon_seqs, mask_stops):
    """Check if the reference sequence is correct.

    Should start with ATG and end with a stop.
    Mask_stops controls handling of inframe stops.
    """
    sec_codons = set()  # in case there are TGA codons in the ref seq -> collect them
    gene_seq = "".join([exon_seqs[i] for i in range(len(exon_seqs.keys()))])
    codons = parts(gene_seq, n=3)  # split a seq of letters in chunks of len == 3
    if codons[0] != "ATG":
        eprint("Input is corrupted! Reference sequence should start with ATG!")
    elif codons[-1] not in Constants.STOP_CODONS:
        eprint("Input is corrupted! Reference sequence should end with a stop codon!")
    stop_codons = [(n, c) for n, c in enumerate(codons[:-1]) if c in Constants.STOP_CODONS]
    if len(stop_codons) == 0:  # no stop codons -> nothing else to do
        return exon_seqs, set()
    # there are stop codons in reference sequence:
    eprint("Warning! There are inframe stop codons!")

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…