##################################
#                                #
# Last modified 01/15/2015       # 
#                                #
# Georgi Marinov                 #
#                                # 
##################################

import sys
import string

def run():

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

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

    L = 0.0
    A = 0
    C = 0
    G = 0
    T = 0
    linelist = open(fasta)
    for line in linelist:
        if line.startswith('>'):
            continue
        A += line.strip().count('A')
        C += line.strip().count('C')
        G += line.strip().count('G')
        T += line.strip().count('T')
        L += len(line.strip())

    outfile = open(outfilename, 'w')
    outline = '#Name\tLength\tA\tC\tG\tT\tA\tC\tG\tT\tGC'
    outfile.write(outline + '\n')
    if fasta.endswith('.fasta'):
        name = fasta.split('.fasta')[0].split('/')[-1]
    elif fasta.endswith('.fa'):
        name = fasta.split('.fa')[0].split('/')[-1]
    else:
        name = fasta.split('/')[-1]
    outline = name + '\t' + str(int(L)) + '\t' + str(A) + '\t' + str(C) + '\t' + str(G) + '\t' + str(T) + '\t' + str(A/L) + '\t' + str(C/L) + '\t' + str(G/L) + '\t' + str(T/L) + '\t' + str((G+C)/L)

    outfile.write(outline + '\n')
    outfile.close()

run()

