comparison xenaFindDatasets/xenaFindDatasets.py @ 0:a4253c71f31d

Uploaded
author melissacline
date Tue, 09 Sep 2014 21:53:10 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:a4253c71f31d
1 #!/usr/bin/env python
2
3 import argparse
4 import json
5 from functools import partial
6 import re
7 import xena_query as xena
8
9 # xena url for public datasets, at ucsc
10 xena_url = "https://genome-cancer.ucsc.edu/proj/public/xena"
11
12
13 def main():
14 parser = argparse.ArgumentParser()
15 parser.add_argument("datasetType", type=str)
16 parser.add_argument("cohortName", type=str)
17 parser.add_argument("outfile", type=str)
18 args = parser.parse_args()
19
20 cohort = args.cohortName
21 if not re.search("^%", cohort):
22 cohort = "%" + cohort
23 if not re.search("%$", cohort):
24 cohort = cohort + "%"
25
26 # short-hand wrappers for xena methods
27 post = xena.compose(json.loads, partial(xena.post, xena_url))
28 find_datasets_type_pattern = xena.compose(post,
29 xena.find_datasets_type_pattern)
30 name_to_url = partial(xena.name_to_url, xena_url)
31 datasets = find_datasets_type_pattern(args.datasetType, cohort)
32 fp = open(args.outfile, "w")
33 fp.write("Cohort\tDataset\n")
34 for thisDataset in datasets:
35 tokens = thisDataset.split("/")
36 cohort = tokens[-2]
37 datasetName = tokens[-1]
38 fp.write("%s\t%s\n" % (cohort, datasetName))
39 fp.close()
40
41 if __name__ == "__main__":
42 main()