Exemple #1
0
def ExonCollectionGraph2AcceptorSiteCollectionGraph(gra):
    """
    Convert ECG -> AcceptorSiteCollectionGraph

    @attention: only in use when ECG is NOT a FirstExon ECG

    @rtype:  AcceptorSiteCollectionGraph
    @return: AcceptorSiteCollectionGraph instance to be placed in the CBG
    """
    newgra = AcceptorSiteCollectionGraph()
    newgra.ALIGNED_SITE_AA_OFFSET = 10
    newgra.MIN_PSSM_SCORE = -0.0
    for node in gra.get_nodes():
        accep = gra._node_object[node].acceptor
        if accep.__class__.__name__ == 'CodingBlockStart':
            phase = gra.acceptor_phase()
            # return a ProjectedSpliceSite
            projAccep = CodingBlockStart2ProjectedSpliceAcceptor(accep,phase=phase)
            newnode = ( node[0], node[1], projAccep.pos )
            newgra.add_node_and_object(newnode,projAccep)
            newgra._node_pssm[newnode] = accep.pssm_score
        else:
            newnode = ( node[0], node[1], accep.pos )
            newgra.add_node_and_object(newnode,accep)
            newgra._node_pssm[newnode] = accep.pssm_score
    for nodeA,nodeB in newgra.pairwisecrosscombinations_node():
        entropyQ = 1.0
        entropyS = 1.0
        newgra.add_edge(nodeA,nodeB,wt=1.0)
        newgra._edge_binary_entropies[(nodeA,nodeB)] = (entropyQ,entropyS)
        newgra._edge_binary_entropies[(nodeB,nodeA)] = (entropyS,entropyQ)
    return newgra