graph.h 1.93 KB
#ifndef GRAPH_H
#define GRAPH_H

#include "rna.h"
#include "structure.h"
#include "solinteraction.h"
#include "utils.h"
#include "Motifs/helix.h"

float compatible(Structure str1, Structure str2);

float compatible(Structure str, SolInteraction inter, float threshold, int l);

float compatible(SolInteraction inter1, SolInteraction inter2, float threshold);

bool areLinked (Helix h1, Helix h2, const std::vector < Rna > &rnaList);

void modelGraph(const std::vector < Rna > &rnaList_,
                const std::vector < Structure > &strs_, const std::vector < SolInteraction > &inters_,
                const std::vector < std::vector < Helix > > &helices_, std::vector < unsigned int > &vertices0,
                std::vector < float > &verticesWCt, std::vector < float > &verticesWP,
                std::vector < float > &verticesWE, std::vector < std::vector < unsigned int > > &Nv0,
                std::vector < std::vector < unsigned int > > &NvB0, std::vector < std::vector < unsigned int > > &G2vertices0,
                std::vector < std::vector < std::vector < unsigned int > > > &G2Nv0, std::vector < std::vector < unsigned int > > &G2G1correspondance0,
                //std::vector < unsigned int > &ctVertices, std::vector < unsigned int > &rmVertices,
                float threshold, std::string SEQfile, uint &nbEdges, int &lastStr);

void addHardCt(std::vector < unsigned int > &vertices,
               std::vector < std::vector < unsigned int > > &Nv,
               std::vector < std::vector < unsigned int > > &NvB,
               const std::vector < std::vector < unsigned int > > &NvB0,
               std::vector < std::vector < unsigned int > > &G2vertices,
               std::vector < std::vector < std::vector < unsigned int > > > &G2Nv,
               std::vector < std::vector < unsigned int > > &G2G1correspondance,
               std::vector < unsigned int > &ctVertices, std::vector < unsigned int > &rmVertices);

#endif // GRAPH_H