Mercurial > repos > melissacline > xena_find_datasets
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() |