#! /usr/bin/env python import os, sys, string, cp import SeqIO def main(): """ %(filename)s Writes sequences in fasta format to a file in which each name and sequence string are contained on a single line (names and sequences are tab-delimited). Useful for exporting sequences to excel or for sorting by name or sequence. {{out name of outfile. Prints to stdout by default.}} {{degap remove gap characters from sequences.}} {{hea include header line after sequence name}} {{h Prints documentation.}} {{v verbosity 1}} {{version print version info and exit}} %(version)s """ debug = 0 docstringdict = {'filename':os.path.split(sys.argv[0])[-1], 'version':'$Id: fasta2lines.py,v 1.1 2004/10/10 02:53:10 nghoffma Exp $'} optlist, formattedDocString, formattedSummary = cp.optStringParser(main.__doc__ % docstringdict, optWidth=15, lineWidth=60, valOffset = 4, putVals=1) dict = cp.commandparser(options=optlist, usage='Options:\n' + formattedSummary, debug = debug, exitWithUsage=1) if dict.status('version'): sys.exit( 'Version: %(version)s\n' % docstringdict ) if dict.status('h'): print formattedDocString sys.exit( 0 ) v = dict.value('v') header = dict.status('hea') degap = dict.status('degap') #read from a list of fasta files fasta_list = dict.value('infile_list', 'in','file') fasta = SeqIO.readFastaList(fasta_list, output='list', degap=degap) #write to stdout by default writeToFile = 0 if dict.status('out'): outfile = dict.value('out','out','file') else: outfile = sys.stdout v = 0 for seq in fasta: if header: lineout = '%s\t%s\t%s\n' % (seq.getName(), seq.getHea(), seq.getSeq()) else: lineout = '%s\t%s\n' % (seq.getName(), seq.getSeq()) outfile.write(lineout) if __name__ == '__main__': main()