annotate config_lookup/config_lookup.py @ 17:0694c93739bf draft

Uploaded
author computationaltranscriptomics
date Thu, 16 Jan 2020 02:31:31 -0500 (2020-01-16)
parents 76b7a84ba942
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
1 #!/usr/local/bin/python3
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
2
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
3 '''
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
4 This script downloads lookup tables and integrates these into the Galaxy instance
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
5
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
6 USAGE
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
7 config_lookup.py --galaxy GALAXY --acclinks ACCLINKS [--acclists ACCLISTS]
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
8
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
9 OPTIONS
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
10 -h, --help show this help message and exit
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
11
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
12 '''
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
13
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
14 import os
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
15 import argparse
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
16 import requests
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
17 import sys
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
18 import shutil
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
19
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
20
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
21 def main():
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
22 # parse arguments
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
23 parser = argparse.ArgumentParser(description='incorporate the accession lists in GLASSgo/Galaxy to enable clade-specific searches')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
24 parser.add_argument('--galaxy', required=True, help='(absolute) path to the root directory of the Galaxy instance')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
25 parser.add_argument('--acclinks', required=True, help='(absolute) path to file containing URLs to the accession lists')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
26 parser.add_argument('--acclists', help='(absolute) path to directory to save the accession lists to')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
27 args = parser.parse_args()
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
28
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
29 # ./acclists as default folder for the accession lists
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
30 if args.acclists == None:
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
31 args.acclists = os.path.join(os.getcwd(),'acclists')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
32
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
33 # check for existence of the folders for galaxy and URLs to the accession lists
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
34 if not os.path.exists(args.galaxy):
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
35 print('\tERROR: ' + args.galaxy + ' could not be found!')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
36 sys.exit()
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
37 if not os.path.exists(args.acclinks):
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
38 print('\tERROR: ' + args.acclinks + ' could not be found!')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
39 sys.exit()
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
40
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
41 print('################ configure the accession lists ################')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
42 print('### the accession lists will be saved to ' + args.acclists)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
43
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
44 # create folder for accession lists
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
45 if not os.path.exists(args.acclists):
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
46 os.makedirs(args.acclists)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
47
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
48 #
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
49 with open(args.acclinks, 'r') as link:
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
50 # create list with lookup tables that populates the user interface
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
51 accDataTableFile = os.path.join(os.getcwd(),'tool-data/glassgo_accession_list.txt')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
52
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
53 accDataTable = open(accDataTableFile,'w')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
54 accDataTable.write('global\tglobal\n')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
55 # fetch accession lists
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
56 for url in link:
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
57 acc = requests.get(url)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
58 filename = str(os.path.basename(url)).replace('\n','')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
59 print('### fetch: ' + filename)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
60 open(os.path.join(args.acclists,filename),'wb').write(acc.content)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
61
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
62 #
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
63 accDataTable.write(filename + '\t')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
64 accDataTable.write(os.path.join(args.acclists,filename) + '\n')
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
65
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
66 accDataTable.close()
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
67 print('### create tab-separated list '+ accDataTableFile)
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
68
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
69 # move list with accession list to /galaxy/tool-data
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
70 shutil.copy(accDataTableFile,os.path.join(args.galaxy,'tool-data/'))
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
71 print('### move tab-separated list to ' + str(os.path.join(args.galaxy,'tool-data/')))
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
72
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
73 #
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
74 if __name__ == "__main__":
76b7a84ba942 Uploaded
computationaltranscriptomics
parents:
diff changeset
75 main()