Skip to content

Commit adc8a64

Browse files
authored
Merge pull request #13 from holtgrewe/feature/config-arg
Users can now specify the config INI file Thanks for getting to this. I've been extremely busy over the past weeks.
2 parents f0d4a86 + a9bdf60 commit adc8a64

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

sv2/sv2.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
-b, -bed ... bed files(s) of SVs
4141
-snv ... snv vcf files(s), must be bgzipped and tabixed
4242
-p, -ped ... ped files(s)
43+
-ini ... configuration INI file (the default one lives in the sv2 package)
4344
4445
genotype arguments: github.com/dantaki/SV2/wiki/Options#genotype-arguments
4546
@@ -84,6 +85,7 @@ def main():
8485
inArgs.add_argument('-v','-vcf',type=str,default=None,nargs='*')
8586
inArgs.add_argument('-snv',type=str,default=None,nargs='*')
8687
inArgs.add_argument('-p','-ped',type=str,default=None,nargs='*')
88+
genoArgs.add_argument('-ini',required=False,default=None,type=str)
8789
genoArgs.add_argument('-g','-genome',required=False,default='hg19',type=str)
8890
genoArgs.add_argument('-pcrfree',required=False,default=False,action="store_true")
8991
genoArgs.add_argument('-M',default=False,required=False,action="store_true")
@@ -105,7 +107,7 @@ def main():
105107
optArgs.add_argument('-O','-odir',required=False,default=os.getcwd(),type=str)
106108
optArgs.add_argument('-h','-help',required=False,action="store_true",default=False)
107109
args = parser.parse_args()
108-
bams,bed,vcf,snv,ped = args.i,args.b,args.v,args.snv,args.p
110+
bams,bed,vcf,snv,ped,ini = args.i,args.b,args.v,args.snv,args.p,args.ini
109111
gen,pcrfree,legacy_m,merge_flag,min_ovr,anno_flag= args.g,args.pcrfree,args.M,args.merge,args.min_ovr,args.no_anno
110112
predir,featsdir = args.pre,args.feats
111113
clfLoad, classifier_name = args.load_clf,args.clf
@@ -124,6 +126,7 @@ def main():
124126
olog = logfh
125127
if olog == None: olog = 'STDOUT'
126128
print 'sv2 version:{} report bugs to <dantaki at ucsd dot edu> error messages located in {}'.format(__version__,olog)
129+
Config.ini=ini
127130
Confs=Config()
128131
if clfLoad!=None:
129132
Confs.load_clf(clfLoad)
@@ -236,4 +239,4 @@ def main():
236239
output(SV,SVs,Peds,ids,gen,outdir+ofh,anno_flag,tmp_dir)
237240
shutil.rmtree(tmp_dir)
238241
if logfh!=None: lfh.close()
239-
report_time(init_time,'GENOTYPING COMPLETE')
242+
report_time(init_time,'GENOTYPING COMPLETE')

sv2/sv2Config.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
__resource_url__ = 'https://github.com/dantaki/SV2/releases/download/sv2v1.4.0/sv2_resources.zip'
88
class Config():
99
def __init__(self):
10-
self.fh=get_path()+'/config/sv2.ini'
10+
if Config.ini:
11+
self.fh = Config.ini
12+
else:
13+
self.fh=get_path()+'/config/sv2.ini'
1114
self.json=get_path()+'/config/sv2_clf.json'
1215
self.fasta_chr_flag=False
1316
self.clfs=None
@@ -180,4 +183,7 @@ def write_config(self,hg19=None,hg38=None,mm10=None):
180183
conf.set('FASTA_PATHS','mm10',mm10)
181184
if self.resource != None:
182185
conf.set('RESOURCE_DIR','sv2_resource',self.resource)
183-
with open(self.fh,'w') as conf_fh: conf.write(conf_fh)
186+
with open(self.fh,'w') as conf_fh: conf.write(conf_fh)
187+
188+
# Path to INI file, if any.
189+
Config.ini = None

sv2/sv2_train.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
-b, -bed ... bed files(s) of SVs
3939
-snv ... snv vcf files(s), must be bgzipped and tabixed
4040
-p, -ped ... ped files(s)
41+
-ini ... path to configuration INI file, default lives in sv2 package
4142
4243
genotype arguments: github.com/dantaki/SV2/wiki/Options#genotype-arguments
4344
@@ -67,6 +68,7 @@ def main():
6768
inArgs.add_argument('-v','-vcf',type=str,default=None,nargs='*')
6869
inArgs.add_argument('-snv',type=str,default=None,nargs='*')
6970
inArgs.add_argument('-p','-ped',type=str,default=None,nargs='*')
71+
inArgs.add_argument('-ini',type=str,default=None)
7072
genoArgs.add_argument('-g','-genome',required=False,default='hg19',type=str)
7173
genoArgs.add_argument('-pcrfree',required=False,default=False,action="store_true")
7274
genoArgs.add_argument('-M',default=False,required=False,action="store_true")
@@ -79,7 +81,7 @@ def main():
7981
optArgs.add_argument('-O','-odir',required=False,default=os.getcwd(),type=str)
8082
optArgs.add_argument('-h','-help',required=False,action="store_true",default=False)
8183
args = parser.parse_args()
82-
bams,bed,vcf,snv,ped = args.i,args.b,args.v,args.snv,args.p
84+
bams,bed,vcf,snv,ped,ini = args.i,args.b,args.v,args.snv,args.p,args.ini
8385
gen,pcrfree,legacy_m,predir,featsdir= args.g,args.pcrfree,args.M,args.pre,args.feats
8486
logfh, tmp_dir, seed, ofh, odir = args.L,args.T,args.s,args.o,args.O
8587
_help = args.h
@@ -94,6 +96,7 @@ def main():
9496
olog = logfh
9597
if olog == None: olog = 'STDOUT'
9698
print 'sv2 version:{} report bugs to <dantaki at ucsd dot edu> error messages located in {}'.format(__version__,olog)
99+
Config.ini=ini
97100
Confs=Config()
98101
if bams==None and predir==None and featsdir==None:
99102
print 'FATAL ERROR: No BAM file specified <-i, -bam FILE ...>'
@@ -183,4 +186,4 @@ def main():
183186
sv2_train_output(feats,Peds,gen,train_dir+ofh)
184187
shutil.rmtree(tmp_dir)
185188
lfh.close()
186-
report_time(init_time,'FEATURE EXTRACTION COMPLETE')
189+
report_time(init_time,'FEATURE EXTRACTION COMPLETE')

0 commit comments

Comments
 (0)