##################################
#                                #
# Last modified 02/26/2015       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string

try:
	import psyco
	psyco.full()
except:
	pass

def run():

    if len(sys.argv) < 2:
        print 'usage: python %s sequence outfilename' % sys.argv[0]
        print '\tThe script can take both lower case and capital letters as input'
        print '\tThe script will take the IUPAC symbols for more than one nucleotide'
        sys.exit(1)

    sequence = sys.argv[1].upper()
    outputfilename = sys.argv[2]

    outfile = open(outputfilename, 'w')
    outline = 'tagid' + '\t' + sequence
    outfile.write(outline + '\n')
    outline = 'info' + '\t'
    outfile.write(outline + '\n')
    outline = 'threshold' + '\t'
    outfile.write(outline + '\n')
    outline = 'motif' + '\t' + sequence
    outfile.write(outline + '\n')

    for s in sequence:
        outline = 'acgt' + '\t'
        if s == 'A':
            outline = outline + '1\t0\t0\t0'
        if s == 'C':
            outline = outline + '0\t1\t0\t0'
        if s == 'G':
            outline = outline + '0\t0\t1\t0'
        if s == 'T':
            outline = outline + '0\t0\t0\t1'
        if s == 'R':
            outline = outline + '0.5\t0\t0.5\t0'
        if s == 'Y':
            outline = outline + '0\t0.5\t0\t0.5'
        if s == 'S':
            outline = outline + '0\t0.5\t0.5\t0'
        if s == 'W':
            outline = outline + '0.5\t0\t0\t0.5'
        if s == 'K':
            outline = outline + '0\t0\t0.5\t0.5'
        if s == 'M':
            outline = outline + '0.5\t0.5\t0\t0'
        if s == 'B':
            outline = outline + '0\t0.33\t0.33\t0.33'
        if s == 'D':
            outline = outline + '0.33\t0\t0.33\t0.33'
        if s == 'H':
            outline = outline + '0.33\t0.33\t0\t0.33'
        if s == 'V':
            outline = outline + '0.33\t0.33\t0.33\t0'
        if s == 'N':
            outline = outline + '0.25\t0.25\t0.25\t0.25'
        outfile.write(outline + '\n')

    outfile.close()

run()

