From b8f5709b8bebb1ebe53505505b1360cc21e1691b Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 15 Feb 2013 17:47:49 -0500 Subject: tried to run it, fixed ftr several times --- quikr.py | 24 +++++++++++++----------- quikr_train.py | 16 +++++++--------- 2 files changed, 20 insertions(+), 20 deletions(-) mode change 100644 => 100755 quikr.py diff --git a/quikr.py b/quikr.py old mode 100644 new mode 100755 index 2c6815c..1feb82d --- a/quikr.py +++ b/quikr.py @@ -1,3 +1,4 @@ +#!/usr/bin/python import os import sys import scipy.optimize.nnls @@ -29,9 +30,12 @@ def main(): if not os.path.isfile(args.fasta): parser.error( "Input fasta file not found") - + # If we are using a custom trained matrix, we need to do some basic checks - if args.trained is not None: + if args.trained_matrix is not None: + + if not os.path.isfile(args.trained_matrix): + parser.error("custom trained matrix not be found") if args.kmer is None: parser.error("A kmer is required when using a custom matrix") @@ -43,14 +47,10 @@ def main(): input_lambda = 10000 # If we aren't using a custom trained matrix, load in the defaults else: - trained_matrix_location = "trainset7_112011N6Aaux.mat" + trained_matrix_location = "output.npy" input_lambda = 10000 kmer = 6 - - if not os.path.isfile(args.trained): - parser.error("custom trained matrix not be found") - - xstar = quikr(args.fasta, trained_matrix_location, kmer, input_lambda) + xstar = quikr(args.fasta, trained_matrix_location, kmer, input_lambda) return 0 @@ -74,10 +74,10 @@ def quikr(input_fasta_location, trained_matrix_location, kmer, default_lambda): # We use the count program to count ____ if uname == "Linux" and os.path.isfile("./count-linux"): print "Detected Linux" - count_input = Popen(["count-linux", "-r " + kmer, "-1", "-u", input_fasta_location], stdout=PIPE) + count_input = Popen(["./count-linux", "-r", str(kmer), "-1", "-u", input_fasta_location], stdout=PIPE) elif uname == "Darwin" and os.path.isfile("./count-osx"): print "Detected Mac OS X" - count_input = Popen(["count-osx", "-r 6", "-1", "-u", input_fasta_location], stdout=PIPE) + count_input = Popen(["count-osx", "-r", str(kmer), "-1", "-u", input_fasta_location], stdout=PIPE) # load the output of our count program and form a probability vector from the counts @@ -86,9 +86,11 @@ def quikr(input_fasta_location, trained_matrix_location, kmer, default_lambda): counts = default_lambda * counts - trained_matrix = np.loadtxt(trained_matrix_location) + trained_matrix = np.load(trained_matrix_location) # perform the non-negative least squares + # import pdb; pdb.set_trace() + counts = np.rot90(counts) xstar = scipy.optimize.nnls(trained_matrix, counts) xstar = xstar / sum(xstar) diff --git a/quikr_train.py b/quikr_train.py index 94a8c4e..b14ddcd 100755 --- a/quikr_train.py +++ b/quikr_train.py @@ -1,3 +1,4 @@ +#!/usr/bin/python import numpy as np import os import sys @@ -36,22 +37,21 @@ def quikr_train(input_file_location, kmer): Takes a input fasta file, and kmer, returns a custom trained matrix """ - - print "input fasta training file: " + input_file_location - print "kmer: " + kmer + kmer_file_name = str(kmer) + "mers.txt" - kmer_file_name = kmer + "mers.txt" - print kmer_file_name + if not os.path.isfile(kmer_file_name): + print "could not find kmer file" + exit() uname = platform.uname()[0] if uname == "Linux": print "Detected Linux" - input_file = Popen(["./probabilities-by-read-linux", kmer, input_file_location, kmer_file_name], stdout=PIPE) + input_file = Popen(["./probabilities-by-read-linux", str(kmer), input_file_location, kmer_file_name], stdout=PIPE) elif uname == "Darwin": print "Detected Mac OS X" - input_file = Popen(["./probabilities-by-read-osx", kmer, input_file_location, kmer_file_name]) + input_file = Popen(["./probabilities-by-read-osx", str(kmer), input_file_location, kmer_file_name]) # load and normalize the matrix by dividing each element by the sum of it's column. matrix = np.loadtxt(input_file.stdout) @@ -59,7 +59,5 @@ def quikr_train(input_file_location, kmer): return normalized - - if __name__ == "__main__": sys.exit(main()) -- cgit v1.2.3