##################################
#                                #
# Last modified 02/17/2016       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string

def run():

    if len(sys.argv) < 2:
        print 'usage: python %s fasta outputfilename' % sys.argv[0]
        sys.exit(1)

    fasta = sys.argv[1]
    outfilename = sys.argv[2]

    SeqDict={}
    sequence=''
    inputdatafile = open(fasta)
    for line in inputdatafile:
        if line[0]=='>':
            if sequence != '':
                if SeqDict.has_key(''.join(sequence).upper()):
                    pass
                else:
                    SeqDict[''.join(sequence).upper()] = []
                SeqDict[''.join(sequence).upper()].append(chr)
            chr = line.strip().split('>')[1]
            sequence=[]
            Keep=False
            continue
        else:
            sequence.append(line.strip())
    if SeqDict.has_key(''.join(sequence).upper()):
        pass
    else:
        SeqDict[''.join(sequence).upper()] = []
    SeqDict[''.join(sequence).upper()].append(chr)

    outfile = open(outfilename, 'w')

    for sequence in SeqDict.keys():
        outline = '>' + SeqDict[sequence][0]
        outfile.write(outline + '\n')
        outfile.write(sequence + '\n')

    outfile.close()
   
run()
