#include "VUtils.hh" char* VUtils::getCharFileName( const string& name ){ char* filename; filename = mallocOrExit( name.length()+1, char ); strcpy( filename, name.c_str() ); return filename; } double VUtils::getNodeDensity( Node* node ){ Coordinate nodeLength = getNodeLength(node); Coordinate nodeCoverage = (getVirtualCoverage(node, 0) + getVirtualCoverage(node, 1)); return nodeCoverage /(double) nodeLength; } int VUtils::getNumOutArcs( Node* node ){ return simpleArcCount(node); } int VUtils::getNumInArcs( Node* node ){ return simpleArcCount( getTwinNode(node) ); } vector VUtils::getOutNodes( Node* node ){ vector outNodes; Arc* tmpArc = getArc( node ); while( tmpArc != NULL ){ Node* tmpNode = getDestination(tmpArc); outNodes.push_back( tmpNode ); tmpArc = getNextArc( tmpArc ); } return outNodes; } vector VUtils::getInNodes( Node* node ){ vector inNodes; Arc* tmpArc = getArc( getTwinNode(node) ); while( tmpArc != NULL ){ Node* tmpNode = getDestination(tmpArc); inNodes.push_back( getTwinNode(tmpNode) ); tmpArc = getNextArc( tmpArc ); } return inNodes; } string VUtils::getTitle( Node* node ){ string delim = VUTILS_FASTA_TITLE_DELIMITER; return Utils::ltoa( getNodeID(node) ) + delim + Utils::dtoa( getNodeDensity(node) ) + delim + Utils::ltoa( getNodeLength(node) ); } string VUtils::getSequence( Node* node ){ string seq = ""; for( Coordinate i=0 ; i& nodes ){ double totalDensity = 0.0; for( size_t i=0 ; i& nodes ){ double minDensity = getNodeDensity( nodes.at(0) ); for( size_t i=1 ; i& nodes ){ double maxDensity = getNodeDensity( nodes.at(0) ); for( size_t i=1 ; i maxDensity ){ maxDensity = curDensity; } } return maxDensity; } Node* VUtils::getMinDensityNode( const vector& nodes ){ double minDensity = getNodeDensity( nodes.at(0) ); Node* minNode = nodes.at(0); for( size_t i=1 ; i& nodes ){ double maxDensity = getNodeDensity( nodes.at(0) ); Node* maxNode = nodes.at(0); for( size_t i=1 ; i maxDensity ){ maxDensity = curDensity; maxNode = nodes.at(i); } } return maxNode; }