Code Documentation 3.4
Social Network Visualizer
Loading...
Searching...
No Matches
graph.h
Go to the documentation of this file.
1
16#ifndef GRAPH_H
17#define GRAPH_H
18
19#include <QObject>
20#include <QList>
21#include <QQueue>
22#include <QHash>
23#include <QSet>
24#include <QMultiHash>
25#include <QMultiMap>
26#include <QTextStream>
27#include <QThread>
28
29// stack is a wrapper around <deque> in C++
30// see: www.cplusplus.com/reference/stl/stack
31#include <stack>
32
33#include "global.h"
34#include "graphvertex.h"
35#include "matrix.h"
36#include "parser.h"
37#include "webcrawler.h"
38
39class QDateTime;
40class QPointF;
41class QNetworkReply;
42class QUrl;
43class QAbstractSeries;
44class QAbstractAxis;
45
46using namespace std;
47
49class Chart;
50
51typedef QList<GraphVertex *> VList;
52typedef QHash<QString, int> H_StrToInt;
53typedef QHash<int, int> H_Int;
54typedef QHash<qreal, int> H_f_i;
55typedef QPair<qreal, bool> pair_f_b;
56typedef QPair<int, pair_f_b> pair_i_fb;
57typedef QMultiHash<int, pair_i_fb> H_edges;
58typedef QHash<QString, bool> H_StrToBool;
59typedef QList<int> L_int;
60typedef QList<int> V_int;
61typedef QList<QString> V_str;
62
71class Graph : public QObject
72{
73 Q_OBJECT
76
77 friend class DistanceEngine;
78
79public slots:
80 // ============================================================================
81 // LEGACY/INTERNAL (UI / IO WIRING)
82 // ----------------------------------------------------------------------------
83 // NOTE (WS2/F0):
84 // Slots are part of Graph's coordinator role (signals/threads/UI wiring).
85 // Engines/services should not depend on these directly.
86 // ============================================================================
87
88 int relationCurrent();
89
90 QString relationCurrentName() const;
91
92 void relationCurrentRename(const QString &newName);
93 void relationCurrentRename(const QString &newName, const bool &signalMW);
94
96 void vertexCreate(const int &number,
97 const int &size,
98 const QString &color,
99 const QString &numColor,
100 const int &numSize,
101 const QString &label,
102 const QString &labelColor,
103 const int &labelSize,
104 const QPointF &p,
105 const QString &shape,
106 const QString &iconPath = QString(),
107 const bool &signalMW = false,
108 const QHash<QString, QString> &customAttributes = QHash<QString, QString>());
109
110 void graphFileLoaded(const int &fileType,
111 const QString &fName = QString(),
112 const QString &netName = QString(),
113 const int &totalNodes = 0,
114 const int &totalLinks = 0,
115 const int &edgeDirType = 0,
116 const qint64 &elapsedTime = 0,
117 const QString &message = QString());
118
119 void vertexRemoveDummyNode(int);
120
121 void graphLoadedTerminateParserThreads(QString reason);
122
123 void setSelectionChanged(const QList<int> selectedVertices,
124 const QList<SelectedEdge> selectedEdges);
125
126 void graphClickedEmptySpace(const QPointF &p);
127
129 bool edgeCreate(const int &v1, const int &v2, const qreal &weight,
130 const QString &color,
131 const int &type = 0,
132 const bool &drawArrows = true, const bool &bezier = false,
133 const QString &label = QString(),
134 const bool &signalMW = true);
135
136 void edgeCreateWebCrawler(const int &source, const int &target);
137
138 // helper vertexCreate functions
139 void vertexCreateAtPos(const QPointF &p);
140
141 void vertexCreateAtPosRandom(const bool &signalMW = false);
142
143 void vertexCreateAtPosRandomWithLabel(const int &i,
144 const QString &label,
145 const bool &signalMW = false);
146
149 void relationSet(int relNum = RAND_MAX, const bool &updateUI = true);
150
151 void relationNext();
152
153 void relationPrev();
154
155 void canvasSizeSet(const int &width, const int &height);
156
157 double canvasMaxRadius() const;
158
159 qreal canvasMinDimension() const;
160
161 double canvasVisibleX(const double &x) const;
162
163 double canvasVisibleY(const double &y) const;
164
165 double canvasRandomX() const;
166
167 double canvasRandomY() const;
168
169 void vertexIsolatedAllToggle(const bool &toggle);
170
171 void vertexClickedSet(const int &v, const QPointF &p);
172
173 void edgeClickedSet(const int &v1, const int &v2, const bool &openMenu = false);
174
175 void vertexFilterByCentrality(const float threshold,
176 const bool overThreshold,
177 const IndexType centralityIndex);
178
179 void edgeFilterByWeight(const qreal, const bool);
180
181 void edgeFilterByRelation(int relation, bool status);
182
183 void edgeFilterUnilateral(const bool &toggle);
184
185 void startWebCrawler(
186 const QUrl &startUrl,
187 const QStringList &urlPatternsIncluded,
188 const QStringList &urlPatternsExcluded,
189 const QStringList &linkClasses,
190 const int &maxNodes,
191 const int &maxLinksPerPage,
192 const bool &intLinks,
193 const bool &childLinks,
194 const bool &parentLinks,
195 const bool &selfLinks,
196 const bool &extLinksIncluded,
197 const bool &extLinksCrawl,
198 const bool &socialLinks,
199 const bool &delayedRequests);
200
202 void webSpider();
203
205
206 QString htmlEscaped(QString str) const;
207
208signals:
209
210 void signalWebCrawlParse(QNetworkReply *reply);
211
212 // ============================================================================
213 // LEGACY/INTERNAL (UI SIGNAL SURFACE)
214 // ----------------------------------------------------------------------------
215 // NOTE (WS2/F0): Signals are a UI orchestration mechanism. Engines/services
216 // must not emit/call UI-facing behavior directly.
217 // ============================================================================
218
221 void signalNetworkManagerRequest(const QUrl &currentUrl, const NetworkRequestType &type);
222
223 void signalProgressBoxCreate(const int max = 0, const QString msg = "Please wait");
224
225 void signalProgressBoxKill(const int max = 0);
226
227 void signalProgressBoxUpdate(const int &count = 0);
228
229 void signalGraphSavedStatus(const int &status);
230
231 void signalGraphModified(const bool &undirected,
232 const int &vertices,
233 const int &edges,
234 const qreal &density,
235 const bool &notSaved = true);
236
237 void signalGraphLoaded(const int &fileType,
238 const QString &fileName = QString(),
239 const QString &netName = QString(),
240 const int &totalNodes = 0,
241 const int &totalLinks = 0,
242 const qreal &density = 0,
243 const qint64 &elapsedTime = 0,
244 const QString &message = QString());
245
246 void statusMessage(const QString &message);
247
249
250 void signalNodeClickedInfo(const int &number = 0,
251 const QPointF &p = QPointF(),
252 const QString &label = QString(),
253 const int &inDegree = 0,
254 const int &outDegree = 0);
255
256 void signalEdgeClicked(const MyEdge &edge = MyEdge(), const bool &openMenu = false);
257
258 void signalRelationAddToMW(const QString &newRelation);
259
261
262 void signalRelationRenamedToMW(const QString &newRelName);
263
265
266 void signalRelationChangedToMW(const int &relIndex = RAND_MAX);
267
268 void signalSelectionChanged(const int &selectedVertices,
269 const int &selectedEdges);
270
271 void signalPromininenceDistributionChartUpdate(QAbstractSeries *series,
272 QAbstractAxis *axisX = Q_NULLPTR,
273 const qreal &min = 0,
274 const qreal &max = 0,
275 QAbstractAxis *axisY = Q_NULLPTR,
276 const qreal &minF = 0,
277 const qreal &maxF = 0);
278
280 void signalDrawNode(const QPointF &p,
281 const int &num,
282 const int &size,
283 const QString &nodeShape,
284 const QString &nodeIconPath,
285 const QString &nodeColor,
286 const QString &numberColor, const int &numSize,
287 const int &numDistance,
288 const QString &label,
289 const QString &labelColor, const int &labelSize,
290 const int &labelDistance);
291
292 // signal to GW to erase a node
294
295 // signal GW to draw an edge
296 void signalDrawEdge(const int &v1,
297 const int &v2,
298 const qreal &weight,
299 const QString &label = "",
300 const QString &color = "black",
301 const int &type = 0,
302 const bool &drawArrows = true,
303 const bool &bezier = false,
304 const bool &weightNumbers = false);
305
306 // signal to GW
307 void signalRemoveEdge(const int &v1, const int &v2, const bool &removeReverse);
308
309 void signalSetEdgeVisibility(const int &relation,
310 const int &source,
311 const int &target,
312 const bool &toggle,
313 const bool &preserveReverseEdge = false,
314 const int &edgeWeight = 1,
315 const int &reverseEdgeWeight = 1); // The last two are used only if we need to draw the edge
316
317 void setVertexVisibility(const int &number, const bool &toggle);
318
319 void setNodePos(const int &, const qreal &, const qreal &);
320
321 void signalNodesFound(const QList<int> foundList);
322
323 void setNodeSize(const int &v, const int &size);
324
325 void setNodeShape(const int &v, const QString &shape, const QString &iconPath = QString());
326
327 void setNodeColor(const int &v, const QString &color);
328
329 void setNodeLabel(const int &v, const QString &label);
330
331 void setNodeNumberColor(const int &v, const QString &color);
332
333 void setNodeNumberSize(const int &v, const int &size);
334
335 void setNodeNumberDistance(const int &v, const int &distance);
336
337 void setNodeLabelSize(const int &v, const int &size);
338
339 void setNodeLabelColor(const int &v, const QString &color);
340
341 void setNodeLabelDistance(const int &v, const int &distance);
342
343 void setEdgeWeight(const int &v1, const int &v2, const qreal &weight);
344 void signalEdgeType(const int &v1,
345 const int &v2,
346 const int &type);
347 void setEdgeColor(const int &v1,
348 const int &v2,
349 const QString &color);
350 void setEdgeLabel(const int &v1,
351 const int &v2,
352 const QString &label);
353 void addGuideCircle(const double &, const double &, const double &);
354 void addGuideHLine(const double &y0);
355
356public:
357 // ============================================================================
358 // GRAPH FACADE CONTRACT (WS2 / F0)
359 // ----------------------------------------------------------------------------
360 // This section defines the *supported* API surface that UI and CLI code may
361 // call going forward.
362 //
363 // Rules:
364 // - New UI features MUST use only the "FACADE API (SUPPORTED)" surface.
365 // - Engines/services MUST NOT call UI-oriented slots/signals.
366 // - Anything explicitly marked LEGACY/INTERNAL is not allowed for new code,
367 // even if it remains public for historical reasons.
368 //
369 // ============================================================================
370
384
386 {
387 Single_Linkage = 0, //"single-link" or minimum
388 Complete_Linkage = 1, // "complete-link or maximum
389 Average_Linkage = 2, // mean or "average-linkage" or UPGMA
390
391 };
392
393 /* INIT AND CLEAR*/
394 // --------------------------------------------------------------------------
395 // FACADE API (SUPPORTED): Lifecycle
396 // --------------------------------------------------------------------------
397 Graph(const int &reserveVerticesSize = 5000, const int &reserveEdgesPerVertexSize = 500);
398 ~Graph();
399
400 QThread *getThread() const;
401 void moveToThreadFacade(QThread *thread);
402
403 void clear(const QString &reason = "");
404
405 /*FILES (READ AND WRITE)*/
406 // --------------------------------------------------------------------------
407 // FACADE API (SUPPORTED): File identity / load-save
408 // --------------------------------------------------------------------------
409
410 QString getFileName() const;
411
412 void setFileName(const QString &fileName);
413
414 QString getName() const;
415
416 void setName(const QString &graphName);
417
418 bool isSaved() const;
419
420 bool isLoaded() const;
421
422 int getFileFormat() const;
423
424 void setFileFormat(const int &fileFormat);
425
426 bool isFileFormatExportSupported(const int &fileFormat) const;
427
428 void setModStatus(const int &graphNewStatus, const bool &signalMW = true);
429
430 bool isModified() const;
431
432 void loadFile(const QString fileName,
433 const QString codecName,
434 const int format,
435 const QString delimiter = QString(),
436 const int sm_two_mode = 1,
437 const bool sm_has_labels = false);
438
439 void saveToFile(const QString &fileName,
440 const int &fileType,
441 const bool &saveEdgeWeights = true,
442 const bool &saveZeroWeightEdges = false);
443
444 bool saveToPajekFormat(const QString &fileName,
445 QString networkName = "",
446 int maxWidth = 0, int maxHeight = 0);
447
448 bool saveToAdjacencyFormat(const QString &fileName,
449 const bool &saveEdgeWeights = true);
450
451 bool saveToGraphMLFormat(const QString &fileName,
452 const bool &saveZeroWeightEdges = false,
453 QString networkName = "",
454 int maxWidth = 0, int maxHeight = 0);
455
456 bool saveToDotFormat(QString fileName);
457
458 QString graphMatrixTypeToString(const int &matrixType) const;
459
460 int graphMatrixStrToType(const QString &matrix) const;
461
462 QString graphMetricTypeToString(const int &metricType) const;
463
464 int graphMetricStrToType(const QString &metricStr) const;
465
466 QString graphClusteringMethodTypeToString(const int &methodType) const;
467
468 int graphClusteringMethodStrToType(const QString &method) const;
469
470 /* RELATIONS */
471 // --------------------------------------------------------------------------
472 // FACADE API (SUPPORTED): Relations
473 // --------------------------------------------------------------------------
474
475 int relations();
476
477 void relationsClear();
478
479 void relationAdd(const QString &relName, const bool &changeRelation = false);
480
481 /* VERTICES */
482 // --------------------------------------------------------------------------
483 // FACADE API (SUPPORTED): Vertex queries + edits
484 // --------------------------------------------------------------------------
485
486 int vertexIndexByNumber(int v) const;
487 // LEGACY/INTERNAL (ENGINE SUPPORT):
488 // Access a vertex by internal storage index (vpos result).
489 // No bounds checks: preserves existing behavior of direct m_graph[idx] usage.
490 GraphVertex *vertexAtIndex(int idx);
491 const GraphVertex *vertexAtIndex(int idx) const;
492
493 VList::const_iterator verticesBegin() const;
494 VList::const_iterator verticesEnd() const;
495
496 int vertexNumberMax();
497
498 int vertexNumberMin();
499
500 int vertexDegreeOut(int);
501
502 int vertexDegreeIn(int);
503
504 QList<int> vertexNeighborhoodList(const int &v1);
505 QSet<int> vertexNeighborhoodSet(const int &v1);
506
507 bool vertexIsolated(const int &v1) const;
508
509 int vertexExists(const int &v1);
510
511 int vertexExists(const QString &label);
512
513 bool vertexFindByNumber(const QStringList &numList);
514
515 bool vertexFindByLabel(const QStringList &labelList);
516
517 bool vertexFindByIndexScore(const int &index,
518 const QStringList &thresholds,
519 const bool &considerWeights,
520 const bool &inverseWeights = false,
521 const bool &dropIsolates = false);
522
523 void vertexRemove(const int &v1);
524
525 void vertexSizeInit(const int);
526
527 void vertexSizeSet(const int &v, const int &newsize);
528
529 int vertexSize(const int &v) const;
530
531 void vertexShapeSetDefault(const QString, const QString &iconPath = QString());
532
533 void vertexShapeSet(const int &v, const QString &shape, const QString &iconPath = QString());
534
535 QString vertexShape(const int &v);
536
537 QString vertexShapeIconPath(const int &v);
538
539 bool graphHasVertexCustomIcons() const;
540
541 QStringList graphHasVertexCustomAttributes() const;
542
543 void vertexColorInit(const QString &color);
544
545 void vertexColorSet(const int &v, const QString &color);
546
547 QColor vertexColor(const int &v) const;
548
549 void vertexNumberColorInit(const QString &color);
550
551 void vertexNumberColorSet(const int &v = 0, const QString &color = "#000000");
552
553 void vertexNumberSizeInit(const int &size);
554
555 void vertexNumberSizeSet(const int &v, const int &newsize);
556
557 void vertexNumberDistanceInit(const int &distance);
558
559 void vertexNumberDistanceSet(const int &v, const int &newDistance);
560
561 void vertexLabelSet(const int &v, const QString &label);
562
563 QString vertexLabel(const int &v) const;
564
565 void vertexLabelsVisibilitySet(bool toggle);
566
567 void vertexLabelSizeInit(int newSize);
568
569 void vertexLabelSizeSet(const int &v, const int &labelSize);
570
571 void vertexLabelColorInit(QString color);
572
573 void vertexLabelColorSet(const int &v1, const QString &color);
574
575 void vertexLabelDistanceInit(const int &distance);
576
577 void vertexLabelDistanceSet(const int &v, const int &newDistance);
578
579 void vertexLabelDistanceAllSet(const int &newDistance);
580
581 void vertexCustomAttributesSet(const int &v1, const QHash<QString, QString> &customAttributes);
582
583 QHash<QString, QString> vertexCustomAttributes(const int &v1) const;
584
585 void vertexPosSet(const int &v, const int &x, const int &y);
586
587 QPointF vertexPos(const int &v1) const;
588
589 int vertexClicked() const;
590
591 int vertices(const bool &dropIsolates = false, const bool &countAll = false, const bool &recount = false);
592
593 int vertexEdgesOutbound(int i);
594
595 int vertexEdgesInbound(int i);
596
598
600
602
603 QList<int> verticesListIsolated();
604
605 QList<int> verticesList();
606
607 QSet<int> verticesSet();
608
609 void verticesCreateSubgraph(QList<int> vList,
610 const int &type = SUBGRAPH_CLIQUE,
611 const int &center = 0);
612
613 // Regression/testing helper: access a vertex object by its number.
614 // Returns nullptr if not found.
615 GraphVertex *vertexPtr(const int v);
616
617 /* EDGES */
618 // --------------------------------------------------------------------------
619 // FACADE API (SUPPORTED): Edge queries + edits
620 // --------------------------------------------------------------------------
621
622 int edgesEnabled();
623
625
626 qreal edgeExists(const int &v1,
627 const int &v2,
628 const bool &checkReciprocal = false);
629
630 qreal edgeExistsVirtual(const int &v1, const int &v2);
631
632 void edgeOutboundStatusSet(const int &source,
633 const int &target,
634 const bool &toggle = false);
635
636 void edgeInboundStatusSet(const int &target,
637 const int &source,
638 const bool &toggle = false);
639
640 void edgeRemove(const int &v1,
641 const int &v2,
642 const bool &removeReverse = false);
643
644 void edgeRemoveSelected(SelectedEdge &selectedEdge,
645 const bool &removeReverse);
646
648
649 bool edgeSymmetric(const int &v1, const int &v2);
650
651 void edgeTypeSet(const int &v1,
652 const int &v2,
653 const qreal &w,
654 const int &dirType = EdgeType::Directed);
655
656 void edgeWeightSet(const int &v1,
657 const int &v2,
658 const qreal &w,
659 const bool &undirected = false);
660
661 qreal edgeWeight(const int &v1, const int &v2) const;
662
663 void edgeWeightNumbersVisibilitySet(const bool &toggle);
664
665 void edgeLabelSet(const int &v1, const int &v2, const QString &label);
666
667 QString edgeLabel(const int &v1, const int &v2) const;
668
669 void edgeLabelsVisibilitySet(const bool &toggle);
670
671 void edgeColorInit(const QString &);
672
673 void edgeColorSet(const int &v1, const int &v2, const QString &color);
674
675 QString edgeColor(const int &v1, const int &v2);
676
677 bool edgeColorAllSet(const QString &color, const int &threshold = RAND_MAX);
678
679 /* GRAPH methods */
680 // --------------------------------------------------------------------------
681 // FACADE API (SUPPORTED): Graph facts + settings used by UI/CLI
682 // --------------------------------------------------------------------------
683
684 bool isEmpty() const;
685
686 QList<int> getSelectedVertices() const;
687
688 int getSelectedVerticesCount() const;
689
690 int getSelectedVerticesMin() const;
691
692 int getSelectedVerticesMax() const;
693
694 QList<SelectedEdge> getSelectedEdges() const;
695
696 int getSelectedEdgesCount() const;
697
698 int getGeodesicsCount();
699
700 qreal graphDensity();
701
702 bool isWeighted();
703
704 void setWeighted(const bool &toggle = true);
705
706 qreal graphReciprocity();
707
708 bool isSymmetric();
709
710 void setSymmetric();
711
712 void addRelationSymmetricStrongTies(const bool &allRelations = false);
713
715
716 void graphDichotomization(const qreal threshold);
717
718 void setDirected(const bool &toggle = true, const bool &signalMW = true);
719
720 void setUndirected(const bool &toggle = true, const bool &signalMW = true);
721
722 bool isDirected();
723
724 bool isUndirected();
725
726 bool isConnected();
727
728 bool isConnectedCached() const;
729
730 void createMatrixAdjacency(const bool dropIsolates = false,
731 const bool considerWeights = true,
732 const bool inverseWeights = false,
733 const bool symmetrize = false);
734
735 bool createMatrixAdjacencyInverse(const QString &method = "lu");
736
738 Matrix &SEM,
739 const int &measure = METRIC_SIMPLE_MATCHING,
740 const QString &varLocation = "Rows",
741 const bool &diagonal = false,
742 const bool &considerWeights = true);
743
745 Matrix &PCC,
746 const QString &varLocation = "Rows",
747 const bool &diagonal = false);
748
749 void createMatrixDissimilarities(Matrix &INPUT_MATRIX,
750 Matrix &DSM,
751 const int &metric,
752 const QString &varLocation,
753 const bool &diagonal,
754 const bool &considerWeights);
755
756 /* REPORT EXPORTS */
757 void setReportsDataDir(const QString &reportsDir);
758 void setReportsRealNumberPrecision(const int &precision);
759 void setReportsLabelLength(const int &length);
760 void setReportsChartType(const int &type);
761
762 void writeDataSetToFile(const QString dir, const QString);
763
764 void writeMatrixAdjacencyTo(QTextStream &os,
765 const bool &saveEdgeWeights = true);
766
767 void writeReciprocity(const QString fileName,
768 const bool considerWeights = false);
769
770 bool writeMatrix(const QString &fileName,
771 const int &matrix = MATRIX_ADJACENCY,
772 const bool &considerWeights = true,
773 const bool &inverseWeights = false,
774 const bool &dropIsolates = false,
775 const QString &varLocation = "Rows",
776 const bool &simpler = false);
777
778 void writeMatrixHTMLTable(QTextStream &outText, Matrix &M,
779 const bool &markDiag = true,
780 const bool &plain = false,
781 const bool &printInfinity = true,
782 const bool &dropIsolates = false);
783
784 void writeMatrixAdjacency(const QString fileName,
785 const bool &markDiag = true);
786
787 void writeMatrixAdjacencyPlot(const QString fileName,
788 const bool &simpler = false);
789
790 bool writeMatrixDissimilarities(const QString fileName,
791 const QString &metricStr,
792 const QString &varLocation,
793 const bool &diagonal,
794 const bool &considerWeights);
795
796
797 bool writeMatrixSimilarityMatching(const QString fileName,
798 const QString &measure = "Simple",
799 const QString &matrix = "adjacency",
800 const QString &varLocation = "rows",
801 const bool &diagonal = false,
802 const bool &considerWeights = true);
803
804 bool writeMatrixSimilarityPearson(const QString fileName,
805 const bool considerWeights,
806 const QString &matrix = "adjacency",
807 const QString &varLocation = "rows",
808 const bool &diagonal = false);
809
810 bool writeEccentricity(const QString fileName,
811 const bool considerWeights = false,
812 const bool inverseWeights = false,
813 const bool dropIsolates = false);
814
815 // friend QTextStream& operator << (QTextStream& os, Graph& m);
816
817 bool writeCentralityDegree(const QString,
818 const bool weights,
819 const bool dropIsolates);
820
821 bool writeCentralityCloseness(const QString,
822 const bool weights,
823 const bool inverseWeights,
824 const bool dropIsolates);
825
827 const bool weights,
828 const bool inverseWeights,
829 const bool dropIsolates);
830
831 bool writeCentralityBetweenness(const QString,
832 const bool weights,
833 const bool inverseWeights,
834 const bool dropIsolates);
835
836 bool writeCentralityPower(const QString,
837 const bool weigths,
838 const bool inverseWeights,
839 const bool dropIsolates);
840
841 bool writeCentralityStress(const QString,
842 const bool weigths,
843 const bool inverseWeights,
844 const bool dropIsolates);
845
846 bool writeCentralityEccentricity(const QString,
847 const bool weigths,
848 const bool inverseWeights,
849 const bool dropIsolates);
850
851 bool writeCentralityInformation(const QString,
852 const bool weigths,
853 const bool inverseWeights);
854
855 bool writeCentralityEigenvector(const QString,
856 const bool &weigths = true,
857 const bool &inverseWeights = false,
858 const bool &dropIsolates = false);
859
860 bool writePrestigeDegree(const QString, const bool weights,
861 const bool dropIsolates);
862
863 bool writePrestigeProximity(const QString, const bool weights,
864 const bool inverseWeights,
865 const bool dropIsolates);
866
867 bool writePrestigePageRank(const QString, const bool Isolates = false);
868
869 bool writeClusteringHierarchical(const QString &fileName,
870 const QString &varLocation,
871 const QString &matrix = "Adjacency",
872 const QString &metric = "Manhattan",
873 const QString &method = "Complete",
874 const bool &diagonal = false,
875 const bool &dendrogram = false,
876 const bool &considerWeights = true,
877 const bool &inverseWeights = false,
878 const bool &dropIsolates = false);
879
880 void writeClusteringHierarchicalResultsToStream(QTextStream &outText,
881 const int N,
882 const bool &dendrogram = false);
883
884 bool writeCliqueCensus(const QString &fileName,
885 const bool considerWeights);
886
887 bool writeClusteringCoefficient(const QString, const bool);
888
889 bool writeTriadCensus(const QString, const bool);
890
891 /* DISTANCES, CENTRALITIES & PROMINENCE MEASURES */
892
893 int graphConnectednessFull(const bool updateProgress = false);
894
895 bool graphReachable(const int &v1, const int &v2);
896
898
899 int graphDiameter(const bool considerWeights, const bool inverseWeights);
900
901 int graphDiameterCached() const;
902
903 qreal graphSumDistanceCached() const;
904
905 qreal graphGeodesicsCountCached() const;
906
907 int graphDistanceGeodesic(const int &v1,
908 const int &v2,
909 const bool &considerWeights = false,
910 const bool &inverseWeights = true);
911
912 qreal graphDistanceGeodesicAverage(const bool considerWeights,
913 const bool inverseWeights,
914 const bool dropIsolates);
915
917
918 void graphDistancesGeodesic(const bool &computeCentralities = false,
919 const bool &considerWeights = false,
920 const bool &inverseWeights = true,
921 const bool &dropIsolates = false);
922
923 // ============================================================================
924 // LEGACY/INTERNAL (ENGINE SUPPORT PRIMITIVES)
925 // ----------------------------------------------------------------------------
926 // NOTE (WS2/F0): These exist to support DistanceEngine during transition.
927 // UI code must not call these. Prefer keeping them engine-only.
928 // ============================================================================
929 // --- SSSP/Brandes stack helpers (DistanceEngine should not touch Stack directly) ---
930 void ssspStackClear();
931 bool ssspStackEmpty() const;
932 int ssspStackTop() const;
933 void ssspStackPop();
934 int ssspStackSize() const;
935 void ssspStackPush(int v);
936 // --- SSSP nth-order neighborhood (for Power Centrality) ---
937 void ssspNthOrderClear();
938 //
939 // LEGACY/INTERNAL: transitional storage.
940 // DistanceEngine may use this via the accessors below.
941 // (Later WS2/F1 may hide this field and keep only accessors.)
942 // Stores the number of vertices at distance n from a given vertex, for n=0,1,2,... during SSSP traversal.
944 H_f_i::const_iterator ssspNthOrderBegin() const;
945 H_f_i::const_iterator ssspNthOrderEnd() const;
946 int ssspNthOrderValue(qreal dist) const;
947 void ssspNthOrderIncrement(int dist);
948 void ssspNthOrderIncrement(qreal dist);
949 // --- SSSP component size accumulator ---
950 void ssspComponentReset(int value = 1);
951 void ssspComponentAdd(int delta);
952 int ssspComponentSize() const;
953 // --- Connectivity bookkeeping ---
955 void notConnectedPairsInsert(int from, int to);
956 int notConnectedPairsSize() const;
957
958 // --- Distance centrality cache flags ---
959 // CLI/benchmark helper: allows repeated runs by clearing the computed flags only.
960 // Does not modify graph structure or results.
962
963 // LEGACY/INTERNAL (ENGINE SUPPORT): cached results written by DistanceEngine
964 void setSymmetricCached(bool v);
965 bool symmetricCached() const;
966
967 void setConnectedCached(bool v);
968 void setDiameterCached(int v);
969
970 void resetDistanceAggregates(); // sets avg/sum/geodesics/diameter to 0
971 void addToDistanceSum(qreal delta);
972 void incGeodesicsCount();
973 void setAverageDistanceCached(qreal v);
974
975 bool graphMatrixDistanceGeodesicCreate(const bool &considerWeights = false,
976 const bool &inverseWeights = false,
977 const bool &dropIsolates = false);
978
979 void graphMatrixShortestPathsCreate(const bool &considerWeights = false,
980 const bool &inverseWeights = true,
981 const bool &dropIsolates = false);
982
983 int getProminenceIndexByName(const QString &prominenceIndexName);
984
985 void prominenceDistribution(const int &index,
986 const ChartType &type,
987 const QString &distImageFileName = QString());
988
989 void prominenceDistributionBars(const H_StrToInt &discreteClasses,
990 const QString &name,
991 const QString &distImageFileName);
992
993 void prominenceDistributionArea(const H_StrToInt &discreteClasses,
994 const QString &name,
995 const QString &distImageFileName);
996
997 void prominenceDistributionSpline(const H_StrToInt &discreteClasses,
998 const QString &seriesName,
999 const QString &distImageFileName);
1000
1001 void centralityDegree(const bool &considerWeights = true,
1002 const bool &dropIsolates = false);
1003
1004 void centralityInformation(const bool considerWeights = false,
1005 const bool inverseWeights = false);
1006
1007 void centralityEigenvector(const bool &considerWeights = false,
1008 const bool &inverseWeights = false,
1009 const bool &dropIsolates = false);
1010
1011 void centralityClosenessIR(const bool considerWeights = false,
1012 const bool inverseWeights = false,
1013 const bool dropIsolates = false);
1014
1015 void prestigeDegree(const bool &considerWeights, const bool &dropIsolates = false);
1016
1017 void prestigePageRank(const bool &dropIsolates = false);
1018
1019 void prestigeProximity(const bool considerWeights = false,
1020 const bool inverseWeights = false,
1021 const bool dropIsolates = false);
1022
1023 bool isCentralityIndexComputed(const IndexType index) const;
1024
1025 /* REACHABILITY AND WALKS */
1026
1027 int walksBetween(int v1, int v2, int length);
1028
1029 void graphWalksMatrixCreate(const int &N = 0,
1030 const int &length = 0,
1031 const bool &updateProgress = false,
1032 const bool &dropIsolates = false,
1033 const bool &considerWeights = false,
1034 const bool &inverseWeights = false,
1035 const bool &symmetrize = false);
1036
1037 void writeMatrixWalks(const QString &fn,
1038 const int &length = 0,
1039 const bool &simpler = false);
1040
1041 QList<int> vertexinfluenceRange(int v1);
1042
1043 QList<int> vertexinfluenceDomain(int v2);
1044
1045 void writeReachabilityMatrixPlainText(const QString &fn,
1046 const bool &dropIsolates = false);
1047
1048 qreal numberOfTriples(int v1);
1049
1050 /* CLIQUES, CLUSTERING, TRIADS */
1051 void graphCliques(QSet<int> R = QSet<int>(), QSet<int> P = QSet<int>(), QSet<int> X = QSet<int>());
1052
1053 void graphCliqueAdd(const QList<int> &clique);
1054
1055 int graphCliquesContaining(const int &actor, const int &size = 0);
1056
1057 int graphCliquesOfSize(const int &size);
1058
1059 bool graphClusteringHierarchical(Matrix &STR_EQUIV,
1060 const QString &varLocation,
1061 const int &metric,
1062 const int &method,
1063 const bool &diagonal = false,
1064 const bool &diagram = false,
1065 const bool &considerWeights = true,
1066 const bool &inverseWeights = false,
1067 const bool &dropIsolates = false);
1068
1069 qreal clusteringCoefficientLocal(const int &v1);
1070
1071 qreal clusteringCoefficient(const bool updateProgress = false);
1072
1073 bool graphTriadCensus();
1074
1076 // void eccentr_JordanCenter(); // TODO
1077
1078 /* LAYOUTS */
1079
1080 void layoutRandom();
1081
1082 void layoutRadialRandom(const bool &guides = true);
1083
1084 void layoutCircular(const double &x0,
1085 const double &y0,
1086 const double &newRadius,
1087 const bool &guides = false);
1088
1089 void layoutByProminenceIndex(int prominenceIndex,
1090 int layoutType,
1091 const bool &considerWeights = false,
1092 const bool &inverseWeights = false,
1093 const bool &dropIsolates = false);
1094
1096
1098
1099 void layoutForceDirectedSpringEmbedder(const int maxIterations);
1100
1101 void layoutForceDirectedFruchtermanReingold(const int maxIterations);
1102
1103 void layoutForceDirectedKamadaKawai(const int maxIterations = 500,
1104 const bool considerWeights = false,
1105 const bool inverseWeights = false,
1106 const bool dropIsolates = false,
1107 const QString &initialPositions = "current");
1108
1109 qreal graphDistanceEuclidean(const QPointF &a, const QPointF &b);
1110
1111 qreal graphDistanceEuclidean(const QPointF &a);
1112
1113 int sign(const qreal &D);
1114
1115 qreal layoutForceDirected_F_rep(const QString model,
1116 const qreal &dist,
1117 const qreal &optimalDistance);
1118
1119 qreal layoutForceDirected_F_att(const QString model,
1120 const qreal &dist,
1121 const qreal &optimalDistance);
1122
1123 qreal layoutForceDirected_Eades_moveNodes(const qreal &c4);
1124
1125 void layoutForceDirected_FR_moveNodes(const qreal &temperature);
1126
1127 qreal layoutForceDirected_FR_temperature(const int iteration) const;
1128
1129 qreal computeOptimalDistance(const int &V);
1130
1131 void compute_angles(const QPointF &Delta,
1132 const qreal &dist,
1133 qreal &angle1,
1134 qreal &angle2,
1135 qreal &degrees1,
1136 qreal &degrees2);
1137
1138 /* CRAWLER */
1139 void webCrawlTerminateThreads(QString reason);
1140
1142 void randomizeThings();
1143
1144 bool randomNetErdosCreate(const int &N, const QString &model,
1145 const int &m, const qreal &p,
1146 const QString &mode, const bool &diag);
1147
1148 bool randomNetScaleFreeCreate(const int &N, const int &power,
1149 const int &m0, const int &m,
1150 const qreal &alpha, const QString &mode);
1151
1152 bool randomNetSmallWorldCreate(const int &N, const int &degree,
1153 const double &beta, const QString &mode);
1154
1155 bool randomNetRingLatticeCreate(const int &N, const int &degree,
1156 const bool updateProgress = false);
1157
1158 bool randomNetRegularCreate(const int &N, const int &degree,
1159 const QString &mode, const bool &diag);
1160
1161 bool randomNetLatticeCreate(const int &N, const int &length,
1162 const int &dimension, const int &nei,
1163 const QString &mode, const bool &circular);
1164
1165 int factorial(int);
1166
1167 // Progress cancellation query: readable by engines and sinks.
1168 bool progressCanceled() const;
1169 void resetProgressCanceled();
1170
1176 //
1177 // LEGACY/INTERNAL: storage bookkeeping.
1178 // Do not use from UI/engines. (Later WS2 will likely privatize this and
1179 // expose intent-revealing helpers if needed.)
1181
1182 // --------------------------------------------------------------------------
1183 // INTERNAL PROGRESS FACADE (WS2/F4)
1184 // Algorithm slices must not emit signals directly.
1185 // --------------------------------------------------------------------------
1186protected:
1187 void progressStatus(const QString &msg);
1188 void progressCreate(int max, const QString &msg);
1189 void progressUpdate(int value);
1190 void progressFinish();
1191
1192 void uiProminenceDistributionSpline(const QVector<QPair<qreal, qreal>> &points,
1193 qreal min, qreal max,
1194 qreal minF, qreal maxF,
1195 const QString &seriesName,
1196 const QString &distImageFileName);
1197 void uiProminenceDistributionArea(const QVector<QPair<qreal, qreal>> &points,
1198 const qreal min,
1199 const qreal max,
1200 const qreal minF,
1201 const qreal maxF,
1202 const QString &name,
1203 const QString &distImageFileName);
1204 void uiProminenceDistributionBars(const QStringList &categories,
1205 const QVector<qreal> &frequencies,
1206 const qreal min,
1207 const qreal max,
1208 const qreal minF,
1209 const qreal maxF,
1210 const QString &name,
1211 const QString &distImageFileName);
1212
1213private:
1216 void edgeAdd(const int &v1,
1217 const int &v2,
1218 const qreal &weight,
1219 const int &type,
1220 const QString &label,
1221 const QString &color);
1222
1224 void dijkstra(const int &s,
1225 const int &si,
1226 const bool &computeCentralities = false,
1227 const bool &inverseWeights = false,
1228 const bool &dropIsolates = false);
1229
1230 void minmax(qreal C,
1231 GraphVertex *v,
1232 qreal &max,
1233 qreal &min,
1234 int &maxNode, int &minNode);
1235
1236 void resolveClasses(qreal C,
1237 H_StrToInt &discreteClasses,
1238 int &classes);
1239
1240 void resolveClasses(qreal C,
1241 H_StrToInt &discreteClasses,
1242 int &classes, int name);
1243
1244 void layoutRandomInMemory();
1245
1246 VList m_graph; // List of pointers to the vertices. Each vertex stores all info: links, colors, etc
1247
1248 Parser *file_parser; // Our file loader threaded class.
1249
1250 WebCrawler *web_crawler; // Our web crawler threaded class. This will parse the downloaded HTML.
1251
1252 QQueue<QUrl> *urlQueue; // A queue where the crawler will put urls for the network manager to download
1253
1254 int m_crawler_max_urls; // maximum urls we'll visit (max nodes in the resulted network)
1255 int m_crawler_visited_urls; // A counter of the urls visited.
1256
1257 QList<QString> m_relationsList;
1258
1260
1261 QList<int> triadTypeFreqs; // stores triad type frequencies
1262
1263 QList<int> m_verticesList;
1265
1267
1268 QSet<int> m_verticesSet;
1269
1270 QList<SelectedEdge> m_selectedEdges;
1271
1272 QMultiHash<int, int> influenceRanges, influenceDomains;
1273
1274 QMultiHash<int, int> m_vertexPairsNotConnected;
1276
1277 QMultiMap<int, L_int> m_cliques;
1278 QHash<int, QSet<int>> neighboursHash;
1279
1280 QList<qreal> m_clusteringLevel;
1281 QMap<int, V_int> m_clustersPerSequence;
1282
1283 QMap<QString, V_int> m_clustersByName;
1285
1288
1289 stack<int> Stack;
1290
1295
1300
1302
1304
1331
1348
1356 bool order;
1367
1369
1371
1385
1387
1392
1394};
1395
1396#endif
Definition chart.h:28
Definition distance_engine.h:24
Definition graphvertex.h:51
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex,...
Definition graph.h:72
void vertexNumberColorSet(const int &v=0, const QString &color="#000000")
Graph::vertexColorSet Changes the color of vertex v1.
Definition graph_vertex_style.cpp:301
qreal maxIRCC
Definition graph.h:1322
void signalSelectionChanged(const int &selectedVertices, const int &selectedEdges)
QHash< int, int > m_vertexPairsUnilaterallyConnected
Definition graph.h:1275
qreal denomIC
Definition graph.h:1327
Matrix XSM
Definition graph.h:1287
int factorial(int)
Definition graph_random_networks.cpp:886
int initVertexNumberSize
Definition graph.h:1354
bool calculatedIC
Definition graph.h:1379
int reciprocalEdgesVert
Definition graph.h:1370
void signalRelationChangedToGW(int)
void canvasSizeSet(const int &width, const int &height)
Sets the size of the canvas.
Definition graph_canvas.cpp:27
void signalEdgeType(const int &v1, const int &v2, const int &type)
QList< SelectedEdge > getSelectedEdges() const
Returns a QList of user-selected edges in pair<int,int>
Definition graph_selection.cpp:107
int m_totalVertices
Definition graph.h:1353
qreal denomPRC
Definition graph.h:1329
QStringList graphHasVertexCustomAttributes() const
Returns true if at least one vertex has a 'custom' attribute.
Definition graph_vertex_style.cpp:186
qreal maxPP
Definition graph.h:1330
qreal minIC
Definition graph.h:1327
qreal varianceSDC
Definition graph.h:1306
void progressStatus(const QString &msg)
Emits a status message to be shown in the UI status bar.
Definition graph_ui_facade.cpp:35
int getProminenceIndexByName(const QString &prominenceIndexName)
Returns the IndexType of the given prominence index name Called from MW::slotEditNodeFind,...
Definition graph_prominence_distribution.cpp:100
int minNodeSBC
Definition graph.h:1338
QString initVertexShape
Definition graph.h:1390
bool isSymmetric()
Returns TRUE if the adjacency matrix of the current relation is symmetric.
Definition graph_state_flags.cpp:81
qreal sumPRP
Definition graph.h:1329
qreal sumDC
Definition graph.h:1320
void vertexCreateAtPosRandomWithLabel(const int &i, const QString &label, const bool &signalMW=false)
Creates a new randomly positioned vertex with specific number and label. All other values are from th...
Definition graph_vertices.cpp:177
qreal nomSPC
Definition graph.h:1324
int m_reserveEdgesPerVertexSize
Definition graph.h:1352
void signalRemoveEdge(const int &v1, const int &v2, const bool &removeReverse)
void moveToThreadFacade(QThread *thread)
Definition graph_ui_facade.cpp:25
void ssspNthOrderClear()
Definition graph_distance_cache.cpp:285
int initVertexNumberDistance
Definition graph.h:1355
void prestigePageRank(const bool &dropIsolates=false)
Calculates the PageRank Prestige of each vertex.
Definition graph_prestige.cpp:354
int graphConnectednessFull(const bool updateProgress=false)
VList::const_iterator verticesEnd() const
Definition graph_vertices.cpp:336
int getSelectedVerticesCount() const
Returns count of user-selected vertices.
Definition graph_selection.cpp:68
void writeMatrixAdjacencyTo(QTextStream &os, const bool &saveEdgeWeights=true)
Definition graph_reports.cpp:6272
GraphVertex * vertexAtIndex(int idx)
Returns the vertex at a given index.
Definition graph_vertices.cpp:312
bool writeCentralityBetweenness(const QString, const bool weights, const bool inverseWeights, const bool dropIsolates)
Writes Betweenness centralities to file.
Definition graph_reports.cpp:1818
qreal maxEC
Definition graph.h:1326
void vertexShapeSetDefault(const QString, const QString &iconPath=QString())
Sets the default vertex shape and iconPath.
Definition graph_vertex_style.cpp:93
qreal sumBC
Definition graph.h:1323
qreal sumSCC
Definition graph.h:1321
int minNodeSCC
Definition graph.h:1336
int classesSCC
Definition graph.h:1336
qreal edgeWeightTemp
Definition graph.h:1305
int m_graphReciprocityTiesTotal
Definition graph.h:1364
int m_reportsLabelLength
Definition graph.h:1298
int classesSSC
Definition graph.h:1340
Matrix CLQM
Definition graph.h:1287
void setName(const QString &graphName)
Sets the name of the current graph.
Definition graph_metadata.cpp:48
int initVertexLabelSize
Definition graph.h:1354
bool graphClusteringHierarchical(Matrix &STR_EQUIV, const QString &varLocation, const int &metric, const int &method, const bool &diagonal=false, const bool &diagram=false, const bool &considerWeights=true, const bool &inverseWeights=false, const bool &dropIsolates=false)
Performs an hierarchical clustering process (Johnson, 1967) on a given NxN distance/dissimilarity mat...
Definition graph_clustering_hierarchical.cpp:36
qreal sumSSC
Definition graph.h:1325
qreal sumCC
Definition graph.h:1321
bool m_graphIsWeighted
Definition graph.h:1384
WebCrawler * web_crawler
Definition graph.h:1250
qreal maxIndexEC
Definition graph.h:1326
bool m_graphIsSymmetric
Definition graph.h:1384
void writeMatrixWalks(const QString &fn, const int &length=0, const bool &simpler=false)
Writes the walks of given length matrix to a file in HTML. If length = 0, it writes the Total Walks m...
Definition graph_reports.cpp:3620
void vertexLabelDistanceInit(const int &distance)
Changes the default distance of vertex labels.
Definition graph_vertex_style.cpp:601
QString relationCurrentName() const
Gets the current relation name.
Definition graph_relations.cpp:188
void setNodeNumberDistance(const int &v, const int &distance)
int minNodeEC
Definition graph.h:1341
int graphDistanceGeodesic(const int &v1, const int &v2, const bool &considerWeights=false, const bool &inverseWeights=true)
Returns the geodesic distance (length of shortest path) from vertex v1 to vertex v2.
Definition graph_distance_facade.cpp:30
MyEdge edgeClicked()
Returns clicked edge.
Definition graph_selection.cpp:206
void layoutForceDirectedKamadaKawai(const int maxIterations=500, const bool considerWeights=false, const bool inverseWeights=false, const bool dropIsolates=false, const QString &initialPositions="current")
Embeds a Force Directed Placement layout according to the Kamada-Kawai model. In this model,...
Definition graph_layouts_force.cpp:400
int maxNodeEC
Definition graph.h:1341
H_StrToInt discretePPs
Definition graph.h:1294
void prominenceDistributionArea(const H_StrToInt &discreteClasses, const QString &name, const QString &distImageFileName)
Computes prominence distribution data and delegates Area chart rendering.
Definition graph_prominence_distribution.cpp:336
int classesEVC
Definition graph.h:1346
QString vertexLabel(const int &v) const
Returns the label of a vertex v1.
Definition graph_vertex_style.cpp:450
void setFileName(const QString &fileName)
Sets the file name of the current graph.
Definition graph_metadata.cpp:69
void slotHandleCrawlerRequestReply()
Gets the reply of a MW network request made by Web Crawler, and emits that reply as is to the Web Cra...
Definition graph_crawler.cpp:223
void signalNetworkManagerRequest(const QUrl &currentUrl, const NetworkRequestType &type)
bool writeCentralityStress(const QString, const bool weigths, const bool inverseWeights, const bool dropIsolates)
Writes the Stress centralities to a file.
Definition graph_reports.cpp:2102
int vertices(const bool &dropIsolates=false, const bool &countAll=false, const bool &recount=false)
Gets the number of vertices in the graph.
Definition graph_vertices.cpp:661
MyEdge m_clickedEdge
Definition graph.h:1303
void signalRelationAddToMW(const QString &newRelation)
qreal denomSPC
Definition graph.h:1324
Matrix XM
Definition graph.h:1287
void minmax(qreal C, GraphVertex *v, qreal &max, qreal &min, int &maxNode, int &minNode)
Computes minimum and maximum centralities during graphDistancesGeodesic()
Definition graph_centrality.cpp:668
QList< SelectedEdge > m_selectedEdges
Definition graph.h:1270
qreal sumPP
Definition graph.h:1330
qreal nomPP
Definition graph.h:1330
void writeMatrixHTMLTable(QTextStream &outText, Matrix &M, const bool &markDiag=true, const bool &plain=false, const bool &printInfinity=true, const bool &dropIsolates=false)
Writes the matrix M as HTML.
Definition graph_reports.cpp:6136
int vertexClicked() const
Returns the number of the clicked vertex.
Definition graph_selection.cpp:152
int m_curRelation
Definition graph.h:1301
void setEdgeWeight(const int &v1, const int &v2, const qreal &weight)
bool calculatedGraphReciprocity
Definition graph.h:1381
QThread webcrawlerThread
Definition graph.h:75
void signalSetEdgeVisibility(const int &relation, const int &source, const int &target, const bool &toggle, const bool &preserveReverseEdge=false, const int &edgeWeight=1, const int &reverseEdgeWeight=1)
int maxNodeDP
Definition graph.h:1334
int minNodePP
Definition graph.h:1345
QString graphMetricTypeToString(const int &metricType) const
Helper method, return the human readable name of metric type.
Definition graph_type_strings.cpp:146
bool writeCentralityDegree(const QString, const bool weights, const bool dropIsolates)
Writes the Degree Centrality to a file.
Definition graph_reports.cpp:997
bool randomNetLatticeCreate(const int &N, const int &length, const int &dimension, const int &nei, const QString &mode, const bool &circular)
Creates a lattice (mesh/grid) random network.
Definition graph_random_networks.cpp:715
void graphCliqueAdd(const QList< int > &clique)
Called from Graph::graphCliques to add a new clique (list of vertices) Adds clique info to each cliqu...
Definition graph_cliques.cpp:25
bool randomNetRingLatticeCreate(const int &N, const int &degree, const bool updateProgress=false)
Creates a random ring lattice network.
Definition graph_random_networks.cpp:626
qreal m_graphAverageDistance
Definition graph.h:1358
qreal varianceSDP
Definition graph.h:1315
QList< int > m_graphFileFormatExportSupported
Definition graph.h:1259
qreal denomPP
Definition graph.h:1330
bool isSaved() const
Returns true if the graph is saved.
Definition graph_metadata.cpp:261
bool writeClusteringCoefficient(const QString, const bool)
Writes the clustering coefficients to a file.
Definition graph_reports.cpp:3773
qreal denomEC
Definition graph.h:1326
qreal minSBC
Definition graph.h:1323
int minNodeIC
Definition graph.h:1343
qreal maxIndexIC
Definition graph.h:1327
bool calculatedGraphDensity
Definition graph.h:1382
qreal sumSC
Definition graph.h:1325
bool createMatrixAdjacencyInverse(const QString &method="lu")
Computes the inverse of the current adjacency matrix.
Definition graph_matrix_adjacency.cpp:143
void signalEdgeClicked(const MyEdge &edge=MyEdge(), const bool &openMenu=false)
QMap< int, V_str > m_clusterPairNamesPerSeq
Definition graph.h:1284
QString m_reportsDataDir
Definition graph.h:1296
void edgeWeightNumbersVisibilitySet(const bool &toggle)
Changes the visibility of edge weight numbers.
Definition graph_edge_style.cpp:26
void signalRelationsClear()
bool edgeColorAllSet(const QString &color, const int &threshold=RAND_MAX)
Changes the color of all enabled edges.
Definition graph_edge_style.cpp:50
int getSelectedVerticesMin() const
Returns min of user-selected vertices.
Definition graph_selection.cpp:77
void progressFinish()
Emits a signal to kill the progress box in the UI, indicating that the operation is complete.
Definition graph_ui_facade.cpp:68
qreal graphDistanceGeodesicAverageCached() const
Returns the average geodesic distance of the graph, without recalculating it.
Definition graph_distance_facade.cpp:121
int m_vertexClicked
Definition graph.h:1301
qreal minSSC
Definition graph.h:1325
int notConnectedPairsSize() const
Definition graph_distance_cache.cpp:346
QList< int > vertexNeighborhoodList(const int &v1)
Returns a list of all vertices mutually connected to vertex v1 in the current relation.
Definition graph_structure_metrics.cpp:47
void setSymmetricCached(bool v)
Definition graph_distance_cache.cpp:360
void setDiameterCached(int v)
Definition graph_distance_cache.cpp:364
int relations()
Returns the count of relationships in this Graph.
Definition graph_relations.cpp:252
void graphFileLoaded(const int &fileType, const QString &fName=QString(), const QString &netName=QString(), const int &totalNodes=0, const int &totalLinks=0, const int &edgeDirType=0, const qint64 &elapsedTime=0, const QString &message=QString())
Stores loaded file name, graph name, sets edge direction type and signals MW to update the UI.
Definition graph_io.cpp:132
void setNodeLabelColor(const int &v, const QString &color)
qreal edgeReverseWeightTemp
Definition graph.h:1305
int verticesWithReciprocalEdges()
Returns the sum of vertices having reciprocal edges.
Definition graph_structure_metrics.cpp:135
bool saveToGraphMLFormat(const QString &fileName, const bool &saveZeroWeightEdges=false, QString networkName="", int maxWidth=0, int maxHeight=0)
Saves the current graph to a GraphML-formatted file.
Definition graph_io.cpp:573
int ssspComponentSize() const
Definition graph_distance_cache.cpp:325
bool saveToPajekFormat(const QString &fileName, QString networkName="", int maxWidth=0, int maxHeight=0)
Save the current graph to a Pajek (.paj) file.
Definition graph_io.cpp:297
void relationAddCocitation()
Creates a new symmetric relation by connecting those actors that are cocitated by others....
Definition graph_relations.cpp:365
QString graphMatrixTypeToString(const int &matrixType) const
Helper method, return the human readable name of matrix type.
Definition graph_type_strings.cpp:23
qreal sumEC
Definition graph.h:1326
int vertexExists(const int &v1)
Checks if the given vertex exists in the graph.
Definition graph_vertices.cpp:716
qreal variancePRP
Definition graph.h:1317
void setNodeLabelSize(const int &v, const int &size)
bool graphReachable(const int &v1, const int &v2)
Returns true if vertices v1 and v2 are reachable.
Definition graph_reachability_walks.cpp:28
int m_graphDiameter
Definition graph.h:1353
QThread file_parserThread
Definition graph.h:74
bool calculatedPRP
Definition graph.h:1379
void ssspStackPop()
Definition graph_distance_cache.cpp:270
H_StrToInt discreteEccentricities
Definition graph.h:1293
void graphCliques(QSet< int > R=QSet< int >(), QSet< int > P=QSet< int >(), QSet< int > X=QSet< int >())
Finds all maximal cliques in an undirected (?) graph. Implements the Bron–Kerbosch algorithm,...
Definition graph_cliques.cpp:89
QString getFileName() const
Returns the file name of the current graph, if any.
Definition graph_metadata.cpp:59
int graphMatrixStrToType(const QString &matrix) const
Helper method, return the matrix type of human readable matrix name .
Definition graph_type_strings.cpp:82
void graphLoadedTerminateParserThreads(QString reason)
Graph::graphLoadedTerminateParserThreads.
Definition graph_io.cpp:102
int vertexSize(const int &v) const
Returns the size of vertex v.
Definition graph_vertex_style.cpp:78
void setNodeSize(const int &v, const int &size)
qreal denomSCC
Definition graph.h:1321
int m_graphReciprocityTiesNonSymmetric
Definition graph.h:1363
void layoutVertexSizeByOutdegree()
Convenience method Changes the size of all nodes to be proportional to their outDegree (Degree Centra...
Definition graph_layouts_basic.cpp:206
qreal t_sumIC
Definition graph.h:1324
QMap< int, V_int > m_clustersPerSequence
Definition graph.h:1281
bool writeCentralityInformation(const QString, const bool weigths, const bool inverseWeights)
Writes the information centralities to file.
Definition graph_reports.cpp:474
void edgeLabelSet(const int &v1, const int &v2, const QString &label)
Changes the label of edge v1->v2.
Definition graph_edge_style.cpp:150
void resetProgressCanceled()
Resets the cancellation status.
Definition graph_ui_facade.cpp:42
bool writeCliqueCensus(const QString &fileName, const bool considerWeights)
Calls graphCliques() to compute all cliques (maximal connected subgraphs) of the network....
Definition graph_reports.cpp:4132
void compute_angles(const QPointF &Delta, const qreal &dist, qreal &angle1, qreal &angle2, qreal &degrees1, qreal &degrees2)
Graph::compute_angles Computes the two angles of the orthogonal triangle shaped by two points of diff...
Definition graph_layouts_force.cpp:1014
QQueue< QUrl > * urlQueue
Definition graph.h:1252
int sign(const qreal &D)
Graph::sign returns the sign of number D as integer (1 or -1)
Definition graph_layouts_force.cpp:987
QSet< int > m_verticesSet
Definition graph.h:1268
double canvasVisibleY(const double &y) const
Checks if y is visible inside the canvas usable area and if not returns an adjusted y-coordinate.
Definition graph_canvas.cpp:89
QList< int > m_verticesIsolatedList
Definition graph.h:1264
void uiProminenceDistributionBars(const QStringList &categories, const QVector< qreal > &frequencies, const qreal min, const qreal max, const qreal minF, const qreal maxF, const QString &name, const QString &distImageFileName)
Definition graph_ui_prominence_distribution.cpp:201
int minNodePRP
Definition graph.h:1344
void vertexCreateAtPos(const QPointF &p)
Creates a new vertex in the given position.
Definition graph_vertices.cpp:125
qreal meanIC
Definition graph.h:1313
qreal sumPC
Definition graph.h:1329
QMultiHash< int, int > influenceRanges
Definition graph.h:1272
void relationPrev()
Changes graph to previous relation.
Definition graph_relations.cpp:116
int classesSPC
Definition graph.h:1339
void layoutRadialRandom(const bool &guides=true)
Repositions all nodes on the periphery of different circles with random radius.
Definition graph_layouts_basic.cpp:68
void writeMatrixAdjacency(const QString fileName, const bool &markDiag=true)
Definition graph_reports.cpp:6301
void addGuideHLine(const double &y0)
qreal groupIRCC
Definition graph.h:1322
bool vertexFindByLabel(const QStringList &labelList)
Finds vertices by their label.
Definition graph_vertices.cpp:820
void prominenceDistribution(const int &index, const ChartType &type, const QString &distImageFileName=QString())
Computes the distribution of a centrality index score. The distribution is stored as Qt Series depend...
Definition graph_prominence_distribution.cpp:166
qreal variancePP
Definition graph.h:1316
qreal minSDP
Definition graph.h:1319
int vertexEdgesOutbound(int i)
Returns the number of outbound edges (arcs) from vertex v1.
Definition graph_edges.cpp:574
bool calculatedVerticesList
Definition graph.h:1374
qreal meanIRCC
Definition graph.h:1308
qreal maxIndexPC
Definition graph.h:1324
void layoutRandomInMemory()
Repositions all vertices at random coordinates without emitting any signals.
Definition graph_layouts_basic.cpp:136
void createMatrixDissimilarities(Matrix &INPUT_MATRIX, Matrix &DSM, const int &metric, const QString &varLocation, const bool &diagonal, const bool &considerWeights)
Calls Matrix:distancesMatrix to compute the dissimilarities matrix DSM of the variables (rows,...
Definition graph_similarity_matrices.cpp:32
bool writeMatrixSimilarityPearson(const QString fileName, const bool considerWeights, const QString &matrix="adjacency", const QString &varLocation="rows", const bool &diagonal=false)
Calls Graph::createMatrixSimilarityPearson() and writes Pearson Correlation Coefficients to given fil...
Definition graph_reports.cpp:5210
H_StrToInt discretePRPs
Definition graph.h:1294
bool writeEccentricity(const QString fileName, const bool considerWeights=false, const bool inverseWeights=false, const bool dropIsolates=false)
Writes the Eccentricity report to file.
Definition graph_reports.cpp:280
void vertexPosSet(const int &v, const int &x, const int &y)
Changes the position of the given vertex.
Definition graph_vertices.cpp:1187
qreal canvasHeight
Definition graph.h:1372
bool symmetricCached() const
Definition graph_distance_cache.cpp:361
qreal sumSEVC
Definition graph.h:1328
void setNodeLabelDistance(const int &v, const int &distance)
void edgeFilterUnilateral(const bool &toggle)
Enables or disables unilateral edges in current relationship.
Definition graph_edge_filters.cpp:176
H_f_i sizeOfNthOrderNeighborhood
Definition graph.h:943
void setVertexVisibility(const int &number, const bool &toggle)
int maxNodeSSC
Definition graph.h:1340
qreal maxEccentricity
Definition graph.h:1318
qreal minEVC
Definition graph.h:1328
void createMatrixReachability()
Creates the reachability matrix XRM.
Definition graph_reachability_walks.cpp:38
void signalRelationChangedToMW(const int &relIndex=RAND_MAX)
qreal maxSPC
Definition graph.h:1324
void signalDrawEdge(const int &v1, const int &v2, const qreal &weight, const QString &label="", const QString &color="black", const int &type=0, const bool &drawArrows=true, const bool &bezier=false, const bool &weightNumbers=false)
void prominenceDistributionSpline(const H_StrToInt &discreteClasses, const QString &seriesName, const QString &distImageFileName)
Computes prominence distribution data and delegates Spline chart rendering.
Definition graph_prominence_distribution.cpp:302
Matrix invM
Definition graph.h:1286
qreal sumIC
Definition graph.h:1327
qreal varianceIRCC
Definition graph.h:1308
qreal layoutForceDirected_F_rep(const QString model, const qreal &dist, const qreal &optimalDistance)
Computes the repulsive force between two vertices for force-directed layouts.
Definition graph_layouts_force.cpp:946
int getFileFormat() const
Returns the format of the last file opened.
Definition graph_metadata.cpp:80
qreal canvasWidth
Definition graph.h:1372
qreal clusteringCoefficient(const bool updateProgress=false)
Computes local clustering coefficients and returns the network average Clustering Coefficient.
Definition graph_clustering_coefficients.cpp:225
void resolveClasses(qreal C, H_StrToInt &discreteClasses, int &classes)
Checks if score C is a new prominence class If yes, it stores that number in a QHash<QString,...
Definition graph_centrality.cpp:692
void edgeAdd(const int &v1, const int &v2, const qreal &weight, const int &type, const QString &label, const QString &color)
Adds a directed arc from v1 to v2 into the internal graph data structures.
Definition graph_edges.cpp:281
qreal meanEC
Definition graph.h:1311
bool writeCentralityClosenessInfluenceRange(const QString, const bool weights, const bool inverseWeights, const bool dropIsolates)
Writes the "improved" closeness centrality indices to a file.
Definition graph_reports.cpp:1583
int m_reportsRealPrecision
Definition graph.h:1297
void vertexColorInit(const QString &color)
Graph::vertexColorInit default vertex color initialization.
Definition graph_vertex_style.cpp:277
bool writeCentralityEccentricity(const QString, const bool weigths, const bool inverseWeights, const bool dropIsolates)
Writes the Eccentricity centralities (aka Harary Graph Centrality) to a file.
Definition graph_reports.cpp:2347
qreal t_sumPRP
Definition graph.h:1329
void graphWalksMatrixCreate(const int &N=0, const int &length=0, const bool &updateProgress=false, const bool &dropIsolates=false, const bool &considerWeights=false, const bool &inverseWeights=false, const bool &symmetrize=false)
Computes either the "Walks of given length" or the "Total Walks" matrix. If length>0,...
Definition graph_reachability_walks.cpp:144
QMultiHash< int, int > m_vertexPairsNotConnected
Definition graph.h:1274
void vertexLabelColorSet(const int &v1, const QString &color)
Changes the label color of vertex v1 or all vertices if v1 = 0.
Definition graph_vertex_style.cpp:511
int maxNodeSDC
Definition graph.h:1335
bool writeMatrixSimilarityMatching(const QString fileName, const QString &measure="Simple", const QString &matrix="adjacency", const QString &varLocation="rows", const bool &diagonal=false, const bool &considerWeights=true)
Writes similarity matrix based on a matching measure to given html file.
Definition graph_reports.cpp:5026
int graphCliquesContaining(const int &actor, const int &size=0)
Definition graph_cliques.cpp:256
void setEdgeLabel(const int &v1, const int &v2, const QString &label)
void ssspComponentAdd(int delta)
Definition graph_distance_cache.cpp:320
void triadType_examine_MAN_label(int, int, int, GraphVertex *, GraphVertex *, GraphVertex *)
Definition graph_triad_census.cpp:144
void setUndirected(const bool &toggle=true, const bool &signalMW=true)
Makes the graph undirected or directed.
Definition graph_state_flags.cpp:213
void incGeodesicsCount()
Definition graph_distance_cache.cpp:375
bool graphMatrixDistanceGeodesicCreate(const bool &considerWeights=false, const bool &inverseWeights=false, const bool &dropIsolates=false)
Creates the matrix DM of geodesic distances between vertices.
Definition graph_distance_cache.cpp:143
bool writePrestigeProximity(const QString, const bool weights, const bool inverseWeights, const bool dropIsolates)
Writes the proximity prestige indices to a file.
Definition graph_reports.cpp:3143
qreal clusteringCoefficientLocal(const int &v1)
Returns the local clustering coefficient (CLUCOF) of vertex v1.
Definition graph_clustering_coefficients.cpp:48
QString initVertexNumberColor
Definition graph.h:1389
qreal minEccentricity
Definition graph.h:1318
int vertexDegreeIn(int)
Returns the inDegree (sum of inbound edge weights) of vertex v1.
Definition graph_structure_metrics.cpp:35
qreal maxPRP
Definition graph.h:1329
qreal groupDP
Definition graph.h:1319
int maxNodeEVC
Definition graph.h:1346
qreal sumSDP
Definition graph.h:1319
void edgeClickedSet(const int &v1, const int &v2, const bool &openMenu=false)
Sets the clicked edge.
Definition graph_selection.cpp:166
void signalRemoveNode(int)
int edgesEnabled()
Returns the number of enabled ties in the current relation.
Definition graph_edges.cpp:544
H_StrToInt discreteSDCs
Definition graph.h:1292
H_StrToInt discreteDPs
Definition graph.h:1292
void edgeColorInit(const QString &)
Saves the default edge color Used by random network creation methods.
Definition graph_edge_style.cpp:40
qreal minPRP
Definition graph.h:1329
bool writeTriadCensus(const QString, const bool)
Definition graph_reports.cpp:3980
qreal m_graphReciprocityDyad
Definition graph.h:1361
bool m_progressCanceled
Definition graph.h:1383
qreal groupCC
Definition graph.h:1321
void writeMatrixAdjacencyPlot(const QString fileName, const bool &simpler=false)
Writes a visual representation of the adjacency matrix of the graph to the specified file.
Definition graph_reports.cpp:6444
int csRecDepth
Definition graph.h:1386
qreal sumEVC
Definition graph.h:1328
QString m_fileName
Definition graph.h:1388
void webCrawlTerminateThreads(QString reason)
called from Graph, when closing network, to terminate all crawler processes Also called indirectly wh...
Definition graph_crawler.cpp:28
void centralityClosenessIR(const bool considerWeights=false, const bool inverseWeights=false, const bool dropIsolates=false)
Computes an "improved" closeness centrality index, IRCC, which can be used on disconnected graphs....
Definition graph_centrality.cpp:535
void signalProgressBoxCreate(const int max=0, const QString msg="Please wait")
int minNodeEVC
Definition graph.h:1346
qreal minSPC
Definition graph.h:1324
void uiProminenceDistributionArea(const QVector< QPair< qreal, qreal > > &points, const qreal min, const qreal max, const qreal minF, const qreal maxF, const QString &name, const QString &distImageFileName)
Definition graph_ui_prominence_distribution.cpp:111
void createMatrixAdjacency(const bool dropIsolates=false, const bool considerWeights=true, const bool inverseWeights=false, const bool symmetrize=false)
Creates an adjacency matrix AM where AM(i,j)=1 if i is connected to j and AM(i,j)=0 if i not connecte...
Definition graph_matrix_adjacency.cpp:27
bool edgeSymmetric(const int &v1, const int &v2)
Returns TRUE if edge(v1, v2) is symmetric, i.e. (v1,v2) == (v2,v1).
Definition graph_edges.cpp:502
qreal edgeWeight(const int &v1, const int &v2) const
Returns the weight of the edge v1->v2.
Definition graph_edges.cpp:624
void setNodeShape(const int &v, const QString &shape, const QString &iconPath=QString())
qreal maxIndexCC
Definition graph.h:1321
qreal nomIRCC
Definition graph.h:1322
int ssspStackSize() const
Definition graph_distance_cache.cpp:275
QHash< int, QSet< int > > neighboursHash
Definition graph.h:1278
int minNodeEccentricity
Definition graph.h:1342
void vertexLabelColorInit(QString color)
Graph::vertexLabelColorInit Changes the default vertex label color.
Definition graph_vertex_style.cpp:552
bool calculatedAdjacencyMatrix
Definition graph.h:1375
int vertexIndexByNumber(int v) const
Returns the index of a vertex by its number.
Definition graph_vertices.cpp:302
int getSelectedVerticesMax() const
Returns max of user-selected vertices.
Definition graph_selection.cpp:92
qreal nomPRC
Definition graph.h:1329
bool isModified() const
Returns true of graph is modified (edges/vertices added/removed)
Definition graph_metadata.cpp:231
H_StrToInt discreteBCs
Definition graph.h:1292
void signalProgressBoxKill(const int max=0)
void ssspComponentReset(int value=1)
Definition graph_distance_cache.cpp:315
void vertexLabelSet(const int &v, const QString &label)
Changes the label of a vertex v1.
Definition graph_vertex_style.cpp:434
ChartType m_reportsChartType
Definition graph.h:1299
QThread * getThread() const
Definition graph_ui_facade.cpp:20
void addToDistanceSum(qreal delta)
Definition graph_distance_cache.cpp:374
bool writeMatrixDissimilarities(const QString fileName, const QString &metricStr, const QString &varLocation, const bool &diagonal, const bool &considerWeights)
Writes dissimilarity matrix based on a metric/measure to given html file.
Definition graph_reports.cpp:4887
QString htmlEscaped(QString str) const
Helper method, returns a nice qstring where all html special chars are encoded.
Definition graph_type_strings.cpp:262
bool ssspStackEmpty() const
Definition graph_distance_cache.cpp:260
int classesSDC
Definition graph.h:1335
int initVertexSize
Definition graph.h:1353
QList< QString > m_relationsList
Definition graph.h:1257
int getSelectedEdgesCount() const
Returns the count of user-selected edges.
Definition graph_selection.cpp:116
void edgeTypeSet(const int &v1, const int &v2, const qreal &w, const int &dirType=EdgeType::Directed)
Changes the direction type of an existing edge.
Definition graph_edges.cpp:636
void vertexRemoveDummyNode(int)
Deletes a dummy node.
Definition graph_vertices.cpp:282
H_f_i::const_iterator ssspNthOrderBegin() const
Definition graph_distance_cache.cpp:290
bool progressCanceled() const
Returns true if the user has requested cancellation via the progress dialog.
Definition graph_ui_facade.cpp:76
qreal m_graphDensity
Definition graph.h:1359
int m_graphReciprocityPairsReciprocated
Definition graph.h:1365
bool randomNetSmallWorldCreate(const int &N, const int &degree, const double &beta, const QString &mode)
Creates a Watts–Strogatz small-world random network.
Definition graph_random_networks.cpp:382
bool vertexFindByIndexScore(const int &index, const QStringList &thresholds, const bool &considerWeights, const bool &inverseWeights=false, const bool &dropIsolates=false)
Finds vertices by their index score.
Definition graph_vertices.cpp:868
qreal meanSCC
Definition graph.h:1307
int walksBetween(int v1, int v2, int length)
Calculates and returns the number of walks of a given length between v1 and v2.
Definition graph_reachability_walks.cpp:116
qreal edgeExists(const int &v1, const int &v2, const bool &checkReciprocal=false)
Checks if there is an edge from v1 to v2 and returns the weight, if the edge exists.
Definition graph_edges.cpp:437
QList< int > m_verticesList
Definition graph.h:1263
qreal nomSBC
Definition graph.h:1323
QString initVertexLabelColor
Definition graph.h:1389
void webSpider()
A loop, that takes urls awaiting in front of the urlQueue, and signals to the MW to make the network ...
Definition graph_crawler.cpp:178
int maxNodeSCC
Definition graph.h:1336
QMultiHash< int, int > influenceDomains
Definition graph.h:1272
void resetDistanceCentralityCacheFlags()
Definition graph_distance_cache.cpp:354
qreal meanSBC
Definition graph.h:1309
void addRelationSymmetricStrongTies(const bool &allRelations=false)
Creates a new symmetric relation by keeping only strong-ties (mutual links) in the current relation....
Definition graph_relations.cpp:277
QString vertexShapeIconPath(const int &v)
Returns the IconPath of vertex v1.
Definition graph_vertex_style.cpp:153
int classesEccentricity
Definition graph.h:1342
QList< int > getSelectedVertices() const
Returns a QList of user-selected vertices.
Definition graph_selection.cpp:59
void signalGraphModified(const bool &undirected, const int &vertices, const int &edges, const qreal &density, const bool &notSaved=true)
QPointF vertexPos(const int &v1) const
Returns the position of the given vertex.
Definition graph_vertices.cpp:1200
qreal varianceSBC
Definition graph.h:1309
int classesEC
Definition graph.h:1341
void statusMessage(const QString &message)
void createMatrixSimilarityPearson(Matrix &AM, Matrix &PCC, const QString &varLocation="Rows", const bool &diagonal=false)
The Pearson product-moment correlation coefficient (PPMCC, PCC or Pearson's r) is a measure of the li...
Definition graph_similarity_matrices.cpp:102
void createMatrixSimilarityMatching(Matrix &AM, Matrix &SEM, const int &measure=METRIC_SIMPLE_MATCHING, const QString &varLocation="Rows", const bool &diagonal=false, const bool &considerWeights=true)
Calls Matrix:similarityMatrix to compute the similarity matrix SCM of the variables (rows,...
Definition graph_similarity_matrices.cpp:56
void setModStatus(const int &graphNewStatus, const bool &signalMW=true)
Sets the graph modification status.
Definition graph_metadata.cpp:113
QString m_graphName
Definition graph.h:1388
int maxNodeSBC
Definition graph.h:1338
qreal graphDensity()
Gets the graph density (if computed) or computes it again.
Definition graph_structure_metrics.cpp:89
void vertexShapeSet(const int &v, const QString &shape, const QString &iconPath=QString())
Changes the shape and iconPath of vertex v1, or all vertices if v1=-1.
Definition graph_vertex_style.cpp:105
Matrix XRM
Definition graph.h:1287
int initVertexLabelDistance
Definition graph.h:1355
void vertexSizeInit(const int)
Sets the initial vertex size.
Definition graph_vertex_style.cpp:30
void edgeLabelsVisibilitySet(const bool &toggle)
Toggles the visibility of edge labels.
Definition graph_edge_style.cpp:176
int maxNodeSPC
Definition graph.h:1339
bool order
Definition graph.h:1356
bool writeCentralityCloseness(const QString, const bool weights, const bool inverseWeights, const bool dropIsolates)
Writes the closeness centralities to a file.
Definition graph_reports.cpp:1289
QList< int > m_verticesSelected
Definition graph.h:1266
qreal denomEVC
Definition graph.h:1328
bool initEdgeWeightNumbers
Definition graph.h:1357
void setNodePos(const int &, const qreal &, const qreal &)
void edgeWeightSet(const int &v1, const int &v2, const qreal &w, const bool &undirected=false)
Changes the weight of the edge from vertex v1 to v2 (and optionally of the reverse edge)
Definition graph_edges.cpp:603
void setConnectedCached(bool v)
Definition graph_distance_cache.cpp:363
qreal maxSBC
Definition graph.h:1323
qreal maxIndexBC
Definition graph.h:1323
bool calculatedGraphSymmetry
Definition graph.h:1381
bool randomNetErdosCreate(const int &N, const QString &model, const int &m, const qreal &p, const QString &mode, const bool &diag)
Creates an Erdős–Rényi random network.
Definition graph_random_networks.cpp:46
void signalGraphLoaded(const int &fileType, const QString &fileName=QString(), const QString &netName=QString(), const int &totalNodes=0, const int &totalLinks=0, const qreal &density=0, const qint64 &elapsedTime=0, const QString &message=QString())
void notConnectedPairsClear()
Definition graph_distance_cache.cpp:336
H_StrToInt discreteEVCs
Definition graph.h:1294
int m_totalEdges
Definition graph.h:1353
void signalDrawNode(const QPointF &p, const int &num, const int &size, const QString &nodeShape, const QString &nodeIconPath, const QString &nodeColor, const QString &numberColor, const int &numSize, const int &numDistance, const QString &label, const QString &labelColor, const int &labelSize, const int &labelDistance)
void uiProminenceDistributionSpline(const QVector< QPair< qreal, qreal > > &points, qreal min, qreal max, qreal minF, qreal maxF, const QString &seriesName, const QString &distImageFileName)
Definition graph_ui_prominence_distribution.cpp:34
qreal varianceSPC
Definition graph.h:1312
void writeClusteringHierarchicalResultsToStream(QTextStream &outText, const int N, const bool &dendrogram=false)
Writes Hierarchical Clustering results to given output stream Before running this method,...
Definition graph_reports.cpp:4670
QMap< QString, V_int > m_clustersByName
Definition graph.h:1283
void prestigeDegree(const bool &considerWeights, const bool &dropIsolates=false)
Computes the Degree Prestige (in-degree) of each vertex - diagonal included Also the mean value and t...
Definition graph_prestige.cpp:25
qreal varianceEC
Definition graph.h:1311
QList< int > vertexinfluenceDomain(int v2)
Returns the influence domain of vertex v1, namely the set of nodes who can reach v1 The Influence Dom...
Definition graph_reachability_walks.cpp:291
bool isFileFormatExportSupported(const int &fileFormat) const
Returns true if the fileFormat is supported for saving.
Definition graph_metadata.cpp:96
qreal nomEC
Definition graph.h:1326
void vertexLabelSizeSet(const int &v, const int &labelSize)
Changes the label size of vertex v1 or all vertices if v1=0.
Definition graph_vertex_style.cpp:470
qreal minEC
Definition graph.h:1326
QString htmlHead
Definition graph.h:1391
~Graph()
Destroys the Graph object.
Definition graph.cpp:250
qreal minSCC
Definition graph.h:1321
int minNodeIRCC
Definition graph.h:1337
qreal sumIRCC
Definition graph.h:1322
void vertexLabelDistanceSet(const int &v, const int &newDistance)
Changes the distance.of vertex v label from the vertex.
Definition graph_vertex_style.cpp:562
int graphDiameter(const bool considerWeights, const bool inverseWeights)
Returns the diameter of the graph, aka the largest geodesic distance between any two vertices.
Definition graph_distance_facade.cpp:46
H_StrToInt discreteCCs
Definition graph.h:1292
void writeReachabilityMatrixPlainText(const QString &fn, const bool &dropIsolates=false)
Definition graph_reports.cpp:3739
void dijkstra(const int &s, const int &si, const bool &computeCentralities=false, const bool &inverseWeights=false, const bool &dropIsolates=false)
qreal numberOfTriples(int v1)
Definition graph_reachability_walks.cpp:348
int vertexEdgesInbound(int i)
Returns the number of inbound edges (arcs) to vertex v1.
Definition graph_edges.cpp:585
qreal denomSBC
Definition graph.h:1323
void setNodeNumberColor(const int &v, const QString &color)
qreal maxEVC
Definition graph.h:1328
bool saveToDotFormat(QString fileName)
TODO Saves the active graph to a UCINET-formatted file.
Definition graph_io.cpp:557
void prestigeProximity(const bool considerWeights=false, const bool inverseWeights=false, const bool dropIsolates=false)
Computes Proximity Prestige of each vertex Also the mean value and the variance of it....
Definition graph_prestige.cpp:213
Matrix AM
Definition graph.h:1286
void signalWebCrawlParse(QNetworkReply *reply)
int m_graphModStatus
Definition graph.h:1351
void randomizeThings()
Adds a little universal randomness :)
Definition graph_random_networks.cpp:22
bool calculatedGraphWeighted
Definition graph.h:1382
int relationCurrent()
Gets the current relation number.
Definition graph_relations.cpp:178
qreal minIRCC
Definition graph.h:1322
void setDirected(const bool &toggle=true, const bool &signalMW=true)
Toggles the graph directed or undirected.
Definition graph_state_flags.cpp:190
QHash< QString, QString > vertexCustomAttributes(const int &v1) const
Calls the customAttributes method for a specific vertex in the graph.
Definition graph_vertex_style.cpp:217
qreal maxSSC
Definition graph.h:1325
qreal maxSDP
Definition graph.h:1319
bool isUndirected()
Returns true if graph is undirected.
Definition graph_state_flags.cpp:287
qreal groupEVC
Definition graph.h:1328
void graphDistancesGeodesic(const bool &computeCentralities=false, const bool &considerWeights=false, const bool &inverseWeights=true, const bool &dropIsolates=false)
Computes the geodesic distances between all vertices: In the process, it also computes many other cen...
Definition graph_distance_cache.cpp:237
void setSymmetric()
Transforms the graph to symmetric (all edges reciprocal)
Definition graph_state_flags.cpp:141
int classesSDP
Definition graph.h:1334
void ssspNthOrderIncrement(int dist)
Definition graph_distance_cache.cpp:303
qreal varianceSCC
Definition graph.h:1307
qreal graphGeodesicsCountCached() const
Returns the number of geodesics (shortest paths) accumulated by DistanceEngine, without recalculating...
Definition graph_distance_facade.cpp:156
int m_fieldWidth
Definition graph.h:1301
Matrix SIGMA
Definition graph.h:1286
int maxNodePP
Definition graph.h:1345
void vertexLabelSizeInit(int newSize)
Graph::vertexLabelSizeInit Changes the default size of vertex labels.
Definition graph_vertex_style.cpp:460
qreal varianceIC
Definition graph.h:1313
QMultiMap< int, L_int > m_cliques
Definition graph.h:1277
H_f_i::const_iterator ssspNthOrderEnd() const
Definition graph_distance_cache.cpp:295
qreal edgeExistsVirtual(const int &v1, const int &v2)
Checks if there is an edge from v1 to v2, even weight = 0 and returns the weight, if the edge exists ...
Definition graph_edges.cpp:470
int m_crawler_max_urls
Definition graph.h:1254
void layoutForceDirectedFruchtermanReingold(const int maxIterations)
Embeds a Force Directed Placement layout according to the Fruchterman-Reingold model....
Definition graph_layouts_force.cpp:252
qreal sumSBC
Definition graph.h:1323
bool calculatedDP
Definition graph.h:1378
void setReportsDataDir(const QString &reportsDir)
Sets the directory where reports are saved This is used when exporting prominence distribution images...
Definition graph_reports_settings.cpp:26
H_Int vpos
Definition graph.h:1180
int verticesWithInboundEdges()
Returns the sum of vertices having edgesInbound.
Definition graph_structure_metrics.cpp:126
Matrix WM
Definition graph.h:1286
bool isEmpty() const
Returns true if the current graph has no vertices at all.
Definition graph_vertices.cpp:701
QSet< int > vertexNeighborhoodSet(const int &v1)
Returns the set of all vertices mutually connected to vertex v1 in the current relation.
Definition graph_structure_metrics.cpp:59
qreal graphDistanceGeodesicAverage(const bool considerWeights, const bool inverseWeights, const bool dropIsolates)
Returns the average distance of the graph.
Definition graph_distance_facade.cpp:61
void layoutForceDirected_FR_moveNodes(const qreal &temperature)
Moves all vertices to their new positions as computed by the Fruchterman-Reingold model.
Definition graph_layouts_force.cpp:1162
void setReportsChartType(const int &type)
Sets the chart type in reports.
Definition graph_reports_settings.cpp:54
qreal varianceEVC
Definition graph.h:1314
qreal canvasMinDimension() const
Gets the min dimensions of the canvas.
Definition graph_canvas.cpp:69
bool m_graphIsDirected
Definition graph.h:1384
bool calculatedDistances
Definition graph.h:1375
int verticesWithOutboundEdges()
Returns the sum of vertices having edgesOutbound.
Definition graph_structure_metrics.cpp:117
QList< int > verticesList()
Returns a list of all vertices numbers inside the graph.
Definition graph_vertices.cpp:377
void setReportsLabelLength(const int &length)
Sets the length of labels in reports.
Definition graph_reports_settings.cpp:45
void setWeighted(const bool &toggle=true)
Sets the graph to be weighted ( valued edges ).
Definition graph_state_flags.cpp:72
void vertexFilterByCentrality(const float threshold, const bool overThreshold, const IndexType centralityIndex)
Filters vertices by their score on the given centrality or prestige index.
Definition graph_node_filters.cpp:50
bool writePrestigePageRank(const QString, const bool Isolates=false)
Writes the PageRank scores of vertices to a file.
Definition graph_reports.cpp:3372
Matrix sumM
Definition graph.h:1286
void notConnectedPairsInsert(int from, int to)
Definition graph_distance_cache.cpp:341
void vertexLabelDistanceAllSet(const int &newDistance)
Changes the distance of all vertex labels from their vertices.
Definition graph_vertex_style.cpp:574
void graphClickedEmptySpace(const QPointF &p)
Resets the clicked edge and node.
Definition graph_selection.cpp:26
qreal maxSDC
Definition graph.h:1320
bool writeClusteringHierarchical(const QString &fileName, const QString &varLocation, const QString &matrix="Adjacency", const QString &metric="Manhattan", const QString &method="Complete", const bool &diagonal=false, const bool &dendrogram=false, const bool &considerWeights=true, const bool &inverseWeights=false, const bool &dropIsolates=false)
Performs Hierarchical Cluster Analysis (HCA) and writes the results to an HTML report file.
Definition graph_reports.cpp:4472
double canvasRandomX() const
Returns a random x-coordinate adjusted to be visible inside the canvas usable area.
Definition graph_canvas.cpp:98
void loadFile(const QString fileName, const QString codecName, const int format, const QString delimiter=QString(), const int sm_two_mode=1, const bool sm_has_labels=false)
Loads a graph from a given file.
Definition graph_io.cpp:42
bool isLoaded() const
Returns true if a graph has been loaded from a file.
Definition graph_metadata.cpp:246
void vertexNumberDistanceSet(const int &v, const int &newDistance)
Changes the distance.of vertex v number from the vertex.
Definition graph_vertex_style.cpp:391
QString initEdgeColor
Definition graph.h:1388
qreal m_graphGeodesicsCount
Definition graph.h:1358
QList< int > triadTypeFreqs
Definition graph.h:1261
bool isWeighted()
Returns true if the graph is weighted (valued), i.e. if any e in |E| has value not 0 or 1 Complexity:...
Definition graph_state_flags.cpp:25
qreal groupSBC
Definition graph.h:1323
void edgeOutboundStatusSet(const int &source, const int &target, const bool &toggle=false)
Toggles the status of outbound edge source -> target at source vertex.
Definition graph_edges.cpp:341
void vertexRemove(const int &v1)
Removes the vertex v1 from the graph First, it removes all edges to doomed from other vertices Then i...
Definition graph_vertices.cpp:200
int graphMetricStrToType(const QString &metricStr) const
Helper method, return the identifier of a metric.
Definition graph_type_strings.cpp:186
bool randomNetRegularCreate(const int &N, const int &degree, const QString &mode, const bool &diag)
Creates a pseudo-random d-regular network.
Definition graph_random_networks.cpp:477
Matrix invAM
Definition graph.h:1286
QString edgeLabel(const int &v1, const int &v2) const
Returns the label of edge v1->v2.
Definition graph_edge_style.cpp:167
void signalNodeClickedInfo(const int &number=0, const QPointF &p=QPointF(), const QString &label=QString(), const int &inDegree=0, const int &outDegree=0)
bool saveToAdjacencyFormat(const QString &fileName, const bool &saveEdgeWeights=true)
Saves the active graph to an adjacency-formatted file.
Definition graph_io.cpp:520
qreal graphReciprocity()
Gets the arc reciprocity of the graph.
Definition graph_structure_metrics.cpp:147
VList m_graph
Definition graph.h:1246
void centralityEigenvector(const bool &considerWeights=false, const bool &inverseWeights=false, const bool &dropIsolates=false)
Computes Eigenvector centrality.
Definition graph_centrality.cpp:225
qreal meanSPC
Definition graph.h:1312
void vertexCreateAtPosRandom(const bool &signalMW=false)
Creates a new randomly positioned vertex with default values.
Definition graph_vertices.cpp:152
qreal m_graphReciprocityArc
Definition graph.h:1361
void progressCreate(int max, const QString &msg)
Emits a signal to create a progress box in the UI with the given maximum value and message.
Definition graph_ui_facade.cpp:52
void setNodeLabel(const int &v, const QString &label)
void layoutVertexSizeByIndegree()
Convenience method Changes the size of all nodes to be proportional to their InDegree (Degree Prestig...
Definition graph_layouts_basic.cpp:217
qreal m_graphSumDistance
Definition graph.h:1360
void vertexCreate(const int &number, const int &size, const QString &color, const QString &numColor, const int &numSize, const QString &label, const QString &labelColor, const int &labelSize, const QPointF &p, const QString &shape, const QString &iconPath=QString(), const bool &signalMW=false, const QHash< QString, QString > &customAttributes=QHash< QString, QString >())
Creates a new vertex.
Definition graph_vertices.cpp:42
bool writeMatrix(const QString &fileName, const int &matrix=MATRIX_ADJACENCY, const bool &considerWeights=true, const bool &inverseWeights=false, const bool &dropIsolates=false, const QString &varLocation="Rows", const bool &simpler=false)
Computes and writes the specified matrix of the social network to an HTML report file.
Definition graph_reports.cpp:5724
void setEdgeColor(const int &v1, const int &v2, const QString &color)
void prominenceDistributionBars(const H_StrToInt &discreteClasses, const QString &name, const QString &distImageFileName)
Computes the prominence distribution and delegates Bar chart rendering.
Definition graph_prominence_distribution.cpp:372
qreal d_factor
Definition graph.h:1332
qreal layoutForceDirected_F_att(const QString model, const qreal &dist, const qreal &optimalDistance)
Computes the attractive (spring) force between two adjacent vertices.
Definition graph_layouts_force.cpp:908
QString vertexShape(const int &v)
Returns the shape of this vertex.
Definition graph_vertex_style.cpp:143
H_StrToInt discreteECs
Definition graph.h:1293
int inboundEdgesVert
Definition graph.h:1370
void signalDatasetDescription(QString)
qreal maxIndexSC
Definition graph.h:1325
QSet< int > verticesSet()
Returns a QSet of all vertices numbers inside the graph.
Definition graph_vertices.cpp:400
void setAverageDistanceCached(qreal v)
Definition graph_distance_cache.cpp:376
void vertexCustomAttributesSet(const int &v1, const QHash< QString, QString > &customAttributes)
Sets custom attributes for a specified vertex.
Definition graph_vertex_style.cpp:616
qreal computeOptimalDistance(const int &V)
Computes the optimal inter-vertex distance for force-directed layouts.
Definition graph_layouts_force.cpp:881
int minNodeSDC
Definition graph.h:1335
QString initVertexIconPath
Definition graph.h:1390
H_StrToInt discreteSCs
Definition graph.h:1292
void relationSet(int relNum=RAND_MAX, const bool &updateUI=true)
Changes the current relation, and optionally emits signals to MW/GW (default: true)
Definition graph_relations.cpp:32
qreal meanSSC
Definition graph.h:1310
bool isCentralityIndexComputed(const IndexType index) const
Returns true if the given centrality/prestige index has been computed.
Definition graph_centrality.cpp:740
int m_graphReciprocityTiesReciprocated
Definition graph.h:1362
qreal graphSumDistanceCached() const
Returns the sum of all finite geodesic distances accumulated by DistanceEngine, without recalculating...
Definition graph_distance_facade.cpp:147
void vertexColorSet(const int &v, const QString &color)
Changes the color of vertex v1.
Definition graph_vertex_style.cpp:230
qreal minCLC
Definition graph.h:1332
VList::const_iterator verticesBegin() const
iterator helpers
Definition graph_vertices.cpp:334
void setReportsRealNumberPrecision(const int &precision)
Sets the precision (number of fraction digits) the app will use when writing real numbers in reports.
Definition graph_reports_settings.cpp:36
void vertexNumberColorInit(const QString &color)
Changes the initial color of the vertex numbers.
Definition graph_vertex_style.cpp:290
void edgeCreateWebCrawler(const int &source, const int &target)
Called from WebCrawler when it finds an new link Calls edgeCreate() method with initEdgeColor.
Definition graph_edges.cpp:235
void vertexClickedSet(const int &v, const QPointF &p)
Sets the clicked vertex.
Definition graph_selection.cpp:129
void slotCancelComputation()
Slot called by MainWindow when the user clicks Cancel in the progress dialog.
Definition graph_ui_facade.cpp:84
void edgeFilterByWeight(const qreal, const bool)
Filters (disables) edges according the specified threshold weight.
Definition graph_edge_filters.cpp:27
qreal nomEVC
Definition graph.h:1328
qreal denomIRCC
Definition graph.h:1322
double canvasRandomY() const
Returns a random y-coordinate adjusted to be visible inside the canvas usable area.
Definition graph_canvas.cpp:108
QList< int > verticesListIsolated()
Returns a list of all isolated vertices inside the graph.
Definition graph_vertices.cpp:343
void saveToFile(const QString &fileName, const int &fileType, const bool &saveEdgeWeights=true, const bool &saveZeroWeightEdges=false)
Saves the current graph to a file.
Definition graph_io.cpp:217
QString graphClusteringMethodTypeToString(const int &methodType) const
Helper method, return the human readable name of clustering method type.
Definition graph_type_strings.cpp:214
qreal layoutForceDirected_FR_temperature(const int iteration) const
Reduces the temperature as the layout approaches a better configuration.
Definition graph_layouts_force.cpp:821
int m_crawler_visited_urls
Definition graph.h:1255
int classesIC
Definition graph.h:1343
ModStatus
Definition graph.h:372
@ EdgeMetadata
Definition graph.h:377
@ SavedUnchanged
Definition graph.h:374
@ MinorOptions
Definition graph.h:375
@ VertexPositions
Definition graph.h:378
@ VertexEdgeCount
Definition graph.h:382
@ VertexCount
Definition graph.h:380
@ NewNet
Definition graph.h:373
@ EdgeCount
Definition graph.h:381
@ VertexMetadata
Definition graph.h:376
@ MajorChanges
Definition graph.h:379
bool calculatedIRCC
Definition graph.h:1379
bool writeCentralityPower(const QString, const bool weigths, const bool inverseWeights, const bool dropIsolates)
Writes Power Centralities to a file.
Definition graph_reports.cpp:2574
bool m_graphHasVertexCustomIcons
Definition graph.h:1368
stack< int > Stack
Definition graph.h:1289
void vertexNumberSizeInit(const int &size)
Changes the initial size of vertex numbers.
Definition graph_vertex_style.cpp:334
bool graphHasVertexCustomIcons() const
Returns true if at least one vertex has a 'custom' shape (therefore a custom icon).
Definition graph_vertex_style.cpp:162
void layoutRandom()
Repositions all nodes on random positions Emits setNodePos(i, x,y) to tell GW that the node item shou...
Definition graph_layouts_basic.cpp:29
void ssspStackPush(int v)
Definition graph_distance_cache.cpp:280
H_StrToInt discreteICs
Definition graph.h:1294
qreal meanSDC
Definition graph.h:1306
void addGuideCircle(const double &, const double &, const double &)
QString initVertexColor
Definition graph.h:1388
int ssspNthOrderValue(qreal dist) const
Definition graph_distance_cache.cpp:299
QDateTime actualDateTime
Definition graph.h:1393
bool calculatedCentralities
Definition graph.h:1375
void signalGraphSavedStatus(const int &status)
qreal maxCLC
Definition graph.h:1332
qreal graphDistanceEuclidean(const QPointF &a, const QPointF &b)
Computes the euclideian distance between QPointF a and b.
Definition graph_layouts_force.cpp:1044
bool m_graphIsConnected
Definition graph.h:1384
bool calculatedTriad
Definition graph.h:1380
qreal groupPP
Definition graph.h:1330
Clustering
Definition graph.h:386
@ Single_Linkage
Definition graph.h:387
@ Complete_Linkage
Definition graph.h:388
@ Average_Linkage
Definition graph.h:389
bool graphTriadCensus()
Conducts a triad census and updates QList::triadTypeFreqs, which is the list carrying all triad type ...
Definition graph_triad_census.cpp:25
void edgeRemove(const int &v1, const int &v2, const bool &removeReverse=false)
Removes the directed arc v1->v2 or, if the graph is undirected, the edge v1 <->v2.
Definition graph_edges.cpp:369
QString edgeColor(const int &v1, const int &v2)
Returns the color of the directed edge v1->v2.
Definition graph_edge_style.cpp:136
int classesSBC
Definition graph.h:1338
void graphDichotomization(const qreal threshold)
Creates a new binary relation in a valued network using edge dichotomization according to the thresho...
Definition graph_structure_metrics.cpp:283
Matrix DM
Definition graph.h:1286
bool isConnected()
Checks if the graph is connected, in the sense of a topological space, i.e., there is a path from any...
Definition graph_distance_facade.cpp:97
void relationCurrentRename(const QString &newName)
Overload. Renames current relation to newName, without emitting any signal to MW.
Definition graph_relations.cpp:242
qreal groupSPC
Definition graph.h:1324
int maxNodeEccentricity
Definition graph.h:1342
int m_fileFormat
Definition graph.h:1301
bool randomNetScaleFreeCreate(const int &N, const int &power, const int &m0, const int &m, const qreal &alpha, const QString &mode)
Creates a Barabási–Albert scale-free random network.
Definition graph_random_networks.cpp:203
qreal varianceSSC
Definition graph.h:1310
qreal maxSCC
Definition graph.h:1321
void edgeRemoveSelected(SelectedEdge &selectedEdge, const bool &removeReverse)
Removes a SelectedEdge.
Definition graph_edges.cpp:402
void startWebCrawler(const QUrl &startUrl, const QStringList &urlPatternsIncluded, const QStringList &urlPatternsExcluded, const QStringList &linkClasses, const int &maxNodes, const int &maxLinksPerPage, const bool &intLinks, const bool &childLinks, const bool &parentLinks, const bool &selfLinks, const bool &extLinksIncluded, const bool &extLinksCrawl, const bool &socialLinks, const bool &delayedRequests)
Creates a new WebCrawler, that will parse the downloaded HTML code of each webpage we download....
Definition graph_crawler.cpp:65
int outboundEdgesVert
Definition graph.h:1370
QColor vertexColor(const int &v) const
Graph::vertexColor.
Definition graph_vertex_style.cpp:267
bool isConnectedCached() const
Returns true if the graph is connected, without recalculating it.
Definition graph_distance_facade.cpp:138
int graphClusteringMethodStrToType(const QString &method) const
Helper method, return clustering method type from the human readable name of it.
Definition graph_type_strings.cpp:239
qreal groupEC
Definition graph.h:1326
int minNodeSSC
Definition graph.h:1340
void vertexSizeSet(const int &v, const int &newsize)
Changes the size of a vertex v or all vertices if v=0.
Definition graph_vertex_style.cpp:43
int classesPRP
Definition graph.h:1344
int minNodeDP
Definition graph.h:1334
bool vertexFindByNumber(const QStringList &numList)
Finds vertices in strList by their number.
Definition graph_vertices.cpp:765
void signalNodesFound(const QList< int > foundList)
bool initEdgeLabels
Definition graph.h:1357
int getGeodesicsCount()
Returns the number of geodesics (shortest-paths) in the graph.
Definition graph_distance_facade.cpp:82
int classesPP
Definition graph.h:1345
int ssspStackTop() const
Definition graph_distance_cache.cpp:265
qreal sumSPC
Definition graph.h:1324
QString htmlHeadLight
Definition graph.h:1391
void centralityDegree(const bool &considerWeights=true, const bool &dropIsolates=false)
Calculates the degree (outDegree) centrality of each vertex - diagonal included.
Definition graph_centrality.cpp:373
void layoutForceDirectedSpringEmbedder(const int maxIterations)
Embeds a Force Directed Placement layout according to the initial Spring Embedder model proposed by E...
Definition graph_layouts_force.cpp:45
qreal meanSDP
Definition graph.h:1315
bool vertexIsolated(const int &v1) const
Checks if vertex is isolated.
Definition graph_vertices.cpp:1164
bool writePrestigeDegree(const QString, const bool weights, const bool dropIsolates)
Writes the Degree Prestige of each node to a file.
Definition graph_reports.cpp:2852
bool calculatedVertices
Definition graph.h:1374
qreal layoutForceDirected_Eades_moveNodes(const qreal &c4)
Moves all vertices to their new positions as computed by the Eades Spring Embedder model.
Definition graph_layouts_force.cpp:1088
H_StrToInt discreteIRCCs
Definition graph.h:1293
bool calculatedPP
Definition graph.h:1378
void signalProgressBoxUpdate(const int &count=0)
void setNodeColor(const int &v, const QString &color)
int vertexDegreeOut(int)
Returns the outDegree (sum of outbound edge weights) of vertex v1.
Definition graph_structure_metrics.cpp:24
void verticesCreateSubgraph(QList< int > vList, const int &type=SUBGRAPH_CLIQUE, const int &center=0)
Creates a subgraph (clique, star, cycle, line) with vertices in vList Iff vList is empty,...
Definition graph_vertices.cpp:424
void signalPromininenceDistributionChartUpdate(QAbstractSeries *series, QAbstractAxis *axisX=Q_NULLPTR, const qreal &min=0, const qreal &max=0, QAbstractAxis *axisY=Q_NULLPTR, const qreal &minF=0, const qreal &maxF=0)
int graphDiameterCached() const
Returns the number of geodesics (shortest paths) in the graph, without recalculating it.
Definition graph_distance_facade.cpp:129
bool calculatedVerticesSet
Definition graph.h:1374
void relationsClear()
Clears relationships in this Graph.
Definition graph_relations.cpp:261
void writeReciprocity(const QString fileName, const bool considerWeights=false)
Writes reciprocity report to filename.
Definition graph_reports.cpp:31
qreal meanPP
Definition graph.h:1316
void vertexNumberDistanceInit(const int &distance)
Changes the initial distance of vertex numbers.
Definition graph_vertex_style.cpp:381
int minNodeCLC
Definition graph.h:1333
int vertexNumberMax()
Returns the number of the last vertex in the graph.
Definition graph_vertices.cpp:625
qreal meanPRP
Definition graph.h:1317
qreal nomIC
Definition graph.h:1327
double canvasMaxRadius() const
Gets the max radius of the canvas.
Definition graph_canvas.cpp:60
H_StrToInt discretePCs
Definition graph.h:1294
double canvasVisibleX(const double &x) const
Checks if x is visible inside the canvas usable area and if not returns an adjusted x-coordinate.
Definition graph_canvas.cpp:79
int m_graphReciprocityPairsTotal
Definition graph.h:1366
bool calculatedEVC
Definition graph.h:1377
void resetDistanceAggregates()
Definition graph_distance_cache.cpp:366
void graphMatrixShortestPathsCreate(const bool &considerWeights=false, const bool &inverseWeights=true, const bool &dropIsolates=false)
Creates the matrix SIGMA of shortest paths (geodesics) between vertices Each SIGMA(i,...
Definition graph_distance_cache.cpp:30
void edgeInboundStatusSet(const int &target, const int &source, const bool &toggle=false)
Toggles the status of inbound edge target <- source at target vertex.
Definition graph_edges.cpp:354
void edgeRemoveSelectedAll()
Removes all selected edges.
Definition graph_edges.cpp:412
void vertexLabelsVisibilitySet(bool toggle)
QString htmlEnd
Definition graph.h:1391
qreal maxIC
Definition graph.h:1327
void signalRelationRenamedToMW(const QString &newRelName)
void ssspStackClear()
Definition graph_distance_cache.cpp:252
int maxNodePRP
Definition graph.h:1344
void relationNext()
Changes graph to next relation.
Definition graph_relations.cpp:131
int maxNodeIC
Definition graph.h:1343
int maxNodeIRCC
Definition graph.h:1337
qreal meanEVC
Definition graph.h:1314
void relationAdd(const QString &relName, const bool &changeRelation=false)
Adds a new relation to the graph.
Definition graph_relations.cpp:152
int classesIRCC
Definition graph.h:1337
void setFileFormat(const int &fileFormat)
Definition graph_metadata.cpp:85
void writeDataSetToFile(const QString dir, const QString)
Writes a "famous" dataset to the given file Datasets are hardcoded! They are exported in the given fi...
Definition graph_reports.cpp:5369
bool writeCentralityEigenvector(const QString, const bool &weigths=true, const bool &inverseWeights=false, const bool &dropIsolates=false)
Writes the eigenvector centralities to a file.
Definition graph_reports.cpp:743
bool calculatedEdges
Definition graph.h:1373
bool calculatedDC
Definition graph.h:1378
int maxNodeCLC
Definition graph.h:1333
void vertexNumberSizeSet(const int &v, const int &newsize)
Changes the size of vertex v number.
Definition graph_vertex_style.cpp:344
void layoutCircular(const double &x0, const double &y0, const double &newRadius, const bool &guides=false)
Repositions all nodes on the periphery of a circle with given radius.
Definition graph_layouts_basic.cpp:154
qreal groupSC
Definition graph.h:1325
qreal sumSDC
Definition graph.h:1320
QList< qreal > m_clusteringLevel
Definition graph.h:1280
void setSelectionChanged(const QList< int > selectedVertices, const QList< SelectedEdge > selectedEdges)
Sets the user-selected vertices and edges.
Definition graph_selection.cpp:43
bool calculatedIsolates
Definition graph.h:1376
int minNodeSPC
Definition graph.h:1339
qreal minSDC
Definition graph.h:1320
int vertexNumberMin()
Returns the number of the first vertex in the graph.
Definition graph_vertices.cpp:638
void clear(const QString &reason="")
Clears all vertices.
Definition graph.cpp:261
void centralityInformation(const bool considerWeights=false, const bool inverseWeights=false)
Computes the Information centrality of each vertex - diagonal included Note that there is no known ge...
Definition graph_centrality.cpp:26
qreal nomSCC
Definition graph.h:1321
void vertexIsolatedAllToggle(const bool &toggle)
Toggles the status of all isolated vertices (those without links)
Definition graph_vertices.cpp:1135
void progressUpdate(int value)
Emits a signal to update the progress box in the UI with the given value.
Definition graph_ui_facade.cpp:61
void layoutByProminenceIndex(int prominenceIndex, int layoutType, const bool &considerWeights=false, const bool &inverseWeights=false, const bool &dropIsolates=false)
Applies a layout according to each actor's prominence index score. The layout type can be radial (0),...
Definition graph_layouts_basic.cpp:236
GraphVertex * vertexPtr(const int v)
Definition graph_vertices.cpp:1205
qreal sumDP
Definition graph.h:1319
void edgeColorSet(const int &v1, const int &v2, const QString &color)
Changes the color of edge v1->v2.
Definition graph_edge_style.cpp:114
bool edgeCreate(const int &v1, const int &v2, const qreal &weight, const QString &color, const int &type=0, const bool &drawArrows=true, const bool &bezier=false, const QString &label=QString(), const bool &signalMW=true)
Checks if edge (v1,v2) already exists, then creates it and signals the UI to draw it.
Definition graph_edges.cpp:73
void setNodeNumberSize(const int &v, const int &size)
void edgeFilterByRelation(int relation, bool status)
Toggles (enables or disables) all edges of the given relation.
Definition graph_edge_filters.cpp:153
qreal sizeOfComponent
Definition graph.h:1347
qreal averageCLC
Definition graph.h:1332
QString getName() const
Returns the name of the current graph.
Definition graph_metadata.cpp:27
int graphCliquesOfSize(const int &size)
Graph::graphCliquesOfSize Returns the number of maximal cliques of a given size.
Definition graph_cliques.cpp:281
qreal groupDC
Definition graph.h:1320
bool isDirected()
Returns true if graph is directed.
Definition graph_state_flags.cpp:276
qreal minPP
Definition graph.h:1330
qreal varianceCLC
Definition graph.h:1332
Parser * file_parser
Definition graph.h:1248
QList< int > vertexinfluenceRange(int v1)
Returns the influence range of vertex v1, namely the set of nodes who are reachable from v1 (See Wass...
Definition graph_reachability_walks.cpp:228
Definition matrix.h:115
Lightweight value type representing a directed or undirected edge.
Definition global.h:224
Defines a class for network file loading and parsing.
Definition parser.h:68
The WebCrawler class Parses HTML code it receives, locates urls inside it and puts them into a url qu...
Definition webcrawler.h:34
Global definitions, constants, enumerations, and utility types for SocNetV.
NetworkRequestType
Identifies the purpose of an outgoing network request.
Definition global.h:150
IndexType
Centrality / prestige index identifiers.
Definition global.h:118
static const int SUBGRAPH_CLIQUE
Definition global.h:171
static const int MATRIX_ADJACENCY
Definition global.h:180
@ Directed
Definition global.h:108
ChartType
Chart style for prominence distribution visualizations.
Definition global.h:138
QPair< int, int > SelectedEdge
Identifies a selected edge by its two endpoint vertex numbers.
Definition global.h:217
#define SOCNETV_USE_NAMESPACE
Definition global.h:28
QHash< int, int > H_Int
Definition graph.h:53
QList< QString > V_str
Definition graph.h:61
QList< int > L_int
Definition graph.h:59
QPair< int, pair_f_b > pair_i_fb
Definition graph.h:56
QHash< QString, bool > H_StrToBool
Definition graph.h:58
QHash< qreal, int > H_f_i
Definition graph.h:54
QList< GraphVertex * > VList
Definition graph.h:51
QMultiHash< int, pair_i_fb > H_edges
Definition graph.h:57
QList< int > V_int
Definition graph.h:60
QPair< qreal, bool > pair_f_b
Definition graph.h:55
QHash< QString, int > H_StrToInt
Definition graph.h:52
Declares the GraphVertex class for representing and managing vertices in the network graph structure.
Declares the Matrix class for handling adjacency and sociomatrix data structures in network analysis.
static const int METRIC_SIMPLE_MATCHING
Definition matrix.h:38
Declares the Parser class for reading and interpreting various network data formats,...