QA Python Tools

From Genecats
Revision as of 22:14, 6 February 2019 by Jairo (talk | contribs)
Jump to navigationJump to search

This page contains information about the different python modules and functions. The QA python scripts live in the following directory:

~/kent/python/lib/ucscGb/qa/

To properly import a package, function, or class, make sure you have the ~/kent/python/lib/ directory specified in your PYTHONPATH variable. The PYTHONPATH works similarly to the PATH variable inside of the .bashrc file. You can add the following line to your .bashrc file to import packages from the /ucscGb directory:

export PYTHONPATH=$PYTHONPATH:~/kent/python/lib/

Then, to import the package, you can use the following line:

from ucscGb.qa.tables import trackUtils

You can call a function inside of the trackUtils python script by using the following syntax:

trackUtils.getLabels(db, track, labelType)

tables/trackUtils.py

def getLabels(db, track, labelType):
Returns labels of specified 'type' (shortLabel or longLabel) for a single track, its parent, and its superTrack. Excludes 'view' labels.
  • Depends on getAttributeForTrack within tables/trackUtils.py
def getAttributeForTrack(attribute, db, track):
Uses tdbQuery to get an attribute where track or table == 'track' and removes label.
  • Depeneds on runCommand within qaUtils.py

qaUtils.py

The commands that are passed through these functions use the subprocess class, which requires the command to be in the form of a list. The first element in the list is program to be used, e.g., hgsql, and all other elements are seen as arguments. For example, the following line can be used as an argument:

["tdbQuery", "select type from %s where track='%s'" % (db, track)]
def callHgsql(database, command):
Run hgsql command using subprocess, return stdout data if no error.
  • This the only function where the command arguement is not a list but a string, i.e.,
"select name from knownGene where name='ENST00000619216.1'"
def runCommand(command):
Runs command in subprocess and raises exception if return code is not 0. Returns tuple (stdoutdata, stderrdata).
def runCommandMergedOutErr(command):
Runs command in subprocess and raises exception if return code is not 0. Combines stdout and stderr into a single output. Returns stdoutdata string.
def runCommandNoAbort(command):
Runs command in subprocess. Returns tuple (stdoutdata, stderrdata) and returncode from process.