Пример #1
0
def process_alts( ref,alts,contig,pos,contig2position,gene2position,contig2fasta,l ):
    """
    """
    outline = ""
    for alt in alts:
        genes = filter( lambda x: x[0]<pos+1<x[1], contig2position[contig] )
        if genes:
            for start,stop,feature,geneid in genes:
                # check effect of mutations
                if len(ref)!=len(alt): # indel
                    if feature == 'gene':
                        contig,CDSs,strand,function = gene2position[geneid] # get exons
                        cds = filter( lambda x: x[0]<pos+1<x[1],CDSs ) # check if overlaping with indel
                        if cds and len(ref)%3 != len(alt)%3:
                            outline += "%s\texonic\t%s\tframe-shift\t\t\t\t\t\t%s\n" % ( l,geneid,function )
                        else:
                            outline += "%s\tintronic\t%s\t\t\t\t\t\t%s\n" % ( l,geneid,function )
                    else:
                        outline += "%s\tintergenic\n" % l
                elif feature == 'gene':
                    contig,CDSs,strand,function = gene2position[geneid]
                    outline += "%s\t%s\t%s\n" % ( l,coding_snp_info( contig2fasta[contig],geneid,CDSs,strand,ref,alt,pos ),function )
                else:
                    outline += "%s\t%s\n" % ( l,feature )
        else:
            outline += "%s\tintergenic\n" % ( l, )
    
    return outline
Пример #2
0
def process_alt(
    ref, alt, contig, pos, contig2position, gene2position, contig2fasta, trans2ann, trans2pfam, trans2tab, l
):
    """ """
    outline = ""
    genes = []
    if contig in contig2position:
        genes = filter(lambda x: x[0] < pos + 1 < x[1], contig2position[contig])
    if genes:
        for start, stop, feature, geneid in genes:
            if feature == "gene":
                fastaAnn = pfamAnn = tabAnn = ""
                if geneid in trans2ann:
                    fastaAnn = trans2ann[geneid]
                if geneid in trans2pfam:
                    pfamAnn = trans2pfam[geneid]
                if geneid in trans2tab:
                    tabAnn = trans2tab[geneid]
                contig, CDSs, strand, function, frame = gene2position[geneid]
                outline += "%s\t%s\t%s\t%s\t%s\t%s\n" % (
                    l,
                    coding_snp_info(contig2fasta[contig], geneid, CDSs, strand, ref, alt, pos),
                    function,
                    fastaAnn,
                    pfamAnn,
                    "; ".join(tabAnn),
                )
            else:
                outline += "%s\t%s\n" % (l, feature)
    else:
        outline += "%s\tintergenic\n" % (l,)

    return outline
Пример #3
0
def process_alt(ref, alt, contig, pos, contig2position, gene2position, contig2fasta, \
                trans2ann, trans2pfam, trans2tab, l):
    """ """
    outline = ""
    genes = []
    if contig in contig2position:
        genes = filter(lambda x: x[0]<pos+1<x[1], contig2position[contig])
    if genes:
        for start,stop,feature,geneid in genes:
            if feature == 'gene':
                fastaAnn = pfamAnn = tabAnn = ""
                if geneid in trans2ann:
                    fastaAnn = trans2ann[geneid]
                if geneid in trans2pfam:
                    pfamAnn  = trans2pfam[geneid]
                if geneid in trans2tab:
                    tabAnn   = trans2tab[geneid]
                contig,CDSs,strand,function,frame = gene2position[geneid]
                outline += "%s\t%s\t%s\t%s\t%s\t%s\n" % (l, coding_snp_info(contig2fasta[contig], geneid, CDSs, strand, ref, alt, pos), function, fastaAnn, pfamAnn, "; ".join(tabAnn))
            else:
                outline += "%s\t%s\n" % (l, feature)
    else:
        outline += "%s\tintergenic\n" % (l,)
    
    return outline
Пример #4
0
def process_alt( ref,alt,contig,pos,contig2position,gene2position,contig2fasta,l ):
    """
    """
    outline = ""

    genes = filter( lambda x: x[0]<pos+1<x[1], contig2position[contig] )
    if genes:
        for start,stop,feature,geneid in genes:
            # check effect of mutations
            if len(ref)!=len(alt): # indel
                if feature == 'gene':
                    contig,CDSs,strand,function = gene2position[geneid] # get exons
                    cds = filter( lambda x: x[0]<pos+1<x[1],CDSs ) # check if overlaping with indel
                    if cds and len(ref)%3 != len(alt)%3:
                        outline += "%s\texonic\t%s\tframe-shift\t\t\t\t\t\t%s\n" % ( l,geneid,function )
                    else:
                        outline += "%s\tintronic\t%s\t\t\t\t\t\t%s\n" % ( l,geneid,function )
                else:
                    outline += "%s\tintergenic\n" % l
            elif feature == 'gene':
                contig,CDSs,strand,function = gene2position[geneid]
                outline += "%s\t%s\t%s\n" % ( l,coding_snp_info( contig2fasta[contig],geneid,CDSs,strand,alt,pos ),function )
            else:
                outline += "%s\t%s\n" % ( l,feature )
    else:
        outline += "%s\tintergenic\n" % ( l, )
    
    return outline