Skip to content

Commit 012edd8

Browse files
committed
Add helper scripts used for moving guides and primers between assemblies
1 parent 777dca7 commit 012edd8

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

src/helpers/asCSV.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/python3
2+
3+
import csv, sys
4+
from Config3 import Config
5+
6+
7+
if __name__ == "__main__":
8+
db = Config(sys.argv[1])
9+
guides = db.guideCollection.find()
10+
with open("guides-%s.csv" % sys.argv[1], 'w') as f:
11+
writer = csv.DictWriter(f, fieldnames=list(guides[0].keys()) + ["pamLocation","org","dateAdded","commitHash","strand"])
12+
writer.writeheader()
13+
writer.writerows(guides)
14+
primers = db.primerCollection.find()
15+
with open("primers-%s.csv" % sys.argv[1], 'w') as f:
16+
writer = csv.DictWriter(f, fieldnames=list(primers[0].keys()) + ["pamLocation","org","dateAdded","commitHash","strand"])
17+
writer.writeheader()
18+
writer.writerows(primers)

src/helpers/importCSV.py

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/python3
2+
3+
import csv, sys
4+
from pprint import pprint
5+
from typing import Dict
6+
from pymongo.errors import BulkWriteError
7+
from Config3 import Config
8+
9+
10+
def pop(d: Dict[str, str]) -> Dict[str, str]:
11+
d.pop("_id", None)
12+
return d
13+
14+
15+
def reset_guides(d: Dict[str, str]) -> Dict[str, str]:
16+
d["guides"] = { "rank": "manual", "ids": [] }
17+
return d
18+
19+
20+
if __name__ == "__main__":
21+
db = Config(sys.argv[1])
22+
if sys.argv[2] == "guides":
23+
with open(sys.argv[3]) as f:
24+
reader = csv.DictReader(f)
25+
results = [pop(d) for d in reader]
26+
try:
27+
db.guideCollection.insert_many(results)
28+
except BulkWriteError as e:
29+
pprint(e.details)
30+
elif sys.argv[2] == "primers":
31+
with open(sys.argv[3]) as f:
32+
reader = csv.DictReader(f)
33+
results = [reset_guides(pop(d)) for d in reader]
34+
try:
35+
db.primerCollection.insert_many(results)
36+
except BulkWriteError as e:
37+
pprint(e.details)

0 commit comments

Comments
 (0)