In [ ]:
import pandas as pd
import subprocess

mv Untitled.jar ConnectedComponents.jar

worked:

badger:Neo4j_meta4 janet$ pwd
/Users/janet/Neo4j_meta4
badger:Neo4j_meta4 janet$ java -jar ConnectedComponents.jar 0.03

In [ ]:
subprocess.check_output(['echo', 'hello'])

In [ ]:
! pwd

In [ ]:
! ls -l ../ConnectedComponents.jar

In [ ]:
example_result = subprocess.check_output(['java', '-jar', '../ConnectedComponents.jar', '0.03'])

In [ ]:
example_result

In [ ]:
type(example_result)

In [ ]:
print(example_result)

In [ ]:
result_string = str(example_result,'utf-8')

In [ ]:
type(result_string)

In [ ]:
import re

In [ ]:
re.findall(r'There are \d+ different connected components for cutoff \d+.\d+', result_string)

TODO: wipe the database before each call.


In [ ]:
example_result = None  # wipe out pre-existing if exists
example_result = subprocess.check_output(['java', '-jar', '../ConstructBinaryNetwork.jar', '0.03'])

In [ ]:
example_result

In [ ]:
def connected_components(cutoff = 0.03):
    print('find connected components for edges with magnitude greater than {}'.format(cutoff))
    example_result = subprocess.check_output(
        ['java', '-jar', '../ConnectedComponents.jar', str(cutoff)])
    results = str(example_result,'utf-8')
    result_sentence = re.findall(r'There are \d+ different connected '
                                 'components for cutoff \d+.\d+', results)[0]
    print(result_sentence)
    cc = re.findall('(\d+) different', result_sentence)
    cutoff = re.findall('for cutoff (\d+.\d+)', result_sentence)
    return {'cutoff': cutoff, 'connected components':cc}

In [ ]:
connected_components()

In [ ]:
connected_components(0.05)

In [ ]:
results = pd.DataFrame()
#import pdb; pdb.set_trace()
for i in [0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07]:
    #result = pd.DataFrame({'connected components': ['6'], 'cutoff': [i]})
    #print(result)
    result = pd.DataFrame(connected_components(i))
    results = pd.concat([results, result], axis=0)
print(results)

In [ ]:
results

In [ ]: