title: How to find all cliques in an edge list
body: <p>I have a massive edge list file (~80 GB) of orthologous genes from an old OrthoMCL process. I would like to parse all cliques (a subgraph where all vertices share an edge with each other) out of the edge list and then collapse each clique to one line while ignoring reducdancy (Eg GeneA,GeneB &lt;-> GeneB,GeneA) and self hits (GeneA &lt;-> GeneA). I am experimenting with Python's networkX (find_cliques) but I am somewhat of an inexperienced programmer so I am not getting a desirable output. If anyone has any experience working with network structures could you please point me in the right direction?</p>
  
  <p>Here is an example input:</p>
  
  <pre><code>GeneA,GeneA
  GeneA,GeneB
  GeneA,GeneC
  GeneB,GeneA
  GeneB,GeneB
  GeneB,GeneC
  GeneC,GeneA
  GeneC,GeneB
  GeneC,GeneC
  GeneD,GeneD
  GeneD,GeneE
  GeneD,GeneF
  GeneE,GeneD
  GeneE,GeneE
  GeneE,GeneF
  GeneF,GeneD
  GeneF,GeneE
  GeneF,GeneF
  GeneH,GeneH
  GeneH,GeneI
  GeneH,GeneJ
  GeneH,GeneK
  GeneH,GeneL
  GeneH,GeneM
  GeneH,GeneN
  GeneH,GeneO
  GeneH,GeneP
  GeneH,GeneQ
  GeneI,GeneH
  GeneI,GeneI
  GeneI,GeneJ
  GeneI,GeneK
  GeneI,GeneL
  GeneI,GeneM
  GeneI,GeneN
  GeneI,GeneO
  GeneI,GeneP
  GeneI,GeneQ
  GeneJ,GeneH
  GeneJ,GeneI
  GeneJ,GeneJ
  GeneJ,GeneK
  GeneJ,GeneL
  GeneJ,GeneM
  GeneJ,GeneN
  GeneJ,GeneO
  GeneJ,GeneP
  GeneJ,GeneQ
  GeneK,GeneH
  GeneK,GeneI
  GeneK,GeneJ
  GeneK,GeneK
  GeneK,GeneL
  GeneK,GeneM
  GeneK,GeneN
  GeneK,GeneO
  GeneK,GeneP
  GeneK,GeneQ
  GeneL,GeneH
  GeneL,GeneI
  GeneL,GeneJ
  GeneL,GeneK
  GeneL,GeneL
  GeneL,GeneM
  GeneL,GeneN
  GeneL,GeneO
  GeneL,GeneP
  GeneL,GeneQ
  GeneM,GeneH
  GeneM,GeneI
  GeneM,GeneJ
  GeneM,GeneK
  GeneM,GeneL
  GeneM,GeneM
  GeneM,GeneN
  GeneM,GeneO
  GeneM,GeneP
  GeneM,GeneQ
  GeneN,GeneH
  GeneN,GeneI
  GeneN,GeneJ
  GeneN,GeneK
  GeneN,GeneL
  GeneN,GeneM
  GeneN,GeneN
  GeneN,GeneO
  GeneN,GeneP
  GeneN,GeneQ
  GeneO,GeneH
  GeneO,GeneI
  GeneO,GeneJ
  GeneO,GeneK
  GeneO,GeneL
  GeneO,GeneM
  GeneO,GeneN
  GeneO,GeneO
  GeneO,GeneP
  GeneO,GeneQ
  GeneP,GeneH
  GeneP,GeneI
  GeneP,GeneJ
  GeneP,GeneK
  GeneP,GeneL
  GeneP,GeneM
  GeneP,GeneN
  GeneP,GeneO
  GeneP,GeneP
  GeneP,GeneQ
  GeneQ,GeneH
  GeneQ,GeneI
  GeneQ,GeneJ
  GeneQ,GeneK
  GeneQ,GeneL
  GeneQ,GeneM
  GeneQ,GeneN
  GeneQ,GeneO
  GeneQ,GeneP
  GeneQ,GeneQ
  GeneR,GeneR
  GeneR,GeneS
  GeneR,GeneT
  GeneR,GeneU
  GeneS,GeneR
  GeneS,GeneS
  GeneS,GeneT
  GeneS,GeneU
  GeneT,GeneR
  GeneT,GeneS
  GeneT,GeneT
  GeneT,GeneU
  GeneU,GeneR
  GeneU,GeneS
  GeneU,GeneT
  GeneU,GeneU
  GeneV,GeneW
  GeneW,GeneV
  GeneX,GeneX
  GeneX,GeneY
  GeneX,GeneZ
  GeneY,GeneX
  GeneY,GeneY
  GeneY,GeneZ
  GeneZ,GeneX
  GeneZ,GeneY
  GeneZ,GeneZ
  </code></pre>
  
  <p>Here is the desired output:</p>
  
  <pre><code>GeneA,GeneB,GeneC
  GeneD,GeneE,GeneF
  GeneH,GeneI,GeneJ,GeneK,GeneL,GeneM,GeneN,GeneO,GeneP,GeneQ
  GeneR,GeneS,GeneT,GeneU
  GeneV,GeneW
  GeneX,GeneY,GeneZ
  </code></pre>
  
  <p>Thanks in advance!</p>