amostragem de subgráficos de diferentes tamanhos usando o igraph

Eu tenho um objeto igraphmygraph com ~ 10.000 nós e ~ 145.000 bordas, e preciso criar um número de subgráficos a partir deste gráfico, mas com tamanhos diferentes. O que eu preciso é criar subgráficos a partir de um tamanho determinado (de 5 nós a 500 nós) onde todos os nós estão conectados em cada subgráfico. Preciso criar ~ 1.000 subgráficos para cada tamanho (ou seja, 1000 subgráficos para tamanho 5, 1000 para tamanho 6 e assim por diante) e depois calcular alguns valores para cada gráfico de acordo com os diferentes atributos do nó. Eu tenho algum código, mas leva muito tempo para fazer todos os cálculos. Eu pensei em usar ographlets funcionar para obter tamanhos diferentes, mas sempre que o executo no computador, ele falha devido a problemas de memória.

Aqui está o código que estou usando:

O primeiro passo foi criar uma função para criar subgráficos de tamanhos diferentes e fazer os cálculos necessários.

random_network<-function(size,G){
     score_fun<-function(g){                                                        
          subsum <- sum(V(g)$weight*V(g)$RWRNodeweight)/sqrt(sum(V(g)$RWRNodeweight^2))
           subsum
           } 

      genes.idx <- V(G)$name
      perm <- c()
      while(length(perm)<1000){
           seed<-sample(genes.idx,1) 
           while( length(seed)<size ){
                tmp.neigh <- V(G)[unlist(neighborhood(G,1,seed))]$name
                tmp.neigh <- setdiff(tmp.neigh, seed)
                if( length(tmp.neigh)>0 )  
                seed<-c(seed,sample(tmp.neigh,1)) else break 
            }
      if( length(seed)==size )
      perm <- c(perm,score_fun(induced.subgraph(G,seed)))
      } 
      perm
     } 

O segundo passo foi aplicar a função ao gráfico real

 ### generate some example data
 library(igraph)
 my_graph <- erdos.renyi.game(10000, 0.0003)
 V(my_graph)$name <- 1:vcount(my_graph)
 V(my_graph)$weight <- rnorm(10000)
 V(my_graph)$RWRNodeweight <- runif(10000, min=0, max=0.05)

 ### Run the code to get the subgraphs from different size and do calculations based on nodes
 genesets.length<- seq(5:500)
 genesets.length.null.dis <- list()
 for(k in 5:max(genesets.length){ 
     genesets.length.null.dis[[as.character(k)]] <- random_network(size=k,G=my_graph)
  }