diff SConscript_maaslin.py @ 8:e9677425c6c3 default tip

Updated the structure of the libraries
author george.weingart@gmail.com
date Mon, 09 Feb 2015 12:17:40 -0500
parents e0b5980139d9
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SConscript_maaslin.py	Mon Feb 09 12:17:40 2015 -0500
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+"""
+Authors: Timothy Tickle and Curtis Huttenhower
+Description: Find associations in two matrices of data.
+"""
+
+__author__ = "Timothy Tickle and Curtis Huttenhower"
+__copyright__ = "Copyright 2012"
+__credits__ = ["Timothy Tickle","Curtis Huttenhower"]
+__maintainer__ = "Timothy Tickle"
+__email__ = "ttickle@hsph.harvard.edu"
+
+import argparse
+import os
+import sfle
+import sys
+
+c_strSufRC		= ".read.config"
+
+c_fileDirSrc		= Dir( sfle.d( os.path.dirname( sfle.current_file( ) ), sfle.c_strDirSrc ) )
+c_fileProgMaaslin	= File( sfle.d( c_fileDirSrc, "Maaslin.R" ) )
+sArgsExt = ".args"
+#Commandline to ignore
+lsIgnore = ["-i","-I","--input_config","--input_process"]
+
+def MaAsLin( filePCL ):
+	#Build input file name if they exist or give ""
+	strBase = filePCL.get_abspath().replace( sfle.c_strSufPCL, "" )
+	strR, strRC, strArgs = (( strBase + s ) for s in (sfle.c_strSufR, c_strSufRC, sArgsExt))
+	fileR, fileRC, fileArgs = (( File( s ) if os.path.exists( s ) else "" ) for s in (strR, strRC, strArgs))
+
+	## Read in an args file if it exists
+	lsArgs = []
+	if fileArgs:
+		fReader = csv.reader(open(fileArgs.get_abspath(),'r'), delimiter = " ")
+		lsArgsTmp = []
+		[lsArgsTmp.extend(lsLine) for lsLine in fReader]
+		fSkip = False
+		for s in lsArgsTmp:
+			if s in lsIgnore:
+				fSkip=True
+				continue
+			if fSkip:
+				fSkip = not fSkip
+				continue
+			lsArgs.append(s)
+
+	lsInputArgs = ["-I",[fileR]] if fileR else []
+	lsInputArgs.extend(["-i",[fileRC]] if fileRC else [])
+	lsArgs.extend(lsInputArgs)
+
+	strBase = os.path.basename( strBase )
+	fileTSVFile = File(sfle.d(fileDirTmp,sfle.rebase(filePCL,sfle.c_strSufPCL,sfle.c_strSufTSV)))
+	strT = File( sfle.d( os.path.join(fileDirOutput.get_abspath(), strBase, strBase + sfle.c_strSufTXT) ) )
+
+	#Transpose PCL
+	sfle.spipe(pE, filePCL, c_fileProgTranspose, fileTSVFile)
+	#Run MaAsLin
+	sfle.op(pE, c_fileProgMaaslin, lsArgs+[[True,strT],[False, fileTSVFile]])
+	if fileArgs: Depends(c_fileProgMaaslin, fileArgs)
+	Default(strT)
\ No newline at end of file