-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgetbiosam.py
38 lines (30 loc) · 1.12 KB
/
getbiosam.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import sys
def remove_items(test_list,item):
res = [i for i in test_list if i!= item]
return res
def fetch_biosam(startprojn,startbiosamn):
projects = []
with open('projlist.txt') as f:
projects = f.read().splitlines()
pcount = 0
for project in projects:
pcount += 1
if pcount < startprojn:
continue
print("~~~Project {}: {} ~~~".format(pcount,project))
biosamples = []
with open('./biosample/{}.txt'.format(project)) as p:
biosamples = p.read().splitlines()
biosamples = remove_items(biosamples,'')
bcount = 0
for biosample in biosamples:
bcount += 1
if (pcount == startprojn) and (bcount < startbiosamn):
continue
print("Biosample {}: {}".format(bcount,biosample))
os.system("esearch -db biosample -query '{}' | efetch -format xml | cat > ./biosample/{}/{}.xml".format(biosample,project,biosample))
#print(biosamples)
print("DONE")
if __name__ == '__main__':
fetch_biosam(int(sys.argv[1]),int(sys.argv[2]))