root/galaxy-central/cron/add_manual_builds.py

リビジョン 2, 1.5 KB (コミッタ: hatakeyama, 14 年 前)

import galaxy-central

行番号 
1#!/usr/bin/env python
2
3"""
4Adds Manually created builds and chrom info to Galaxy's info tables
5
6Usage:
7python add_manual_builds.py input_file builds.txt chrom_length_dir
8"""
9
10import sys,os
11
12def add_manual_builds(input_file, build_file, chr_dir):
13    #determine existing builds, so as to not overwrite
14    existing_builds = []
15    for line in open(build_file):
16        try:
17            if line.startswith("#"): continue
18            existing_builds.append(line.replace("\n","").replace("\r","").split("\t")[0])
19        except:
20            continue
21    build_file_out = open(build_file,'a')
22    for line in open(input_file):
23        try:
24            fields = line.split("\t")
25            build = fields.pop(0)
26            if build in existing_builds: continue # if build exists, leave alone
27            name = fields.pop(0)
28            chrs = fields.pop(0).replace("\n","").replace("\r","").split(",")
29            print>>build_file_out, build+"\t"+name+" ("+build+")"
30            chr_len_out=open( os.path.join(chr_dir,build+".len"),'w')
31            for chr in chrs:
32                print>>chr_len_out, chr.replace("=","\t")
33            chr_len_out.close()
34        except:
35            continue
36    build_file_out.close()
37
38if __name__ == "__main__":
39    if len(sys.argv) < 4:
40        print "USAGE: python add_manual_builds.py input_file builds.txt chrom_length_dir"
41        sys.exit(1)
42    input_file = sys.argv[1]
43    build_file = sys.argv[2]
44    chr_dir = sys.argv[3]
45    add_manual_builds(input_file,build_file,chr_dir)
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。