Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
graph.h
Go to the documentation of this file.
1
15
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#include <QStack>
29
30
31#include "global.h"
35#include "graphvertex.h"
36#include "matrix.h"
37#include "parser.h"
38#include "webcrawler.h"
39
40class QDateTime;
41class QPointF;
42class QNetworkReply;
43class QUrl;
44class QAbstractSeries;
45class QAbstractAxis;
46
47using namespace std;
48
50class Chart;
51
52typedef QList<GraphVertex *> VList;
53typedef QHash<QString, int> H_StrToInt;
54typedef QHash<int, int> H_Int;
55typedef QHash<qreal, int> H_f_i;
56typedef QPair<qreal, bool> pair_f_b;
57typedef QPair<int, pair_f_b> pair_i_fb;
58typedef QMultiHash<int, pair_i_fb> H_edges;
59typedef QHash<QString, bool> H_StrToBool;
60typedef QList<int> L_int;
61typedef QList<int> V_int;
62typedef QList<QString> V_str;
63
72class Graph : public QObject
73{
74 Q_OBJECT
77
78 friend class DistanceEngine;
79
80public slots:
81 // ============================================================================
82 // LEGACY/INTERNAL (UI / IO WIRING)
83 // ----------------------------------------------------------------------------
84 // NOTE (WS2/F0):
85 // Slots are part of Graph's coordinator role (signals/threads/UI wiring).
86 // Engines/services should not depend on these directly.
87 // ============================================================================
88
89 int relationCurrent();
90
91 QString relationCurrentName() const;
92
93 void relationCurrentRename(const QString &newName);
94 void relationCurrentRename(const QString &newName, const bool &signalMW);
95
97 void vertexCreate(const int &number,
98 const int &size,
99 const QString &color,
100 const QString &numColor,
101 const int &numSize,
102 const QString &label,
103 const QString &labelColor,
104 const int &labelSize,
105 const QPointF &p,
106 const QString &shape,
107 const QString &iconPath = QString(),
108 const bool &signalMW = false,
109 const QHash<QString, QString> &customAttributes = QHash<QString, QString>());
110
111 void graphFileLoaded(const int &fileType,
112 const QString &fName = QString(),
113 const QString &netName = QString(),
114 const int &totalNodes = 0,
115 const int &totalLinks = 0,
116 const int &edgeDirType = 0,
117 const qint64 &elapsedTime = 0,
118 const QString &message = QString());
119
120 void vertexRemoveDummyNode(int);
121
122 void graphLoadedTerminateParserThreads(QString reason);
123
124 void setSelectionChanged(const QList<int> selectedVertices,
125 const QList<SelectedEdge> selectedEdges);
126
127 void graphClickedEmptySpace(const QPointF &p);
128
130 bool edgeCreate(const int &v1, const int &v2, const qreal &weight,
131 const QString &color,
132 const int &type = 0,
133 const bool &drawArrows = true, const bool &bezier = false,
134 const QString &label = QString(),
135 const bool &signalMW = true,
136 const QHash<QString,QString> &edgeCustomAttributes =
137 QHash<QString,QString>());
138
139 void edgeCreateWebCrawler(const int &source, const int &target);
140
141 // helper vertexCreate functions
142 void vertexCreateAtPos(const QPointF &p);
143
144 void vertexCreateAtPosRandom(const bool &signalMW = false);
145
146 void vertexCreateAtPosRandomWithLabel(const int &i,
147 const QString &label,
148 const bool &signalMW = false);
149
151
152 void relationSet(int relNum = RAND_MAX, const bool &updateUI = true);
153
154 void relationNext();
155
156 void relationPrev();
157
158 void canvasSizeSet(const int &width, const int &height);
159 void canvasSizeSetQuiet(const qreal &width, const qreal &height);
160
161 double canvasMaxRadius() const;
162
163 qreal canvasMinDimension() const;
164
165 double canvasVisibleX(const double &x) const;
166
167 double canvasVisibleY(const double &y) const;
168
169 double canvasRandomX() const;
170
171 double canvasRandomY() const;
172
173 void vertexIsolatedAllToggle(const bool &toggle);
174
175 void vertexClickedSet(const int &v, const QPointF &p);
176
177 void edgeClickedSet(const int &v1, const int &v2, const bool &openMenu = false);
178
179 void vertexFilterByCentrality(const float threshold,
180 const bool overThreshold,
181 const IndexType centralityIndex);
182
183 void vertexFilterByEgoNetwork(const int v1, const int depth = 1);
184 void vertexFilterBySelection(const QList<int> &selectedVertices);
186 void edgeFilterByAttribute(const FilterCondition &cond);
188 void vertexFilterRemoveAt(int stackIndex);
189 QList<FilterSpec> filterSpecList() const;
190 bool visibilityHistoryEmpty() const;
191
192 void vertexFilterByQuery(const GraphQuery &query);
193 void edgeFilterByQuery(const GraphQuery &query);
194
195 void edgeFilterByWeight(const qreal, const bool);
196 void edgeFilterReset();
197
198 void edgeFilterByRelation(int relation, bool status);
199
200 void edgeFilterUnilateral(const bool &toggle);
201
202 Graph *subgraphExtract(const QString &name,
203 const bool &includeCustomAttributes = true);
204
205 Graph *subgraphExtractFromSelection(const QString &name,
206 const bool &includeCustomAttributes = true);
207
208 void startWebCrawler(
209 const QUrl &startUrl,
210 const QStringList &urlPatternsIncluded,
211 const QStringList &urlPatternsExcluded,
212 const QStringList &linkClasses,
213 const int &maxNodes,
214 const int &maxLinksPerPage,
215 const bool &intLinks,
216 const bool &childLinks,
217 const bool &parentLinks,
218 const bool &selfLinks,
219 const bool &extLinksIncluded,
220 const bool &extLinksCrawl,
221 const bool &socialLinks,
222 const bool &delayedRequests);
223
225 void webSpider();
226
228
229 QString htmlEscaped(QString str) const;
230
231signals:
232
233 void signalWebCrawlParse(QNetworkReply *reply);
234
235 // ============================================================================
236 // LEGACY/INTERNAL (UI SIGNAL SURFACE)
237 // ----------------------------------------------------------------------------
238 // NOTE (WS2/F0): Signals are a UI orchestration mechanism. Engines/services
239 // must not emit/call UI-facing behavior directly.
240 // ============================================================================
241
243
244 void signalNetworkManagerRequest(const QUrl &currentUrl, const NetworkRequestType &type);
245
246 void signalProgressBoxCreate(const int max = 0, const QString msg = "Please wait");
247
248 void signalProgressBoxKill(const int max = 0);
249
250 void signalProgressBoxUpdate(const int &count = 0);
251
252 void signalGraphSavedStatus(const int &status);
253
254 void signalGraphModified(const bool &undirected,
255 const int &vertices,
256 const int &edges,
257 const qreal &density,
258 const bool &notSaved = true);
259
260 void signalGraphLoaded(const int &fileType,
261 const QString &fileName = QString(),
262 const QString &netName = QString(),
263 const int &totalNodes = 0,
264 const int &totalLinks = 0,
265 const qreal &density = 0,
266 const qint64 &elapsedTime = 0,
267 const QString &message = QString());
268
269 void statusMessage(const QString &message);
270
272
273 void signalNodeClickedInfo(const int &number = 0,
274 const QPointF &p = QPointF(),
275 const QString &label = QString(),
276 const int &inDegree = 0,
277 const int &outDegree = 0);
278
279 void signalEdgeClicked(const MyEdge &edge = MyEdge(), const bool &openMenu = false);
280
281 void signalRelationAddToMW(const QString &newRelation);
282
284
285 void signalRelationRenamedToMW(const QString &newRelName);
286
288
289 void signalRelationChangedToMW(const int &relIndex = RAND_MAX);
290
291 void signalGraphDirectedChanged(const bool &directed);
292
293 void signalSelectionChanged(const int &selectedVertices,
294 const int &selectedEdges);
295
296 void signalPromininenceDistributionChartUpdate(QAbstractSeries *series,
297 QAbstractAxis *axisX = Q_NULLPTR,
298 const qreal &min = 0,
299 const qreal &max = 0,
300 QAbstractAxis *axisY = Q_NULLPTR,
301 const qreal &minF = 0,
302 const qreal &maxF = 0);
303
305 void signalDrawNode(const QPointF &p,
306 const int &num,
307 const int &size,
308 const QString &nodeShape,
309 const QString &nodeIconPath,
310 const QString &nodeColor,
311 const QString &numberColor, const int &numSize,
312 const int &numDistance,
313 const QString &label,
314 const QString &labelColor, const int &labelSize,
315 const int &labelDistance);
316
317 // signal to GW to erase a node
319
320 // signal GW to draw an edge
321 void signalDrawEdge(const int &v1,
322 const int &v2,
323 const qreal &weight,
324 const QString &label = "",
325 const QString &color = "black",
326 const int &type = 0,
327 const bool &drawArrows = true,
328 const bool &bezier = false,
329 const bool &weightNumbers = false);
330
331 // signal to GW
332 void signalRemoveEdge(const int &v1, const int &v2, const bool &removeReverse);
333
334 void signalSetEdgeVisibility(const int &relation,
335 const int &source,
336 const int &target,
337 const bool &toggle,
338 const bool &preserveReverseEdge = false,
339 const int &edgeWeight = 1,
340 const int &reverseEdgeWeight = 1); // The last two are used only if we need to draw the edge
341
342 void setVertexVisibility(const int &number, const bool &toggle);
343
344 void setNodePos(const int &, const qreal &, const qreal &);
345
346 void signalNodesFound(const QList<int> foundList);
347
348 void setNodeSize(const int &v, const int &size);
349
350 void setNodeShape(const int &v, const QString &shape, const QString &iconPath = QString());
351
352 void setNodeColor(const int &v, const QString &color);
353
354 void setNodeLabel(const int &v, const QString &label);
355
356 void setNodeNumberColor(const int &v, const QString &color);
357
358 void setNodeNumberSize(const int &v, const int &size);
359
360 void setNodeNumberDistance(const int &v, const int &distance);
361
362 void setNodeLabelSize(const int &v, const int &size);
363
364 void setNodeLabelColor(const int &v, const QString &color);
365
366 void setNodeLabelDistance(const int &v, const int &distance);
367
368 void setEdgeWeight(const int &v1, const int &v2, const qreal &weight);
369 void signalEdgeType(const int &v1,
370 const int &v2,
371 const int &type);
372 void setEdgeColor(const int &v1,
373 const int &v2,
374 const QString &color);
375 void setEdgeLabel(const int &v1,
376 const int &v2,
377 const QString &label);
378 void addGuideCircle(const double &, const double &, const double &);
379 void addGuideHLine(const double &y0);
380
381public:
382 // ============================================================================
383 // GRAPH FACADE CONTRACT (WS2 / F0)
384 // ----------------------------------------------------------------------------
385 // This section defines the *supported* API surface that UI and CLI code may
386 // call going forward.
387 //
388 // Rules:
389 // - New UI features MUST use only the "FACADE API (SUPPORTED)" surface.
390 // - Engines/services MUST NOT call UI-oriented slots/signals.
391 // - Anything explicitly marked LEGACY/INTERNAL is not allowed for new code,
392 // even if it remains public for historical reasons.
393 //
394 // ============================================================================
395
409
411 {
412 Single_Linkage = 0, //"single-link" or minimum
413 Complete_Linkage = 1, // "complete-link or maximum
414 Average_Linkage = 2, // mean or "average-linkage" or UPGMA
415
416 };
417
418 // --------------------------------------------------------------------------
419 // FACADE API (SUPPORTED): Visibility snapshot for non-destructive filtering.
420 // Used by the filter system to save/restore vertex and edge visibility state.
421 // Stored as a stack to support future undo/redo.
422 // --------------------------------------------------------------------------
424 {
425 QHash<int, bool> nodeVisible; // vertex number → was enabled
426 QHash<QPair<int, int>, bool> arcVisible; // (source,target)→ was visible
427 bool active = false; // true when this snapshot holds real data
428 FilterSpec spec; // replay descriptor for arbitrary chip removal
429 };
430
431 /* INIT AND CLEAR*/
432 // --------------------------------------------------------------------------
433 // FACADE API (SUPPORTED): Lifecycle
434 // --------------------------------------------------------------------------
435 Graph(const int &reserveVerticesSize = 5000, const int &reserveEdgesPerVertexSize = 500);
436 ~Graph();
437
438 QThread *getThread() const;
439 void moveToThreadFacade(QThread *thread);
440
441 void clear(const QString &reason = "");
442
443 /*FILES (READ AND WRITE)*/
444 // --------------------------------------------------------------------------
445 // FACADE API (SUPPORTED): File identity / load-save
446 // --------------------------------------------------------------------------
447
448 QString getFileName() const;
449
450 void setFileName(const QString &fileName);
451
452 QString getName() const;
453
454 void setName(const QString &graphName);
455
456 bool isSaved() const;
457
458 bool isLoaded() const;
459
460 int getFileFormat() const;
461
462 void setFileFormat(const int &fileFormat);
463
464 bool isFileFormatExportSupported(const int &fileFormat) const;
465
466 void setModStatus(const int &graphNewStatus, const bool &signalMW = true);
467
468 bool isModified() const;
469
470 void loadFile(const QString fileName,
471 const QString codecName,
472 const int format,
473 const QString delimiter = QString(),
474 const int sm_two_mode = 1,
475 const bool sm_has_labels = false);
476
477 void saveToFile(const QString &fileName,
478 const int &fileType,
479 const bool &saveEdgeWeights = true,
480 const bool &saveZeroWeightEdges = false);
481
482 bool saveToPajekFormat(const QString &fileName,
483 QString networkName = "",
484 int maxWidth = 0, int maxHeight = 0);
485
486 bool saveToAdjacencyFormat(const QString &fileName,
487 const bool &saveEdgeWeights = true);
488
489 bool saveToGraphMLFormat(const QString &fileName,
490 const bool &saveZeroWeightEdges = false,
491 QString networkName = "",
492 int maxWidth = 0, int maxHeight = 0);
493
494 bool saveToDotFormat(const QString &fileName);
495
496 bool saveToUCINETDLFormat(const QString &fileName);
497
498 bool saveToEdgeListWeightedFormat(const QString &fileName);
499
500 bool saveToEdgeListSimpleFormat(const QString &fileName);
501
502 QString graphMatrixTypeToString(const int &matrixType) const;
503
504 int graphMatrixStrToType(const QString &matrix) const;
505
506 QString graphMetricTypeToString(const int &metricType) const;
507
508 int graphMetricStrToType(const QString &metricStr) const;
509
510 QString graphClusteringMethodTypeToString(const int &methodType) const;
511
512 int graphClusteringMethodStrToType(const QString &method) const;
513
514 /* RELATIONS */
515 // --------------------------------------------------------------------------
516 // FACADE API (SUPPORTED): Relations
517 // --------------------------------------------------------------------------
518
519 int relations();
520
521 void relationsClear();
522
523 void relationAdd(const QString &relName, const bool &changeRelation = false);
524
525 /* VERTICES */
526 // --------------------------------------------------------------------------
527 // FACADE API (SUPPORTED): Vertex queries + edits
528 // --------------------------------------------------------------------------
529
530 int vertexIndexByNumber(int v) const;
531 // LEGACY/INTERNAL (ENGINE SUPPORT):
532 // Access a vertex by internal storage index (vpos result).
533 // No bounds checks: preserves existing behavior of direct m_graph[idx] usage.
534 GraphVertex *vertexAtIndex(int idx);
535 const GraphVertex *vertexAtIndex(int idx) const;
536
537 VList::const_iterator verticesBegin() const;
538 VList::const_iterator verticesEnd() const;
539
540 int vertexNumberMax();
541
542 int vertexNumberMin();
543
544 int vertexDegreeOut(int);
545
546 int vertexDegreeIn(int);
547
548 QList<int> vertexReciprocalNeighborsList(const int &v1);
549 QSet<int> vertexReciprocalNeighborsSet(const int &v1);
550 QSet<int> vertexOutNeighborsSet(const int &v1, const bool includeInEdges = false);
551
552 bool vertexIsolated(const int &v1) const;
553
554 int vertexExists(const int &v1);
555
556 int vertexExists(const QString &label);
557
558 bool vertexFindByNumber(const QStringList &numList);
559
560 bool vertexFindByLabel(const QStringList &labelList);
561
562 bool vertexFindByIndexScore(const int &index,
563 const QStringList &thresholds,
564 const bool &considerWeights,
565 const bool &inverseWeights = false,
566 const bool &dropIsolates = false);
567
568 void vertexRemove(const int &v1);
569
570 void vertexSizeInit(const int);
571
572 void vertexSizeSet(const int &v, const int &newsize);
573
574 int vertexSize(const int &v) const;
575
576 void vertexShapeSetDefault(const QString, const QString &iconPath = QString());
577
578 void vertexShapeSet(const int &v, const QString &shape, const QString &iconPath = QString());
579
580 QString vertexShape(const int &v);
581
582 QString vertexShapeIconPath(const int &v);
583
584 bool graphHasVertexCustomIcons() const;
585
586 QStringList graphHasVertexCustomAttributes() const;
587
588 void vertexColorInit(const QString &color);
589
590 void vertexColorSet(const int &v, const QString &color);
591
592 QColor vertexColor(const int &v) const;
593
594 void vertexNumberColorInit(const QString &color);
595
596 void vertexNumberColorSet(const int &v = 0, const QString &color = "#000000");
597
598 void vertexNumberSizeInit(const int &size);
599
600 void vertexNumberSizeSet(const int &v, const int &newsize);
601
602 void vertexNumberDistanceInit(const int &distance);
603
604 void vertexNumberDistanceSet(const int &v, const int &newDistance);
605
606 void vertexLabelSet(const int &v, const QString &label);
607
608 QString vertexLabel(const int &v) const;
609
610 void vertexLabelsVisibilitySet(bool toggle);
611
612 void vertexLabelSizeInit(int newSize);
613
614 void vertexLabelSizeSet(const int &v, const int &labelSize);
615
616 void vertexLabelColorInit(QString color);
617
618 void vertexLabelColorSet(const int &v1, const QString &color);
619
620 void vertexLabelDistanceInit(const int &distance);
621
622 void vertexLabelDistanceSet(const int &v, const int &newDistance);
623
624 void vertexLabelDistanceAllSet(const int &newDistance);
625
626 void vertexCustomAttributesSet(const int &v1, const QHash<QString, QString> &customAttributes);
627
628 void vertexCustomAttributeSet(const int &v1, const QString &key, const QString &value);
629
630 void vertexCustomAttributeRemove(const int &v1, const QString &key);
631
632 QHash<QString, QString> vertexCustomAttributes(const int &v1) const;
633
634 int vertexAttributesImport(const QStringList &headers,
635 const QVector<QStringList> &rows,
636 int idColumn,
637 bool matchByLabel);
638
639 void vertexPosSet(const int &v, const int &x, const int &y);
640
641 QPointF vertexPos(const int &v1) const;
642
643 int vertexClicked() const;
644
645 int vertices(const bool &dropIsolates = false, const bool &countAll = false, const bool &recount = false);
646
647 int vertexEdgesOutbound(int i);
648
649 int vertexEdgesInbound(int i);
650
652
654
656
657 QList<int> verticesListIsolated();
658
659 QList<int> verticesList();
660
661 QSet<int> verticesSet();
662
663 void verticesCreateSubgraph(QList<int> vList,
664 const int &type = SUBGRAPH_CLIQUE,
665 const int &center = 0);
666
667 // Regression/testing helper: access a vertex object by its number.
668 // Returns nullptr if not found.
669 GraphVertex *vertexPtr(const int v);
670
671 /* EDGES */
672 // --------------------------------------------------------------------------
673 // FACADE API (SUPPORTED): Edge queries + edits
674 // --------------------------------------------------------------------------
675
676 int edgesEnabled();
677
679
680 qreal edgeExists(const int &v1,
681 const int &v2,
682 const bool &checkReciprocal = false);
683
684 qreal edgeExistsVirtual(const int &v1, const int &v2);
685
686 void edgeOutboundStatusSet(const int &source,
687 const int &target,
688 const bool &toggle = false);
689
690 void edgeInboundStatusSet(const int &target,
691 const int &source,
692 const bool &toggle = false);
693
694 void edgeRemove(const int &v1,
695 const int &v2,
696 const bool &removeReverse = false);
697
698 void edgeRemoveSelected(SelectedEdge &selectedEdge,
699 const bool &removeReverse);
700
702
703 bool edgeSymmetric(const int &v1, const int &v2);
704
705 void edgeTypeSet(const int &v1,
706 const int &v2,
707 const qreal &w,
708 const int &dirType = EdgeType::Directed);
709
710 void edgeWeightSet(const int &v1,
711 const int &v2,
712 const qreal &w,
713 const bool &undirected = false);
714
715 qreal edgeWeight(const int &v1, const int &v2) const;
716
717 void edgeWeightNumbersVisibilitySet(const bool &toggle);
718
719 void edgeLabelSet(const int &v1, const int &v2, const QString &label);
720
721 QString edgeLabel(const int &v1, const int &v2) const;
722
723 void edgeLabelsVisibilitySet(const bool &toggle);
724
725 void edgeColorInit(const QString &);
726 void edgeColorZeroInit(const QString &); // #30: configurable zero-weight edge color
727 void showZeroWeightEdgesSet(const bool &toggle); // #30: show/hide zero-weight edges
728
729 void edgeColorSet(const int &v1, const int &v2, const QString &color);
730
731 QString edgeColor(const int &v1, const int &v2);
732
733 bool edgeColorAllSet(const QString &color, const int &threshold = RAND_MAX);
734
735 void edgeCustomAttributesSet(const int &v1, const int &v2, const QHash<QString,QString> &attrs);
736
737 QHash<QString,QString> edgeCustomAttributes(const int &v1, const int &v2) const;
738
739 int edgeAttributesImport(const QStringList &headers,
740 const QVector<QStringList> &rows,
741 int srcColumn,
742 int tgtColumn);
743
744 QStringList graphHasEdgeCustomAttributes() const;
745
746 /* GRAPH methods */
747 // --------------------------------------------------------------------------
748 // FACADE API (SUPPORTED): Graph facts + settings used by UI/CLI
749 // --------------------------------------------------------------------------
750
751 bool isEmpty() const;
752
753 QList<int> getSelectedVertices() const;
754
755 int getSelectedVerticesCount() const;
756
757 int getSelectedVerticesMin() const;
758
759 int getSelectedVerticesMax() const;
760
761 QList<SelectedEdge> getSelectedEdges() const;
762
763 int getSelectedEdgesCount() const;
764
765 int getGeodesicsCount();
766
767 qreal graphDensity();
768
769 bool isWeighted();
771
772 void setWeighted(const bool &toggle = true);
773
774 qreal graphReciprocity();
775
776 bool isSymmetric();
777
778 void setSymmetric();
779
780 void addRelationSymmetricStrongTies(const bool &allRelations = false);
781
783
784 void graphDichotomization(const qreal threshold);
785
786 void setDirected(const bool &toggle = true, const bool &signalMW = true);
787
788 void setUndirected(const bool &toggle = true, const bool &signalMW = true);
789
790 bool isDirected();
791
792 bool isUndirected();
793
794 bool isConnected();
795
796 bool isConnectedCached() const;
797
799
801
802 const QHash<int,int> &vertexComponentId() const { return m_vertexComponentId; }
803
804 void createMatrixAdjacency(const bool dropIsolates = false,
805 const bool considerWeights = true,
806 const bool inverseWeights = false,
807 const bool symmetrize = false);
808
809 bool createMatrixAdjacencyInverse(const QString &method = "lu");
810
812 Matrix &SEM,
813 const int &measure = METRIC_SIMPLE_MATCHING,
814 const QString &varLocation = "Rows",
815 const bool &diagonal = false,
816 const bool &considerWeights = true);
817
819 Matrix &PCC,
820 const QString &varLocation = "Rows",
821 const bool &diagonal = false);
822
823 void createMatrixDissimilarities(Matrix &INPUT_MATRIX,
824 Matrix &DSM,
825 const int &metric,
826 const QString &varLocation,
827 const bool &diagonal,
828 const bool &considerWeights);
829
830 /* REPORT EXPORTS */
831 void setReportsDataDir(const QString &reportsDir);
832 void setReportsRealNumberPrecision(const int &precision);
833 void setReportsLabelLength(const int &length);
834 void setReportsChartType(const int &type);
835
836 void writeDataSetToFile(const QString dir, const QString);
837
838 void writeMatrixAdjacencyTo(QTextStream &os,
839 const bool &saveEdgeWeights = true);
840
841 void writeReciprocity(const QString fileName,
842 const bool considerWeights = false);
843
844 bool writeMatrix(const QString &fileName,
845 const int &matrix = MATRIX_ADJACENCY,
846 const bool &considerWeights = true,
847 const bool &inverseWeights = false,
848 const bool &dropIsolates = false,
849 const QString &varLocation = "Rows",
850 const bool &simpler = false);
851
852 void writeMatrixHTMLTable(QTextStream &outText, Matrix &M,
853 const bool &markDiag = true,
854 const bool &plain = false,
855 const bool &printInfinity = true,
856 const bool &dropIsolates = false);
857
858 void writeMatrixAdjacency(const QString fileName,
859 const bool &markDiag = true);
860
861 void writeMatrixAdjacencyPlot(const QString fileName,
862 const bool &simpler = false);
863
864 bool writeMatrixDissimilarities(const QString fileName,
865 const QString &metricStr,
866 const QString &varLocation,
867 const bool &diagonal,
868 const bool &considerWeights);
869
870 bool writeMatrixSimilarityMatching(const QString fileName,
871 const QString &measure = "Simple",
872 const QString &matrix = "adjacency",
873 const QString &varLocation = "rows",
874 const bool &diagonal = false,
875 const bool &considerWeights = true);
876
877 bool writeMatrixSimilarityPearson(const QString fileName,
878 const bool considerWeights,
879 const QString &matrix = "adjacency",
880 const QString &varLocation = "rows",
881 const bool &diagonal = false);
882
883 bool writeEccentricity(const QString fileName,
884 const bool considerWeights = false,
885 const bool inverseWeights = false,
886 const bool dropIsolates = false);
887
888 // friend QTextStream& operator << (QTextStream& os, Graph& m);
889
890 bool writeCentralityDegree(const QString,
891 const bool weights,
892 const bool dropIsolates);
893
894 bool writeCentralityCloseness(const QString,
895 const bool weights,
896 const bool inverseWeights,
897 const bool dropIsolates);
898
900 const bool weights,
901 const bool inverseWeights,
902 const bool dropIsolates);
903
904 bool writeCentralityBetweenness(const QString,
905 const bool weights,
906 const bool inverseWeights,
907 const bool dropIsolates);
908
909 bool writeCentralityPower(const QString,
910 const bool weigths,
911 const bool inverseWeights,
912 const bool dropIsolates);
913
914 bool writeCentralityStress(const QString,
915 const bool weigths,
916 const bool inverseWeights,
917 const bool dropIsolates);
918
919 bool writeCentralityEccentricity(const QString,
920 const bool weigths,
921 const bool inverseWeights,
922 const bool dropIsolates);
923
924 bool writeCentralityInformation(const QString,
925 const bool weigths,
926 const bool inverseWeights);
927
928 bool writeCentralityEigenvector(const QString,
929 const bool &weigths = true,
930 const bool &inverseWeights = false,
931 const bool &dropIsolates = false);
932
933 bool writePrestigeDegree(const QString, const bool weights,
934 const bool dropIsolates);
935
936 bool writePrestigeProximity(const QString, const bool weights,
937 const bool inverseWeights,
938 const bool dropIsolates);
939
940 bool writePrestigePageRank(const QString, const bool Isolates = false);
941
942 bool writeClusteringHierarchical(const QString &fileName,
943 const QString &varLocation,
944 const QString &matrix = "Adjacency",
945 const QString &metric = "Manhattan",
946 const QString &method = "Complete",
947 const bool &diagonal = false,
948 const bool &dendrogram = false,
949 const bool &considerWeights = true,
950 const bool &inverseWeights = false,
951 const bool &dropIsolates = false);
952
953 void writeClusteringHierarchicalResultsToStream(QTextStream &outText,
954 const int N,
955 const bool &dendrogram = false);
956
957 bool writeCliqueCensus(const QString &fileName,
958 const bool considerWeights);
959
960 bool writeClusteringCoefficient(const QString, const bool);
961
962 bool writeTriadCensus(const QString, const bool);
963
964 /* DISTANCES, CENTRALITIES & PROMINENCE MEASURES */
965
966 int graphConnectednessFull(const bool updateProgress = false);
967
968 bool graphReachable(const int &v1, const int &v2);
969
971
972 int graphDiameter(const bool considerWeights, const bool inverseWeights);
973
974 int graphDiameterCached() const;
975
976 qreal graphSumDistanceCached() const;
977
978 qreal graphGeodesicsCountCached() const;
979
980 int graphDistanceGeodesic(const int &v1,
981 const int &v2,
982 const bool &considerWeights = false,
983 const bool &inverseWeights = true);
984
985 qreal graphDistanceGeodesicAverage(const bool considerWeights,
986 const bool inverseWeights,
987 const bool dropIsolates);
988
990
991 void graphDistancesGeodesic(const bool &computeCentralities = false,
992 const bool &considerWeights = false,
993 const bool &inverseWeights = true,
994 const bool &dropIsolates = false);
995
996 // ============================================================================
997 // --- Connectivity bookkeeping ---
999 void notConnectedPairsInsert(int from, int to);
1000 int notConnectedPairsSize() const;
1001
1002 // --- Distance centrality cache flags ---
1003 // CLI/benchmark helper: allows repeated runs by clearing the computed flags only.
1004 // Does not modify graph structure or results.
1006
1007 // LEGACY/INTERNAL (ENGINE SUPPORT): cached results written by DistanceEngine
1008 void setSymmetricCached(bool v);
1009 bool symmetricCached() const;
1010
1011 void setConnectedCached(bool v);
1012 void setDiameterCached(int v);
1013
1014 void resetDistanceAggregates(); // sets avg/sum/geodesics/diameter to 0
1015 void addToDistanceSum(qreal delta);
1016 void incGeodesicsCount();
1017 // Bulk-add n to the geodesics count — used by the post-parallel-loop reduction
1018 // so each thread contributes its total in one call instead of n individual increments.
1019 void addGeodesicsCount(int n);
1020 void setAverageDistanceCached(qreal v);
1021
1022 bool graphMatrixDistanceGeodesicCreate(const bool &considerWeights = false,
1023 const bool &inverseWeights = false,
1024 const bool &dropIsolates = false);
1025
1026 void graphMatrixShortestPathsCreate(const bool &considerWeights = false,
1027 const bool &inverseWeights = true,
1028 const bool &dropIsolates = false);
1029
1030 int getProminenceIndexByName(const QString &prominenceIndexName);
1031
1032 void prominenceDistribution(const int &index,
1033 const ChartType &type,
1034 const QString &distImageFileName = QString());
1035
1036 void prominenceDistributionBars(const H_StrToInt &discreteClasses,
1037 const QString &name,
1038 const QString &distImageFileName);
1039
1040 void prominenceDistributionArea(const H_StrToInt &discreteClasses,
1041 const QString &name,
1042 const QString &distImageFileName);
1043
1044 void prominenceDistributionSpline(const H_StrToInt &discreteClasses,
1045 const QString &seriesName,
1046 const QString &distImageFileName);
1047
1048 void centralityDegree(const bool &considerWeights = true,
1049 const bool &dropIsolates = false);
1050
1051 void centralityInformation(const bool considerWeights = false,
1052 const bool inverseWeights = false);
1053
1054 void centralityEigenvector(const bool &considerWeights = false,
1055 const bool &inverseWeights = false,
1056 const bool &dropIsolates = false);
1057
1058 void centralityClosenessIR(const bool considerWeights = false,
1059 const bool inverseWeights = false,
1060 const bool dropIsolates = false);
1061
1062 void prestigeDegree(const bool &considerWeights, const bool &dropIsolates = false);
1063
1064 void prestigePageRank(const bool &dropIsolates = false);
1065
1066 void prestigeProximity(const bool considerWeights = false,
1067 const bool inverseWeights = false,
1068 const bool dropIsolates = false);
1069
1070 bool isCentralityIndexComputed(const IndexType index) const;
1071
1072 /* REACHABILITY AND WALKS */
1073
1074 int walksBetween(int v1, int v2, int length);
1075
1076 void graphWalksMatrixCreate(const int &N = 0,
1077 const int &length = 0,
1078 const bool &updateProgress = false,
1079 const bool &dropIsolates = false,
1080 const bool &considerWeights = false,
1081 const bool &inverseWeights = false,
1082 const bool &symmetrize = false);
1083
1084 void writeMatrixWalks(const QString &fn,
1085 const int &length = 0,
1086 const bool &simpler = false);
1087
1088 QList<int> vertexinfluenceRange(int v1);
1089
1090 QList<int> vertexinfluenceDomain(int v2);
1091
1092 void writeReachabilityMatrixPlainText(const QString &fn,
1093 const bool &dropIsolates = false);
1094
1095 qreal numberOfTriples(int v1);
1096
1097 /* CLIQUES, CLUSTERING, TRIADS */
1098 void graphCliques(QSet<int> R = QSet<int>(), QSet<int> P = QSet<int>(), QSet<int> X = QSet<int>());
1099
1100 void graphCliqueAdd(const QList<int> &clique);
1101
1102 int graphCliquesContaining(const int &actor, const int &size = 0);
1103
1104 int graphCliquesOfSize(const int &size);
1105
1106 bool graphClusteringHierarchical(Matrix &STR_EQUIV,
1107 const QString &varLocation,
1108 const int &metric,
1109 const int &method,
1110 const bool &diagonal = false,
1111 const bool &diagram = false,
1112 const bool &considerWeights = true,
1113 const bool &inverseWeights = false,
1114 const bool &dropIsolates = false);
1115
1116 qreal clusteringCoefficientLocal(const int &v1);
1117
1118 qreal clusteringCoefficient(const bool updateProgress = false);
1119
1120 bool graphTriadCensus();
1121
1123 // --- Triad census results (read-only access for CLI / reports) ---
1124 const QList<int> &graphTriadTypeFreqs() const { return triadTypeFreqs; }
1126
1127 // void eccentr_JordanCenter(); // TODO
1128
1129 /* LAYOUTS */
1130
1131 void layoutRandom();
1132
1133 void layoutRadialRandom(const bool &guides = true);
1134
1135 void layoutEgoRadial(const int egoVertex);
1136
1137 void layoutCircular(const double &x0,
1138 const double &y0,
1139 const double &newRadius,
1140 const bool &guides = false);
1141
1142 void layoutByProminenceIndex(int prominenceIndex,
1143 int layoutType,
1144 const bool &considerWeights = false,
1145 const bool &inverseWeights = false,
1146 const bool &dropIsolates = false);
1147
1149
1151
1152 void layoutForceDirectedSpringEmbedder(const int maxIterations);
1153
1154 void layoutForceDirectedFruchtermanReingold(const int maxIterations);
1155
1156 void layoutForceDirectedKamadaKawai(const int maxIterations = 500,
1157 const bool considerWeights = false,
1158 const bool inverseWeights = false,
1159 const bool dropIsolates = false,
1160 const QString &initialPositions = "current");
1161
1162 qreal graphDistanceEuclidean(const QPointF &a, const QPointF &b);
1163
1164 qreal graphDistanceEuclidean(const QPointF &a);
1165
1166 int sign(const qreal &D);
1167
1168 qreal layoutForceDirected_F_rep(const QString model,
1169 const qreal &dist,
1170 const qreal &optimalDistance);
1171
1172 qreal layoutForceDirected_F_att(const QString model,
1173 const qreal &dist,
1174 const qreal &optimalDistance);
1175
1176 qreal layoutForceDirected_Eades_moveNodes(const qreal &c4);
1177
1178 qreal layoutForceDirected_FR_moveNodes(const qreal &temperature);
1179
1180 qreal layoutForceDirected_FR_temperature(const int iteration) const;
1181
1182 qreal computeOptimalDistance(const int &V);
1183
1184 void compute_angles(const QPointF &Delta,
1185 const qreal &dist,
1186 qreal &angle1,
1187 qreal &angle2,
1188 qreal &degrees1,
1189 qreal &degrees2);
1190
1191 /* CRAWLER */
1192 void webCrawlTerminateThreads(QString reason);
1193
1195 void randomizeThings();
1196
1197 bool randomNetErdosCreate(const int &N, const QString &model,
1198 const int &m, const qreal &p,
1199 const QString &mode, const bool &diag);
1200
1201 bool randomNetScaleFreeCreate(const int &N, const int &power,
1202 const int &m0, const int &m,
1203 const qreal &alpha, const QString &mode);
1204
1205 bool randomNetSmallWorldCreate(const int &N, const int &degree,
1206 const double &beta, const QString &mode);
1207
1208 bool randomNetRingLatticeCreate(const int &N, const int &degree,
1209 const bool updateProgress = false);
1210
1211 bool randomNetRegularCreate(const int &N, const int &degree,
1212 const QString &mode, const bool &diag);
1213
1214 bool randomNetLatticeCreate(const int &N, const int &length,
1215 const int &dimension, const int &nei,
1216 const QString &mode, const bool &circular);
1217
1218 int factorial(int);
1219
1220 // Progress cancellation query: readable by engines and sinks.
1221 bool progressCanceled() const;
1222 void resetProgressCanceled();
1223
1229 //
1230 // LEGACY/INTERNAL: storage bookkeeping.
1231 // Do not use from UI/engines. (Later WS2 will likely privatize this and
1232 // expose intent-revealing helpers if needed.)
1234
1235 // --------------------------------------------------------------------------
1236 // INTERNAL PROGRESS FACADE (WS2/F4)
1237 // Algorithm slices must not emit signals directly.
1238 // --------------------------------------------------------------------------
1239protected:
1240 void progressStatus(const QString &msg);
1241 void progressCreate(int max, const QString &msg);
1242 void progressUpdate(int value);
1243 void progressFinish();
1244
1245 void uiProminenceDistributionSpline(const QVector<QPair<qreal, qreal>> &points,
1246 qreal min, qreal max,
1247 qreal minF, qreal maxF,
1248 const QString &seriesName,
1249 const QString &distImageFileName);
1250 void uiProminenceDistributionArea(const QVector<QPair<qreal, qreal>> &points,
1251 const qreal min,
1252 const qreal max,
1253 const qreal minF,
1254 const qreal maxF,
1255 const QString &name,
1256 const QString &distImageFileName);
1257 void uiProminenceDistributionBars(const QStringList &categories,
1258 const QVector<qreal> &frequencies,
1259 const qreal min,
1260 const qreal max,
1261 const qreal minF,
1262 const qreal maxF,
1263 const QString &name,
1264 const QString &distImageFileName);
1265
1266private:
1268
1269 Graph *subgraphFromVertexList(const QList<int> &vertexNums,
1270 const QString &name,
1271 const bool &includeCustomAttributes = true);
1272
1274 void vertexFilterReplaySpec(const FilterSpec &spec);
1275
1276 void edgeAdd(const int &v1,
1277 const int &v2,
1278 const qreal &weight,
1279 const int &type,
1280 const QString &label,
1281 const QString &color);
1282
1284 void dijkstra(const int &s,
1285 const int &si,
1286 const bool &computeCentralities = false,
1287 const bool &inverseWeights = false,
1288 const bool &dropIsolates = false);
1289
1290 void minmax(qreal C,
1291 GraphVertex *v,
1292 qreal &max,
1293 qreal &min,
1294 int &maxNode, int &minNode);
1295
1296 void resolveClasses(qreal C,
1297 H_StrToInt &discreteClasses,
1298 int &classes);
1299
1300 void resolveClasses(qreal C,
1301 H_StrToInt &discreteClasses,
1302 int &classes, int name);
1303
1304 void layoutRandomInMemory();
1305
1306 VList m_graph; // List of pointers to the vertices. Each vertex stores all info: links, colors, etc
1307
1308 Parser *file_parser; // Our file loader threaded class.
1309
1310 WebCrawler *web_crawler; // Our web crawler threaded class. This will parse the downloaded HTML.
1311
1312 QQueue<QUrl> *urlQueue; // A queue where the crawler will put urls for the network manager to download
1313
1314 int m_crawler_max_urls; // maximum urls we'll visit (max nodes in the resulted network)
1315 int m_crawler_visited_urls; // A counter of the urls visited.
1316
1317 QList<QString> m_relationsList;
1319
1321
1322 QList<int> triadTypeFreqs; // stores triad type frequencies
1323
1324 QList<int> m_verticesList;
1326
1328
1329 QSet<int> m_verticesSet;
1330
1331 QList<SelectedEdge> m_selectedEdges;
1332 QStack<GraphVisibilitySnapshot> m_visibilityHistory; // filter undo stack
1333
1334 QMultiHash<int, int> influenceRanges, influenceDomains;
1335
1336 QMultiHash<int, int> m_vertexPairsNotConnected;
1338
1339 QMultiMap<int, L_int> m_cliques;
1340 QHash<int, QSet<int>> neighboursHash;
1341
1342 QList<qreal> m_clusteringLevel;
1343 QMap<int, V_int> m_clustersPerSequence;
1344
1345 QMap<QString, V_int> m_clustersByName;
1347
1350
1356
1361
1363
1365
1392
1410
1416 bool order;
1427
1429
1431
1446 QHash<int,int> m_vertexComponentId;
1447
1449
1455
1457};
1458
1459#endif
Definition chart.h:28
void vertexNumberColorSet(const int &v=0, const QString &color="#000000")
Graph::vertexColorSet Changes the color of vertex v1.
Definition graph_vertex_style.cpp:299
qreal maxIRCC
Definition graph.h:1383
QString initEdgeColorZero
Definition graph.h:1450
void signalSelectionChanged(const int &selectedVertices, const int &selectedEdges)
QHash< int, int > m_vertexPairsUnilaterallyConnected
Definition graph.h:1337
qreal denomIC
Definition graph.h:1388
Matrix XSM
Definition graph.h:1349
int factorial(int)
Definition graph_random_networks.cpp:886
int initVertexNumberSize
Definition graph.h:1414
bool calculatedIC
Definition graph.h:1439
int reciprocalEdgesVert
Definition graph.h:1430
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:1413
qreal denomPRC
Definition graph.h:1390
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:1391
qreal minIC
Definition graph.h:1388
qreal varianceSDC
Definition graph.h:1367
void progressStatus(const QString &msg)
Emits a status message to be shown in the UI status bar.
Definition graph_ui_facade.cpp:35
void vertexFilterRemoveAt(int stackIndex)
Removes the filter at stackIndex (0 = oldest) and replays the rest.
Definition graph_node_filters.cpp:686
int classesCLC
Definition graph.h:1407
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:1399
void canvasSizeSetQuiet(const qreal &width, const qreal &height)
Sets the canvas size without rescaling node positions.
Definition graph_canvas.cpp:66
QString initVertexShape
Definition graph.h:1453
bool isSymmetric()
Returns TRUE if the adjacency matrix of the current relation is symmetric.
Definition graph_state_flags.cpp:114
qreal sumPRP
Definition graph.h:1390
qreal sumDC
Definition graph.h:1381
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:1385
int m_reserveEdgesPerVertexSize
Definition graph.h:1412
void signalRemoveEdge(const int &v1, const int &v2, const bool &removeReverse)
void moveToThreadFacade(QThread *thread)
Definition graph_ui_facade.cpp:25
friend class DistanceEngine
Definition graph.h:78
int initVertexNumberDistance
Definition graph.h:1415
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:6246
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:1387
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:1384
qreal sumSCC
Definition graph.h:1382
int minNodeSCC
Definition graph.h:1397
int classesSCC
Definition graph.h:1397
qreal edgeWeightTemp
Definition graph.h:1366
void edgeCustomAttributesSet(const int &v1, const int &v2, const QHash< QString, QString > &attrs)
Sets all custom attributes on edge v1→v2, replacing any previously stored attributes for that edge.
Definition graph_edge_style.cpp:191
int m_graphReciprocityTiesTotal
Definition graph.h:1424
int m_reportsLabelLength
Definition graph.h:1359
int classesSSC
Definition graph.h:1401
Matrix CLQM
Definition graph.h:1349
void setName(const QString &graphName)
Sets the name of the current graph.
Definition graph_metadata.cpp:48
qreal 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:1181
int initVertexLabelSize
Definition graph.h:1414
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:1386
qreal sumCC
Definition graph.h:1382
bool m_graphIsWeighted
Definition graph.h:1444
WebCrawler * web_crawler
Definition graph.h:1310
qreal maxIndexEC
Definition graph.h:1387
bool m_graphIsSymmetric
Definition graph.h:1444
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:599
QString relationCurrentName() const
Gets the current relation name.
Definition graph_relations.cpp:209
void setNodeNumberDistance(const int &v, const int &distance)
int minNodeEC
Definition graph.h:1402
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:31
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:415
int maxNodeEC
Definition graph.h:1402
H_StrToInt discretePPs
Definition graph.h:1354
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:346
int classesEVC
Definition graph.h:1408
QString vertexLabel(const int &v) const
Returns the label of a vertex v1.
Definition graph_vertex_style.cpp:448
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:1364
void signalRelationAddToMW(const QString &newRelation)
qreal denomSPC
Definition graph.h:1385
Matrix XM
Definition graph.h:1349
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:1331
qreal sumPP
Definition graph.h:1391
qreal nomPP
Definition graph.h:1391
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:6110
int vertexClicked() const
Returns the number of the clicked vertex.
Definition graph_selection.cpp:152
bool saveToEdgeListSimpleFormat(const QString &fileName)
Saves the active relation to a simple (unweighted) edge list file.
Definition graph_io.cpp:1378
int m_curRelation
Definition graph.h:1362
void setEdgeWeight(const int &v1, const int &v2, const qreal &weight)
bool calculatedGraphReciprocity
Definition graph.h:1441
QThread webcrawlerThread
Definition graph.h:76
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:1395
int minNodePP
Definition graph.h:1406
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
void vertexCustomAttributeRemove(const int &v1, const QString &key)
Removes a single custom attribute key from vertex v1. Does nothing if the key does not exist.
Definition graph_vertex_style.cpp:642
qreal m_graphAverageDistance
Definition graph.h:1418
qreal varianceSDP
Definition graph.h:1376
QList< int > m_graphFileFormatExportSupported
Definition graph.h:1320
qreal denomPP
Definition graph.h:1391
bool isSaved() const
Returns true if the graph is saved.
Definition graph_metadata.cpp:263
bool writeClusteringCoefficient(const QString, const bool)
Writes the clustering coefficients to a file.
Definition graph_reports.cpp:3773
qreal denomEC
Definition graph.h:1387
qreal minSBC
Definition graph.h:1384
int minNodeIC
Definition graph.h:1404
qreal maxIndexIC
Definition graph.h:1388
bool calculatedGraphDensity
Definition graph.h:1442
qreal sumSC
Definition graph.h:1386
bool createMatrixAdjacencyInverse(const QString &method="lu")
Computes the inverse of the current adjacency matrix.
Definition graph_matrix_adjacency.cpp:143
void edgeColorZeroInit(const QString &)
Definition graph_edge_style.cpp:46
void signalEdgeClicked(const MyEdge &edge=MyEdge(), const bool &openMenu=false)
QMap< int, V_str > m_clusterPairNamesPerSeq
Definition graph.h:1346
QString m_reportsDataDir
Definition graph.h:1357
void edgeWeightNumbersVisibilitySet(const bool &toggle)
Changes the visibility of edge weight numbers.
Definition graph_edge_style.cpp:26
void vertexFilterByQuery(const GraphQuery &query)
Shows only vertices whose custom attributes satisfy ALL conditions in query.
Definition graph_query_filters.cpp:31
void signalRelationsClear()
bool edgeColorAllSet(const QString &color, const int &threshold=RAND_MAX)
Changes the color of all enabled edges.
Definition graph_edge_style.cpp:62
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:122
int m_vertexClicked
Definition graph.h:1362
qreal minSSC
Definition graph.h:1386
int notConnectedPairsSize() const
Definition graph_distance_cache.cpp:265
void setSymmetricCached(bool v)
Definition graph_distance_cache.cpp:281
void setDiameterCached(int v)
Definition graph_distance_cache.cpp:287
int relations()
Returns the count of relationships in this Graph.
Definition graph_relations.cpp:273
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:133
void setNodeLabelColor(const int &v, const QString &color)
const QList< int > & graphTriadTypeFreqs() const
Definition graph.h:1124
qreal edgeReverseWeightTemp
Definition graph.h:1366
int verticesWithReciprocalEdges()
Returns the sum of vertices having reciprocal edges.
Definition graph_structure_metrics.cpp:189
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:701
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:313
void relationAddCocitation()
Creates a new symmetric relation by connecting those actors that are cocitated by others....
Definition graph_relations.cpp:387
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:1387
int vertexExists(const int &v1)
Checks if the given vertex exists in the graph.
Definition graph_vertices.cpp:716
qreal variancePRP
Definition graph.h:1378
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:1413
QThread file_parserThread
Definition graph.h:75
bool calculatedPRP
Definition graph.h:1439
H_StrToInt discreteEccentricities
Definition graph.h:1353
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
QHash< int, int > m_vertexComponentId
Definition graph.h:1446
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:103
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:1382
int m_graphReciprocityTiesNonSymmetric
Definition graph.h:1423
void layoutVertexSizeByOutdegree()
Convenience method Changes the size of all nodes to be proportional to their outDegree (Degree Centra...
Definition graph_layouts_basic.cpp:206
int graphWeaklyConnectedComponents()
Counts weakly connected components using BFS.
Definition graph_distance_facade.cpp:161
qreal t_sumIC
Definition graph.h:1385
QMap< int, V_int > m_clustersPerSequence
Definition graph.h:1343
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:162
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:1032
QQueue< QUrl > * urlQueue
Definition graph.h:1312
int sign(const qreal &D)
Graph::sign returns the sign of number D as integer (1 or -1).
Definition graph_layouts_force.cpp:1005
QSet< int > m_verticesSet
Definition graph.h:1329
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:105
QList< int > m_verticesIsolatedList
Definition graph.h:1325
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:1405
void vertexCreateAtPos(const QPointF &p)
Creates a new vertex in the given position.
Definition graph_vertices.cpp:125
qreal meanIC
Definition graph.h:1374
qreal sumPC
Definition graph.h:1390
QMultiHash< int, int > influenceRanges
Definition graph.h:1334
void relationPrev()
Changes graph to previous relation.
Definition graph_relations.cpp:136
int classesSPC
Definition graph.h:1400
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:6275
void addGuideHLine(const double &y0)
qreal groupIRCC
Definition graph.h:1383
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:170
qreal variancePP
Definition graph.h:1377
qreal minSDP
Definition graph.h:1380
int vertexEdgesOutbound(int i)
Returns the number of outbound edges (arcs) from vertex v1.
Definition graph_edges.cpp:584
bool calculatedVerticesList
Definition graph.h:1434
qreal meanIRCC
Definition graph.h:1369
qreal maxIndexPC
Definition graph.h:1385
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:1354
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:1197
qreal canvasHeight
Definition graph.h:1432
bool symmetricCached() const
Definition graph_distance_cache.cpp:282
qreal sumSEVC
Definition graph.h:1389
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:233
void setVertexVisibility(const int &number, const bool &toggle)
int maxNodeSSC
Definition graph.h:1401
qreal maxEccentricity
Definition graph.h:1379
qreal minEVC
Definition graph.h:1389
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:1385
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:312
Matrix invM
Definition graph.h:1348
qreal sumIC
Definition graph.h:1388
qreal varianceIRCC
Definition graph.h:1369
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:964
int getFileFormat() const
Returns the format of the last file opened.
Definition graph_metadata.cpp:80
qreal canvasWidth
Definition graph.h:1432
qreal clusteringCoefficient(const bool updateProgress=false)
Computes local clustering coefficients and returns the network average Clustering Coefficient.
Definition graph_clustering_coefficients.cpp:230
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:291
qreal meanEC
Definition graph.h:1372
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:1358
void vertexColorInit(const QString &color)
Graph::vertexColorInit default vertex color initialization.
Definition graph_vertex_style.cpp:275
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:1390
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:1336
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:509
int maxNodeSDC
Definition graph.h:1396
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 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:248
QSet< int > vertexOutNeighborsSet(const int &v1, const bool includeInEdges=false)
Returns the set of all 1-hop neighbors of vertex v1 in the current relation.
Definition graph_structure_metrics.cpp:89
void incGeodesicsCount()
Definition graph_distance_cache.cpp:298
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:1451
qreal minEccentricity
Definition graph.h:1379
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:1390
qreal groupDP
Definition graph.h:1380
int maxNodeEVC
Definition graph.h:1408
qreal sumSDP
Definition graph.h:1380
void edgeClickedSet(const int &v1, const int &v2, const bool &openMenu=false)
Sets the clicked edge.
Definition graph_selection.cpp:166
void signalRemoveNode(int)
void vertexFilterBySelection(const QList< int > &selectedVertices)
Saves current visibility state and shows only the selected vertices and the edges between them.
Definition graph_node_filters.cpp:382
int edgesEnabled()
Returns the number of enabled ties in the current relation.
Definition graph_edges.cpp:554
H_StrToInt discreteSDCs
Definition graph.h:1352
H_StrToInt discreteDPs
Definition graph.h:1352
void edgeColorInit(const QString &)
Saves the default edge color Used by random network creation methods.
Definition graph_edge_style.cpp:40
void addGeodesicsCount(int n)
Definition graph_distance_cache.cpp:299
qreal minPRP
Definition graph.h:1390
bool writeTriadCensus(const QString, const bool)
Definition graph_reports.cpp:3980
qreal m_graphReciprocityDyad
Definition graph.h:1421
bool m_progressCanceled
Definition graph.h:1443
qreal groupCC
Definition graph.h:1382
int vertexAttributesImport(const QStringList &headers, const QVector< QStringList > &rows, int idColumn, bool matchByLabel)
Imports custom attributes from a parsed table into existing vertices.
Definition graph_vertex_style.cpp:669
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:6418
int csRecDepth
Definition graph.h:1448
qreal sumEVC
Definition graph.h:1389
QString m_fileName
Definition graph.h:1450
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
QList< bool > m_relationsDirected
Definition graph.h:1318
void signalProgressBoxCreate(const int max=0, const QString msg="Please wait")
int minNodeEVC
Definition graph.h:1408
qreal minSPC
Definition graph.h:1385
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:512
qreal edgeWeight(const int &v1, const int &v2) const
Returns the weight of the edge v1->v2.
Definition graph_edges.cpp:634
void setNodeShape(const int &v, const QString &shape, const QString &iconPath=QString())
qreal maxIndexCC
Definition graph.h:1382
qreal nomIRCC
Definition graph.h:1383
void vertexFilterReplaySpec(const FilterSpec &spec)
Re-applies one filter from its stored replay parameters.
Definition graph_node_filters.cpp:719
QHash< int, QSet< int > > neighboursHash
Definition graph.h:1340
int minNodeEccentricity
Definition graph.h:1403
void vertexLabelColorInit(QString color)
Graph::vertexLabelColorInit Changes the default vertex label color.
Definition graph_vertex_style.cpp:550
bool calculatedAdjacencyMatrix
Definition graph.h:1435
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:1390
bool isModified() const
Returns true of graph is modified (edges/vertices added/removed).
Definition graph_metadata.cpp:233
H_StrToInt discreteBCs
Definition graph.h:1352
void signalProgressBoxKill(const int max=0)
void vertexLabelSet(const int &v, const QString &label)
Changes the label of a vertex v1.
Definition graph_vertex_style.cpp:432
ChartType m_reportsChartType
Definition graph.h:1360
QThread * getThread() const
Definition graph_ui_facade.cpp:20
void addToDistanceSum(qreal delta)
Definition graph_distance_cache.cpp:297
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
int classesSDC
Definition graph.h:1396
void edgeFilterByQuery(const GraphQuery &query)
Shows only edges whose custom attributes satisfy ALL conditions in query.
Definition graph_query_filters.cpp:140
int initVertexSize
Definition graph.h:1413
const QHash< int, int > & vertexComponentId() const
Definition graph.h:802
QList< QString > m_relationsList
Definition graph.h:1317
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:646
void vertexRemoveDummyNode(int)
Deletes a dummy node.
Definition graph_vertices.cpp:282
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:1419
int m_graphReciprocityPairsReciprocated
Definition graph.h:1425
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
Graph * subgraphFromVertexList(const QList< int > &vertexNums, const QString &name, const bool &includeCustomAttributes=true)
Core helper: builds an independent Graph copy from an explicit list of vertex numbers.
Definition graph_subgraphs.cpp:41
qreal meanSCC
Definition graph.h:1368
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:447
QList< int > m_verticesList
Definition graph.h:1324
qreal nomSBC
Definition graph.h:1384
QString initVertexLabelColor
Definition graph.h:1451
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:1397
QMultiHash< int, int > influenceDomains
Definition graph.h:1334
void resetDistanceCentralityCacheFlags()
Definition graph_distance_cache.cpp:273
qreal meanSBC
Definition graph.h:1370
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:299
QString vertexShapeIconPath(const int &v)
Returns the IconPath of vertex v1.
Definition graph_vertex_style.cpp:153
int classesEccentricity
Definition graph.h:1403
int graphWeaklyConnectedComponentsCached() const
Definition graph_distance_cache.cpp:286
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:1210
qreal varianceSBC
Definition graph.h:1370
int classesEC
Definition graph.h:1402
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:1450
int maxNodeSBC
Definition graph.h:1399
qreal graphDensity()
Gets the graph density (if computed) or computes it again.
Definition graph_structure_metrics.cpp:143
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:1349
int initVertexLabelDistance
Definition graph.h:1415
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:301
int maxNodeSPC
Definition graph.h:1400
bool order
Definition graph.h:1416
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:1327
qreal denomEVC
Definition graph.h:1389
bool initEdgeWeightNumbers
Definition graph.h:1417
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:613
void setConnectedCached(bool v)
Definition graph_distance_cache.cpp:284
qreal maxSBC
Definition graph.h:1384
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, const QHash< QString, QString > &edgeCustomAttributes=QHash< QString, QString >())
Checks if edge (v1,v2) already exists, then creates it and signals the UI to draw it.
Definition graph_edges.cpp:73
qreal maxIndexBC
Definition graph.h:1384
bool calculatedGraphSymmetry
Definition graph.h:1441
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:255
H_StrToInt discreteEVCs
Definition graph.h:1354
int m_totalEdges
Definition graph.h:1413
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
void vertexFilterByEgoNetwork(const int v1, const int depth=1)
Saves current visibility state and shows only the ego network of vertex v1 at the given depth.
Definition graph_node_filters.cpp:246
qreal varianceSPC
Definition graph.h:1373
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:1345
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:1372
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:1387
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:468
qreal minEC
Definition graph.h:1387
QString htmlHead
Definition graph.h:1454
~Graph()
Destroys the Graph object.
Definition graph.cpp:258
qreal minSCC
Definition graph.h:1382
int minNodeIRCC
Definition graph.h:1398
qreal sumIRCC
Definition graph.h:1383
void vertexLabelDistanceSet(const int &v, const int &newDistance)
Changes the distance.of vertex v label from the vertex.
Definition graph_vertex_style.cpp:560
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:47
bool saveToUCINETDLFormat(const QString &fileName)
Saves the current graph to a UCINET DL file (FULLMATRIX format).
Definition graph_io.cpp:1214
H_StrToInt discreteCCs
Definition graph.h:1352
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:595
QList< FilterSpec > filterSpecList() const
Returns the FilterSpec list in application order (oldest first).
Definition graph_node_filters.cpp:766
qreal denomSBC
Definition graph.h:1384
void setNodeNumberColor(const int &v, const QString &color)
qreal maxEVC
Definition graph.h:1389
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
Graph * subgraphExtractFromSelection(const QString &name, const bool &includeCustomAttributes=true)
Extracts currently selected nodes and their inter-edges into an independent Graph copy.
Definition graph_subgraphs.cpp:194
Matrix AM
Definition graph.h:1348
void signalWebCrawlParse(QNetworkReply *reply)
int m_graphModStatus
Definition graph.h:1411
void randomizeThings()
Adds a little universal randomness :).
Definition graph_random_networks.cpp:22
bool calculatedGraphWeighted
Definition graph.h:1442
int relationCurrent()
Gets the current relation number.
Definition graph_relations.cpp:199
qreal minIRCC
Definition graph.h:1383
void setDirected(const bool &toggle=true, const bool &signalMW=true)
Toggles the graph directed or undirected.
Definition graph_state_flags.cpp:223
int edgeAttributesImport(const QStringList &headers, const QVector< QStringList > &rows, int srcColumn, int tgtColumn)
Imports custom attributes from a parsed table into existing edges.
Definition graph_edge_style.cpp:227
QStringList graphHasEdgeCustomAttributes() const
Returns a list of all unique custom attribute keys present across all enabled edges in the current gr...
Definition graph_edge_style.cpp:279
QHash< QString, QString > vertexCustomAttributes(const int &v1) const
Retrieves the vertex at the position specified by the index v1 from the vpos map and calls its custom...
Definition graph_vertex_style.cpp:215
qreal maxSSC
Definition graph.h:1386
qreal maxSDP
Definition graph.h:1380
bool isUndirected()
Returns true if graph is undirected.
Definition graph_state_flags.cpp:324
qreal groupEVC
Definition graph.h:1389
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:174
int classesSDP
Definition graph.h:1395
void layoutEgoRadial(const int egoVertex)
Ego-centered radial layout.
Definition graph_layouts_basic.cpp:659
qreal varianceSCC
Definition graph.h:1368
qreal graphGeodesicsCountCached() const
Returns the number of geodesics (shortest paths) accumulated by DistanceEngine, without recalculating...
Definition graph_distance_facade.cpp:234
int m_fieldWidth
Definition graph.h:1362
Matrix SIGMA
Definition graph.h:1348
int maxNodePP
Definition graph.h:1406
void vertexLabelSizeInit(int newSize)
Graph::vertexLabelSizeInit Changes the default size of vertex labels.
Definition graph_vertex_style.cpp:458
qreal varianceIC
Definition graph.h:1374
QMultiMap< int, L_int > m_cliques
Definition graph.h:1339
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:480
int m_crawler_max_urls
Definition graph.h:1314
void layoutForceDirectedFruchtermanReingold(const int maxIterations)
Embeds a Force Directed Placement layout according to the Fruchterman-Reingold model....
Definition graph_layouts_force.cpp:254
qreal sumSBC
Definition graph.h:1384
bool calculatedDP
Definition graph.h:1438
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:1233
int verticesWithInboundEdges()
Returns the sum of vertices having edgesInbound.
Definition graph_structure_metrics.cpp:180
Matrix WM
Definition graph.h:1348
bool isEmpty() const
Returns true if the current graph has no vertices at all.
Definition graph_vertices.cpp:701
qreal graphDistanceGeodesicAverage(const bool considerWeights, const bool inverseWeights, const bool dropIsolates)
Returns the average distance of the graph.
Definition graph_distance_facade.cpp:62
void setReportsChartType(const int &type)
Sets the chart type in reports.
Definition graph_reports_settings.cpp:54
qreal varianceEVC
Definition graph.h:1375
qreal canvasMinDimension() const
Gets the min dimensions of the canvas.
Definition graph_canvas.cpp:85
bool m_graphIsDirected
Definition graph.h:1444
bool calculatedDistances
Definition graph.h:1435
int verticesWithOutboundEdges()
Returns the sum of vertices having edgesOutbound.
Definition graph_structure_metrics.cpp:171
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:105
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:52
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:1348
void notConnectedPairsInsert(int from, int to)
Definition graph_distance_cache.cpp:260
void vertexLabelDistanceAllSet(const int &newDistance)
Changes the distance of all vertex labels from their vertices.
Definition graph_vertex_style.cpp:572
void graphClickedEmptySpace(const QPointF &p)
Resets the clicked edge and node.
Definition graph_selection.cpp:26
qreal maxSDC
Definition graph.h:1381
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:114
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:43
bool isLoaded() const
Returns true if a graph has been loaded from a file.
Definition graph_metadata.cpp:248
void vertexNumberDistanceSet(const int &v, const int &newDistance)
Changes the distance.of vertex v number from the vertex.
Definition graph_vertex_style.cpp:389
QHash< QString, QString > edgeCustomAttributes(const int &v1, const int &v2) const
Returns the custom attributes stored on edge v1→v2. Returns an empty hash if no attributes have been ...
Definition graph_edge_style.cpp:204
QString initEdgeColor
Definition graph.h:1450
qreal m_graphGeodesicsCount
Definition graph.h:1418
QList< int > triadTypeFreqs
Definition graph.h:1322
bool isWeighted()
Returns true if the current relation has at least one edge with weight other than 0 or 1 (i....
Definition graph_state_flags.cpp:33
qreal groupSBC
Definition graph.h:1384
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:351
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 saveToEdgeListWeightedFormat(const QString &fileName)
Saves the active relation to a weighted edge list file.
Definition graph_io.cpp:1311
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:1348
QString edgeLabel(const int &v1, const int &v2) const
Returns the label of edge v1->v2.
Definition graph_edge_style.cpp:179
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:536
qreal graphReciprocity()
Gets the arc reciprocity of the graph.
Definition graph_structure_metrics.cpp:201
VList m_graph
Definition graph.h:1306
void centralityEigenvector(const bool &considerWeights=false, const bool &inverseWeights=false, const bool &dropIsolates=false)
Computes Eigenvector centrality.
Definition graph_centrality.cpp:225
Graph * subgraphExtract(const QString &name, const bool &includeCustomAttributes=true)
Extracts currently visible (non-filtered) nodes and their inter-edges into an independent Graph copy.
Definition graph_subgraphs.cpp:164
qreal meanSPC
Definition graph.h:1373
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:1421
QSet< int > vertexReciprocalNeighborsSet(const int &v1)
Returns the set of all vertices reciprocally connected to vertex v1 in the current relation.
Definition graph_structure_metrics.cpp:68
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 vertexFilterByAttribute(const FilterCondition &cond)
Shows only vertices whose custom attribute satisfies cond; all other vertices are hidden.
Definition graph_node_filters.cpp:499
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:1420
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:5698
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:382
qreal d_factor
Definition graph.h:1393
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:926
QString vertexShape(const int &v)
Returns the shape of this vertex.
Definition graph_vertex_style.cpp:143
H_StrToInt discreteECs
Definition graph.h:1353
int inboundEdgesVert
Definition graph.h:1430
bool isAnyRelationWeighted()
Returns true if any relation in the graph has at least one edge with weight other than 0 or 1.
Definition graph_state_flags.cpp:84
void signalDatasetDescription(QString)
qreal maxIndexSC
Definition graph.h:1386
QSet< int > verticesSet()
Returns a QSet of all vertices numbers inside the graph.
Definition graph_vertices.cpp:400
void edgeFilterByAttribute(const FilterCondition &cond)
Hides all edges whose custom attribute does not satisfy cond.
Definition graph_edge_filters.cpp:255
void setAverageDistanceCached(qreal v)
Definition graph_distance_cache.cpp:300
void vertexCustomAttributesSet(const int &v1, const QHash< QString, QString > &customAttributes)
Sets custom attributes for a specified vertex.
Definition graph_vertex_style.cpp:614
qreal computeOptimalDistance(const int &V)
Computes the optimal inter-vertex distance for force-directed layouts.
Definition graph_layouts_force.cpp:899
int minNodeSDC
Definition graph.h:1396
QString initVertexIconPath
Definition graph.h:1453
H_StrToInt discreteSCs
Definition graph.h:1352
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:1371
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:1422
qreal graphSumDistanceCached() const
Returns the sum of all finite geodesic distances accumulated by DistanceEngine, without recalculating...
Definition graph_distance_facade.cpp:225
void vertexColorSet(const int &v, const QString &color)
Changes the color of vertex v1.
Definition graph_vertex_style.cpp:228
qreal minCLC
Definition graph.h:1393
void showZeroWeightEdgesSet(const bool &toggle)
Definition graph_edge_style.cpp:52
VList::const_iterator verticesBegin() const
iterator helpers
Definition graph_vertices.cpp:334
void applyVisibilitySnapshot(const GraphVisibilitySnapshot &snap)
Restores vertex and edge visibility to the state recorded in snap.
Definition graph_node_filters.cpp:624
H_StrToInt discreteCLCs
Definition graph.h:1355
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:288
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:245
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)
Hides edges whose weight does not satisfy the threshold condition.
Definition graph_edge_filters.cpp:32
qreal nomEVC
Definition graph.h:1389
QStack< GraphVisibilitySnapshot > m_visibilityHistory
Definition graph.h:1332
qreal denomIRCC
Definition graph.h:1383
double canvasRandomY() const
Returns a random y-coordinate adjusted to be visible inside the canvas usable area.
Definition graph_canvas.cpp:124
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:218
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:839
int m_crawler_visited_urls
Definition graph.h:1315
int classesIC
Definition graph.h:1404
ModStatus
Definition graph.h:397
@ EdgeMetadata
Definition graph.h:402
@ SavedUnchanged
Definition graph.h:399
@ MinorOptions
Definition graph.h:400
@ VertexPositions
Definition graph.h:403
@ VertexEdgeCount
Definition graph.h:407
@ VertexCount
Definition graph.h:405
@ NewNet
Definition graph.h:398
@ EdgeCount
Definition graph.h:406
@ VertexMetadata
Definition graph.h:401
@ MajorChanges
Definition graph.h:404
bool calculatedIRCC
Definition graph.h:1439
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:1428
void vertexNumberSizeInit(const int &size)
Changes the initial size of vertex numbers.
Definition graph_vertex_style.cpp:332
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
H_StrToInt discreteICs
Definition graph.h:1354
qreal meanSDC
Definition graph.h:1367
void addGuideCircle(const double &, const double &, const double &)
QString initVertexColor
Definition graph.h:1451
QDateTime actualDateTime
Definition graph.h:1456
bool calculatedCentralities
Definition graph.h:1435
void signalGraphSavedStatus(const int &status)
qreal maxCLC
Definition graph.h:1393
qreal graphDistanceEuclidean(const QPointF &a, const QPointF &b)
Computes the euclideian distance between QPointF a and b.
Definition graph_layouts_force.cpp:1062
void edgeFilterReset()
Re-enables all edges in the current relation.
Definition graph_edge_filters.cpp:172
void signalGraphDirectedChanged(const bool &directed)
bool m_graphIsConnected
Definition graph.h:1444
bool calculatedTriad
Definition graph.h:1440
qreal groupPP
Definition graph.h:1391
Clustering
Definition graph.h:411
@ Single_Linkage
Definition graph.h:412
@ Complete_Linkage
Definition graph.h:413
@ Average_Linkage
Definition graph.h:414
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:379
QString edgeColor(const int &v1, const int &v2)
Returns the color of the directed edge v1->v2.
Definition graph_edge_style.cpp:148
int classesSBC
Definition graph.h:1399
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:349
Matrix DM
Definition graph.h:1348
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:98
void relationCurrentRename(const QString &newName)
Overload. Renames current relation to newName, without emitting any signal to MW.
Definition graph_relations.cpp:263
QList< int > vertexReciprocalNeighborsList(const int &v1)
Returns a list of all vertices reciprocally connected to vertex v1 in the current relation.
Definition graph_structure_metrics.cpp:52
qreal groupSPC
Definition graph.h:1385
int maxNodeEccentricity
Definition graph.h:1403
int m_fileFormat
Definition graph.h:1362
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:1371
qreal maxSCC
Definition graph.h:1382
void edgeRemoveSelected(SelectedEdge &selectedEdge, const bool &removeReverse)
Removes a SelectedEdge.
Definition graph_edges.cpp:412
Graph(const int &reserveVerticesSize=5000, const int &reserveEdgesPerVertexSize=500)
Constructs a Graph.
Definition graph.cpp:45
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:1430
QColor vertexColor(const int &v) const
Graph::vertexColor.
Definition graph_vertex_style.cpp:265
bool isConnectedCached() const
Returns true if the graph is connected, without recalculating it.
Definition graph_distance_facade.cpp:139
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:1387
int minNodeSSC
Definition graph.h:1401
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:1405
int minNodeDP
Definition graph.h:1395
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:1417
int getGeodesicsCount()
Returns the number of geodesics (shortest-paths) in the graph.
Definition graph_distance_facade.cpp:83
int classesPP
Definition graph.h:1406
qreal sumSPC
Definition graph.h:1385
QString htmlHeadLight
Definition graph.h:1454
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:1376
void vertexFilterRestoreAll()
Restores vertex and edge visibility from the top snapshot on the history stack.
Definition graph_node_filters.cpp:603
bool vertexIsolated(const int &v1) const
Checks if vertex is isolated.
Definition graph_vertices.cpp:1174
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:1434
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:1105
H_StrToInt discreteIRCCs
Definition graph.h:1353
bool calculatedPP
Definition graph.h:1438
void signalProgressBoxUpdate(const int &count=0)
bool saveToDotFormat(const QString &fileName)
Saves the active graph (current relation) to a GraphViz DOT file.
Definition graph_io.cpp:582
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:130
bool hasCalculatedTriadCensus() const
Definition graph.h:1125
bool calculatedVerticesSet
Definition graph.h:1434
void relationsClear()
Clears relationships in this Graph.
Definition graph_relations.cpp:282
void writeReciprocity(const QString fileName, const bool considerWeights=false)
Writes reciprocity report to filename.
Definition graph_reports.cpp:31
qreal meanPP
Definition graph.h:1377
void vertexNumberDistanceInit(const int &distance)
Changes the initial distance of vertex numbers.
Definition graph_vertex_style.cpp:379
int minNodeCLC
Definition graph.h:1394
int vertexNumberMax()
Returns the number of the last vertex in the graph.
Definition graph_vertices.cpp:625
qreal meanPRP
Definition graph.h:1378
qreal nomIC
Definition graph.h:1388
double canvasMaxRadius() const
Gets the max radius of the canvas.
Definition graph_canvas.cpp:76
H_StrToInt discretePCs
Definition graph.h:1354
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:95
int m_graphReciprocityPairsTotal
Definition graph.h:1426
bool calculatedEVC
Definition graph.h:1437
void resetDistanceAggregates()
Definition graph_distance_cache.cpp:289
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:364
void edgeRemoveSelectedAll()
Removes all selected edges.
Definition graph_edges.cpp:422
void vertexLabelsVisibilitySet(bool toggle)
QString htmlEnd
Definition graph.h:1454
qreal maxIC
Definition graph.h:1388
void signalRelationRenamedToMW(const QString &newRelName)
int maxNodePRP
Definition graph.h:1405
bool visibilityHistoryEmpty() const
Returns true if the visibility history stack is empty.
Definition graph_node_filters.cpp:788
void relationNext()
Changes graph to next relation.
Definition graph_relations.cpp:151
int maxNodeIC
Definition graph.h:1404
int maxNodeIRCC
Definition graph.h:1398
qreal meanEVC
Definition graph.h:1375
void relationAdd(const QString &relName, const bool &changeRelation=false)
Adds a new relation to the graph.
Definition graph_relations.cpp:172
int m_graphWeaklyConnectedComponents
Definition graph.h:1445
int classesIRCC
Definition graph.h:1398
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:1433
bool initShowZeroWeightEdges
Definition graph.h:1452
bool calculatedDC
Definition graph.h:1438
int maxNodeCLC
Definition graph.h:1394
void vertexNumberSizeSet(const int &v, const int &newsize)
Changes the size of vertex v number.
Definition graph_vertex_style.cpp:342
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:1386
qreal sumSDC
Definition graph.h:1381
QList< qreal > m_clusteringLevel
Definition graph.h:1342
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:1436
int minNodeSPC
Definition graph.h:1400
qreal minSDC
Definition graph.h:1381
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:269
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:1382
void vertexIsolatedAllToggle(const bool &toggle)
Toggles the status of all isolated vertices (those without links).
Definition graph_vertices.cpp:1145
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:1215
qreal sumDP
Definition graph.h:1380
void edgeColorSet(const int &v1, const int &v2, const QString &color)
Changes the color of edge v1->v2.
Definition graph_edge_style.cpp:126
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:210
void vertexCustomAttributeSet(const int &v1, const QString &key, const QString &value)
Sets a single custom attribute key/value on vertex v1, leaving all other attributes untouched.
Definition graph_vertex_style.cpp:628
qreal averageCLC
Definition graph.h:1393
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:1381
bool isDirected()
Returns true if graph is directed.
Definition graph_state_flags.cpp:313
qreal minPP
Definition graph.h:1391
qreal varianceCLC
Definition graph.h:1393
Parser * file_parser
Definition graph.h:1308
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 graphvertex.h:51
Definition matrix.h:115
Lightweight value type representing a directed or undirected edge.
Definition global.h:225
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
Defines the FilterCondition struct shared by all attribute-based filters.
Replay descriptor stored alongside each GraphVisibilitySnapshot.
Global definitions, constants, enumerations, and utility types for SocNetV.
NetworkRequestType
Identifies the purpose of an outgoing network request.
Definition global.h:151
IndexType
Centrality / prestige index identifiers.
Definition global.h:118
static const int SUBGRAPH_CLIQUE
Definition global.h:172
static const int MATRIX_ADJACENCY
Definition global.h:181
@ Directed
Definition global.h:108
ChartType
Chart style for prominence distribution visualizations.
Definition global.h:139
QPair< int, int > SelectedEdge
Identifies a selected edge by its two endpoint vertex numbers.
Definition global.h:218
#define SOCNETV_USE_NAMESPACE
Definition global.h:28
QHash< int, int > H_Int
Definition graph.h:54
QList< QString > V_str
Definition graph.h:62
QList< int > L_int
Definition graph.h:60
QPair< int, pair_f_b > pair_i_fb
Definition graph.h:57
QHash< QString, bool > H_StrToBool
Definition graph.h:59
QHash< qreal, int > H_f_i
Definition graph.h:55
QList< GraphVertex * > VList
Definition graph.h:52
QMultiHash< int, pair_i_fb > H_edges
Definition graph.h:58
QList< int > V_int
Definition graph.h:61
QPair< qreal, bool > pair_f_b
Definition graph.h:56
QHash< QString, int > H_StrToInt
Definition graph.h:53
Defines GraphQuery — a multi-condition AND filter applied as one chip.
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,...
Describes a single attribute-based filter condition.
Definition filter_condition.h:24
Records how to re-apply one filter operation from scratch.
Definition filter_spec.h:36
Definition graph.h:424
QHash< int, bool > nodeVisible
Definition graph.h:425
bool active
Definition graph.h:427
QHash< QPair< int, int >, bool > arcVisible
Definition graph.h:426
FilterSpec spec
Definition graph.h:428
A compound AND-logic filter applied in one operation (one snapshot, one chip).
Definition graph_query.h:28
Declares the WebCrawler class for extracting and processing network data from web pages and online re...