#! /usr/bin/env python # from __future__ import division # / operator performs float rather than int division import os, sys, string, cp import SeqIO, Seq def main(): """ %(filename)s Converts a file in which each line contains [name] [sequence] to fasta format. Name and sequence strings may be separated by a tab or space characters. {{out name of outfile. Prints to stdout by default.}} {{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: lines2fasta.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') #read from a list of input files file_list = dict.value('infile_list', 'in','file') #write to stdout by default writeToFile = 0 if dict.status('out'): outfile = dict.value('out','out','file') else: outfile = sys.stdout v = 0 # process sequences for file in file_list: while 1: line = file.readline() if line == '' : break if line.strip() == '' : continue if line.strip()[0] == '#': continue #seqToFasta( seq, linelength = 60, degap = 0, acc=0, hea=0, begEnd=None, triplets=0, v=debugLevel, replace = {} ) #__init__( self, name, type, seq, acc='',hea='' ) splitline = line.split() #### added NH 030324 to convert katie's sequence spreadsheets seqname = splitline[0] header = splitline[1:-1] seqstr = splitline[-1] seq = Seq.Seq( name=seqname, hea=string.join(header), seq=seqstr ) thisFasta = SeqIO.seqToFasta(seq, hea=1) ##### #seq = Seq.Seq( splitline[0], string.join(splitline[1:],'') ) #thisFasta = SeqIO.seqToFasta(seq) outfile.write(thisFasta) if writeToFile: outfile.close() if __name__ == '__main__': main()