now support -o output option, useful for pipelines

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3959 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
depristo 2010-08-06 14:57:04 +00:00
parent 9076c0b28b
commit 669d9096e3
2 changed files with 9 additions and 3 deletions

View File

@ -15,6 +15,9 @@ if __name__ == "__main__":
parser.add_option("-s", "--s", dest="skip", parser.add_option("-s", "--s", dest="skip",
type='int', default=0, type='int', default=0,
help="Only print out every 1 / skip records") help="Only print out every 1 / skip records")
parser.add_option("-o", "--output", dest="OUTPUT",
type='string', default=None,
help="Path to output file. stdout if not provided")
(OPTIONS, args) = parser.parse_args() (OPTIONS, args) = parser.parse_args()
if len(args) > 1: if len(args) > 1:
@ -28,11 +31,14 @@ if __name__ == "__main__":
if OPTIONS.fields == None: if OPTIONS.fields == None:
sys.exit("Fields argument must be provided") sys.exit("Fields argument must be provided")
out = sys.stdout
if OPTIONS.OUTPUT != None: out = open(OPTIONS.OUTPUT, 'w')
fields = OPTIONS.fields.split(',') fields = OPTIONS.fields.split(',')
for header, vcf, count in lines2VCF(src, extendedOutput = True): for header, vcf, count in lines2VCF(src, extendedOutput = True):
#print vcf, count #print vcf, count
if count == 1 and vcf.hasHeader(): if count == 1 and vcf.hasHeader():
print '\t'.join(fields) print >> out, '\t'.join(fields)
if counter > 0: if counter > 0:
counter -= 1 counter -= 1
@ -41,4 +47,4 @@ if __name__ == "__main__":
if OPTIONS.filter and vcf.failsFilters(): if OPTIONS.filter and vcf.failsFilters():
pass pass
else: else:
print '\t'.join([ str(vcf.getField(field, '0')) for field in fields]) print >> out, '\t'.join([ str(vcf.getField(field, '0')) for field in fields])

View File

@ -105,7 +105,7 @@ class VCFRecord:
#def getInfo(self): return self.get("INFO") #def getInfo(self): return self.get("INFO")
def getInfo(self): def getInfo(self):
def info2str(x,y): def info2str(x,y):
if type(y) == bool: if type(y) == bool or x == '.':
return str(x) return str(x)
else: else:
return str(x) + '=' + str(y) return str(x) + '=' + str(y)