Exemple #1
0
def _string_to_networkx(header, sequence, **options):
    seq_info, seq_struct = rnafold_wrapper(sequence, **options)
    graph = sequence_dotbracket_to_graph(seq_info=seq_info,
                                         seq_struct=seq_struct)
    graph.graph['info'] = 'RNAfold'
    graph.graph['sequence'] = sequence
    graph.graph['structure'] = seq_struct
    graph.graph['id'] = header
    return graph
Exemple #2
0
def ses_to_graph(ses):
    structure, energy, sequence = ses
    base_graph = eden_rna.sequence_dotbracket_to_graph(seq_info=sequence, seq_struct=structure)
    #base_graph = _edge_to_vertex_transform(base_graph)  # this keeps the dict
    #base_graph = rna.expanded_rna_graph_to_digraph(base_graph) # i hope this keeps the dict
    base_graph.graph['energy'] = energy
    base_graph.graph['sequence'] = sequence
    base_graph.graph['structure'] = structure
    return base_graph
Exemple #3
0
 def _seq_to_eden(self, header, sequence, struct, energy):
     graph = sequence_dotbracket_to_graph(seq_info=sequence, seq_struct=struct)
     if graph.number_of_nodes() < 2:
         graph = seq_to_networkx(header, sequence)
     graph.graph['id'] = header
     graph.graph['info'] = 'muscle+RNAalifold energy=%.3f' % (energy)
     graph.graph['energy'] = energy
     graph.graph['sequence'] = sequence
     return graph
Exemple #4
0
def seq_to_graph(header, sequence):
    """Fold a sequence in a path graph."""
    seq_struct = '.' * len(sequence)
    graph = sequence_dotbracket_to_graph(seq_info=sequence,
                                         seq_struct=seq_struct)
    graph.graph['info'] = 'sequence'
    graph.graph['sequence'] = sequence
    graph.graph['structure'] = seq_struct
    graph.graph['id'] = header
    return graph
Exemple #5
0
def calc(names,data, item,r,d,model=RandomForestRegressor()):
    model = make_model(data,names,False,r,d, model)
    graph = eden_rna.sequence_dotbracket_to_graph(data[item][1],data[item][2])
    res = np.array(predict(model,graph))
    other = np.array(data[item][0])

    res,other = mask(res,other)
    value =  corr(res,other)[0]
    #print '\t',len(data[item][1]),"\t", value
    return value
Exemple #6
0
def _string_to_networkx(header, sequence, **options):
    # defaults
    shape_type = options.get('shape_type', 5)
    energy_range = options.get('energy_range', 10)
    max_num = options.get('max_num', 3)
    split_components = options.get('split_components', False)
    seq_info, seq_struct_list, struct_list = rnashapes_wrapper(
        sequence,
        shape_type=shape_type,
        energy_range=energy_range,
        max_num=max_num,
        rnashapes_version=options.get('rnashapes_version', 2))
    if split_components:
        for seq_struct, struct in zip(seq_struct_list, struct_list):
            graph = sequence_dotbracket_to_graph(seq_info=seq_info,
                                                 seq_struct=seq_struct)
            graph.graph['info'] = 'RNAshapes shape_type=%s \
            energy_range=%s max_num=%s' % (shape_type, energy_range, max_num)
            graph.graph['id'] = header + '_' + struct
            if graph.number_of_nodes() < 2:
                graph = sequence_fold(header, sequence)
                graph.graph['id'] = header
            graph.graph['sequence'] = sequence
            graph.graph['structure'] = seq_struct
            yield graph
    else:
        graph_global = nx.Graph()
        graph_global.graph['id'] = header
        graph_global.graph['info'] = \
            'RNAshapes shape_type=%s energy_range=%s max_num=%s' % (
                shape_type,
                energy_range,
                max_num)
        graph_global.graph['sequence'] = sequence
        for seq_struct in seq_struct_list:
            graph = sequence_dotbracket_to_graph(seq_info=seq_info,
                                                 seq_struct=seq_struct)
            graph_global = nx.disjoint_union(graph_global, graph)
        if graph_global.number_of_nodes() < 2:
            graph_global = sequence_fold(header, sequence)
        yield graph_global
Exemple #7
0
def predict(model, sequence,seq_to_db_function= rnasubopt):
    db_list = seq_to_db_function(sequence)

    if len(db_list)==1:
        graph = eden_rna.sequence_dotbracket_to_graph(sequence, db_list[0])
        return model.predict(eg.vertex_vectorize([graph])[0])

    # get probability for each structure
    struct_proba = probabilities_of_structures(sequence, db_list)
    structures, weights =  zip(*struct_proba)

    # edenize and predict reacticuty
    graphs = map(lambda x: getgraph(sequence,x), structures)
    vecs = list(eg.vertex_vectorize(graphs,r=3,d=3))
    predictions_all_structures = [ model.predict(blob) for blob in vecs ]

    # mix reactivity with probabilities
    return weighted_average(weights, predictions_all_structures)
    def transform(self, sequences):
        """

        Parameters
        ----------
        sequences : iterable over rna sequences

        Returns
        -------
        list of RnaGraphWrappers
        """
        result = []
        for sequence in sequences:
            # get structure
            structure, energy, sequence = self.NNmodel.transform_single(sequence)
            # FIXING STRUCTURE
            structure, sequence = fix_structure(structure, sequence)
            if structure == None:
                result.append(None)
                continue
            # built base_graph
            base_graph = eden_rna.sequence_dotbracket_to_graph(seq_info=sequence, seq_struct=structure)

            base_graph = _edge_to_vertex_transform(base_graph)
            base_graph = expanded_rna_graph_to_digraph(base_graph)
            base_graph.graph['energy'] = energy
            base_graph.graph['sequence'] = sequence
            base_graph.graph['structure'] = structure
            if self.fold_only:
                result.append(base_graph)
            else:
                result.append(self.abstract_graph(base_graph))

            # result.append(
            #       (sequence, structure, base_graph, self.abstract_graph(base_graph))
            #)

        return result
Exemple #9
0
def getgraph(sequence,structure):
    """returns networkx graph"""
    return eden_rna.sequence_dotbracket_to_graph(sequence,structure)