0
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
1 // $ node neo4j_remove.js a a localhost 7474 1
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
2
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
3 var
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
4 esc = require('querystring').escape,
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
5 neo4j = require('./neo4j_driver.js');
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
6
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
7 var
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
8 file_nodes = process.argv[2],
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
9 file_relations = process.argv[3],
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
10 host = process.argv[4],
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
11 port = process.argv[5]
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
12 debug = Number(process.argv[6]),
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
13 neo4jClient = neo4j.createClient({'host':host, 'port':port}),
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
14 uri_base = 'http://' + host + ':' + port + '/db/data/';
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
15
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
16 var start = process.hrtime();
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
17
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
18 var elapsed_time = function(note){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
19 var precision = 3; // 3 decimal places
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
20 var elapsed = process.hrtime(start)[1] / 1000000; // divide by a million to get nano to milli
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
21 console.log(process.hrtime(start)[0] + " s, " + elapsed.toFixed(precision) + " ms - " + note); // print message + time
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
22 start = process.hrtime(); // reset the timer
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
23 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
24
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
25 deleteRelationships(0, 11694, function(){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
26 deleteNodes(1, 545, function(){});
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
27 });
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
28
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
29
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
30 function deleteNodes(base, num, callback){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
31 var cnt = 0;
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
32 for(var i = base + 1; i <= base + num; i++){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
33 deleteNode(i, function(){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
34 cnt += 1;
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
35 if(cnt % 100 == 0){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
36 if(debug) console.log('DELETING NODES STATUS:', cnt);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
37 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
38 if(cnt == num){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
39 console.log('DELETING NODES FINISHED:', cnt);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
40 callback();
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
41 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
42 });
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
43 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
44 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
45 function deleteNode(id, callback){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
46 // USE BATCH BECAUSE DELETE METHOD IS NOT DEFINED IN THE DRIVER
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
47 data = [{'method':'DELETE', 'to':'node/' + id, 'body':'', 'id':0}];
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
48 neo4jClient.post('batch/', data, function(obj){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
49 console.log(obj);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
50 callback();
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
51 });
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
52 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
53 function deleteRelationships(base, num, callback){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
54 var cnt = 0;
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
55 for(var i = base + 1; i <= base + num; i++){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
56 deleteRelationship(i, function(){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
57 cnt += 1;
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
58 if(cnt % 100 == 0){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
59 if(debug) console.log('DELETING RELATIONSHIPS STATUS:', cnt);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
60 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
61 if(cnt == num){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
62 console.log('DELETING RELATIONSHIPS FINISHED:', cnt);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
63 callback();
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
64 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
65 });
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
66 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
67 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
68 function deleteRelationship(id, callback){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
69 // USE BATCH BECAUSE DELETE METHOD IS NOT DEFINED IN THE DRIVER
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
70 data = [{'method':'DELETE', 'to':'relationship/' + id, 'body':'', 'id':0}];
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
71 neo4jClient.post('batch/', data, function(obj){
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
72 //console.log(obj);
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
73 callback();
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
74 });
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
75 }
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
76
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
77
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
78
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
79
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
80
|
ryo_tas <yamanaka@genome.rcast.u-tokyo.ac.jp>
parents:
diff
changeset
|
81
|