##################################
#                                #
# Last modified 2017/02/01       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string
import math
import copy
from sets import Set

def run():

    if len(sys.argv) < 3:
        print 'usage: python %s presence_absence_fasta domain_orderoutfilename' % sys.argv[0]
        sys.exit(1)

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

    domainorderDict = {}

    outfile = open(outfilename, 'w')
    outline = '#species'

    linelist = open(domainorder)
    for line in linelist:
        fields = line.strip().split('\t')
        domain = fields[1]
        domainorderDict[int(fields[0]) + 1] = domain
        outline = outline + '\t' + domain

    outfile.write(outline + '\n')

    linelist = open(fasta)
    for line in linelist:
        if line.startswith('>'):
            species = line.strip().split('>')[1]
            outline = species
        else:
            for i in line.strip():
                outline = outline + '\t' + i
            outfile.write(outline + '\n')

    outfile.close()
   
run()
