@@ -1023,8 +1023,27 @@ class HIVTxNetwork {
1023
1023
let edge_set ;
1024
1024
1025
1025
if ( edgesByNode ) {
1026
+ let node_list = [ ...core_node_set ] ;
1027
+ let node_set = new Set ( node_list ) ;
1028
+
1029
+ for ( let i = 0 ; i < node_list . length ; i ++ ) {
1030
+ let d = node_list [ i ] ;
1031
+ if ( d in this . json . Nodes ) {
1032
+ _ . each ( [ ...edgesByNode [ d ] ] , ( e ) => {
1033
+ if ( ! node_set . has ( e . source ) ) {
1034
+ node_list . push ( e . source ) ;
1035
+ node_set . add ( e . source ) ;
1036
+ }
1037
+ if ( ! node_set . has ( e . target ) ) {
1038
+ node_list . push ( e . target ) ;
1039
+ node_set . add ( e . target ) ;
1040
+ }
1041
+ } ) ;
1042
+ }
1043
+ }
1044
+
1026
1045
const existing_nodes = _ . map (
1027
- _ . filter ( [ ... core_node_set ] , ( d ) => d in this . json . Nodes ) ,
1046
+ _ . filter ( node_list , ( d ) => d in this . json . Nodes ) ,
1028
1047
( d ) => edgesByNode [ d ]
1029
1048
) ;
1030
1049
@@ -1529,6 +1548,25 @@ class HIVTxNetwork {
1529
1548
pg . nodes . push ( n ) ;
1530
1549
} ) ;
1531
1550
1551
+ if ( inject_mspp_nodes . length ) {
1552
+ let desc = { } ;
1553
+
1554
+ _ . each ( inject_mspp_nodes , ( n ) => {
1555
+ let k = this . primary_key ( { id : n . name } ) ;
1556
+ if ( ! ( k in desc ) ) {
1557
+ desc [ k ] = [ ] ;
1558
+ }
1559
+ desc [ k ] . push ( n ) ;
1560
+ pg . nodes . push ( n ) ;
1561
+ } ) ;
1562
+
1563
+ pg . description +=
1564
+ " Migrated to multiple sequences per person cluster; added the following sequences: " +
1565
+ _ . map ( desc , ( k , n ) => {
1566
+ return n + "(" + k . length + ")" ;
1567
+ } ) . join ( ", " ) ;
1568
+ }
1569
+
1532
1570
/** extract network data at 0.015 and subcluster thresholds
1533
1571
filter on dates subsequent to the created date
1534
1572
*/
0 commit comments