[med-svn] [hyphy] 03/03: Provide examples for Python modules
Andreas Tille
tille at debian.org
Fri Jul 10 07:11:26 UTC 2015
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository hyphy.
commit 979d9929dbe2e04a5204ef7572747c76b5a61a6f
Author: Andreas Tille <tille at debian.org>
Date: Fri Jul 10 08:55:09 2015 +0200
Provide examples for Python modules
---
debian/Python/BasicHyPhy3.py | 113 +++++++++++++++++++++++++++++
debian/control | 13 ++--
debian/hyphy-common.examples | 1 +
debian/{hyphy.install => hyphygui.install} | 0
debian/python-hyphy.examples | 1 +
debian/python-hyphy.links | 2 +
debian/python3-hyphy.examples | 1 +
debian/python3-hyphy.links | 2 +
8 files changed, 127 insertions(+), 6 deletions(-)
diff --git a/debian/Python/BasicHyPhy3.py b/debian/Python/BasicHyPhy3.py
new file mode 100755
index 0000000..ef44457
--- /dev/null
+++ b/debian/Python/BasicHyPhy3.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python3
+# import the HyPhy library
+# and standard OS utilities
+
+import os, HyPhy
+
+# first, create a HyPhy interface instance (class _THyPhy)
+# the first argument defines the root directory for HyPhy
+# and the second - how many threads the computational core
+# should spawn
+
+hyphyInstance = HyPhy._THyPhy (os.getcwd(),2)
+
+# the basic interface command is 'ExecuteBF' which
+# executes HyPhy batch language commands in HyPhy
+# and returns a string representation of the return value
+# (if any) from HYPHY
+# The returned object is of type _THyPhyString with
+# sData and sLength fields
+# HyPhy will take care of disposing of the memory needed
+# to store the result
+
+hyphyResult = hyphyInstance.ExecuteBF ("return 2+2;");
+print("Testing a trivial HyPhy command. 2+2 = ", hyphyResult.sData)
+
+# an optional second argument to ExecuteBF
+# can be used to "flush" the current state of the system
+
+# this is the default option for the call of ExecuteBF
+# passing the second argument of False or 0 will preserve
+# the execution state
+
+print("Consecutive command exection")
+hyphyInstance.ExecuteBF ("z:=x+y;",False);
+hyphyInstance.ExecuteBF ("x=3;",False);
+hyphyInstance.ExecuteBF ("y=5;",False);
+hyphyResult = hyphyInstance.ExecuteBF ("return z;",False);
+print("The value of z is ", hyphyResult.sData)
+
+print("Resetting the state of the execution erases the value of 'z'")
+hyphyResult = hyphyInstance.ExecuteBF ("return z;");
+print("The value of z is ", hyphyResult.sData)
+
+# the real utility of the interface is to be able
+# to execute prewritten analyses from HBL files
+
+print("Executing the example F81.bf file")
+hyphyResult = hyphyInstance.ExecuteBF ("ExecuteAFile(\"../HBL/F81.bf\")");
+
+# retrive the standard output, error and runtime warnings
+
+hyphyOut = hyphyInstance.GetStdout()
+#errors will be empty UNLESS there was an exection error
+hyphyErrors = hyphyInstance.GetErrors()
+hyphyWarnings = hyphyInstance.GetWarnings()
+
+print("Standard out: \n", hyphyOut.sData)
+print("Errors: \n", hyphyErrors.sData)
+print("Warnings/Log messages: \n", hyphyWarnings.sData)
+
+# these variables can be explicitly deleted when they are no longer needed
+# python garbage collection should take care of disposing of disused variables
+
+del hyphyOut
+del hyphyErrors
+del hyphyWarnings
+
+# A tighter intergration can be achieved by defining a retrieval function
+# with the reserved name _THyPhyAskFor in the HBL file; it retrieves data
+# by key and returns them in a internal format that can be converted
+# to one of the basic return types: number, string or matrix
+
+def retrieveValueByKey (key, returnType,hyphyInstance):
+ theResult = hyphyInstance.AskFor(key)
+ # see if HyPhy can retrieve a value with the requested key
+ if theResult:
+ canICast = hyphyInstance.CanCast(theResult,returnType)
+ # see if HyPhy can cast the value to the requested type
+ if canICast:
+ # do the casting
+ theResult = hyphyInstance.CastResult(theResult,returnType)
+ # the last step is to convert from the basic return type
+ # to a derived class that we can use in python directly
+ if (returnType == HyPhy.THYPHY_TYPE_NUMBER):
+ return theResult.castToNumber()
+ if (returnType == HyPhy.THYPHY_TYPE_STRING):
+ return theResult.castToString()
+ if (returnType == HyPhy.THYPHY_TYPE_MATRIX):
+ return theResult.castToMatrix()
+ return null
+
+
+hyphyResult = hyphyInstance.ExecuteBF ("ExecuteAFile(\"../HBL/HKY85.bf\")");
+
+print("Log-L = ", retrieveValueByKey ("LogL", HyPhy.THYPHY_TYPE_NUMBER, hyphyInstance).nValue);
+print("kappa = ", retrieveValueByKey ("kappa", HyPhy.THYPHY_TYPE_NUMBER, hyphyInstance).nValue);
+print("tree string = ", retrieveValueByKey ("Tree", HyPhy.THYPHY_TYPE_STRING, hyphyInstance).sData);
+bl = retrieveValueByKey ("Branch lengths", HyPhy.THYPHY_TYPE_MATRIX, hyphyInstance);
+print("retrieved ", bl.mCols-1, "branch lengths")
+for i in range(0,bl.mCols-1):
+ print("Branch ", i+1, " has length ", bl.MatrixCell(0,i))
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/debian/control b/debian/control
index 66b4954..fa2588e 100644
--- a/debian/control
+++ b/debian/control
@@ -24,7 +24,7 @@ Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
hyphy-common
-Description: Hypothesis testing using Phylogenies (GTK gui)
+Description: Hypothesis testing using Phylogenies (GTK+ gui)
HyPhy is an open-source software package for the analysis of genetic
sequences using techniques in phylogenetics, molecular evolution, and
machine learning. It features a complete graphical user interface (GUI)
@@ -35,7 +35,7 @@ Description: Hypothesis testing using Phylogenies (GTK gui)
R. Continued development of HyPhy is currently supported in part by an
NIGMS R01 award 1R01GM093939.
.
- This package contains the GTK gui.
+ This package contains the GTK+ gui.
Package: hyphy-pt
Architecture: any
@@ -76,7 +76,7 @@ Description: Hypothesis testing using Phylogenies (MPI version)
Package: hyphy-common
Architecture: all
Depends: ${misc:Depends}
-Suggests: hyphy | hyphy-mpi
+Suggests: hyphygui | hyphy-mpi | hyphy-pt
Description: Hypothesis testing using Phylogenies (common files)
HyPhy is an open-source software package for the analysis of genetic
sequences using techniques in phylogenetics, molecular evolution, and
@@ -94,7 +94,6 @@ Package: libhyphy
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends}
-Suggests: hyphy | hyphy-mpi
Description: Hypothesis testing using Phylogenies (library)
HyPhy is an open-source software package for the analysis of genetic
sequences using techniques in phylogenetics, molecular evolution, and
@@ -115,7 +114,8 @@ Architecture: any
Section: python
Depends: ${shlibs:Depends},
${misc:Depends},
- ${python:Depends}
+ ${python:Depends},
+ hyphy-common
Description: Hypothesis testing using Phylogenies (Python 2 module)
HyPhy is an open-source software package for the analysis of genetic
sequences using techniques in phylogenetics, molecular evolution, and
@@ -134,7 +134,8 @@ Architecture: any
Section: python
Depends: ${shlibs:Depends},
${misc:Depends},
- ${python3:Depends}
+ ${python3:Depends},
+ hyphy-common
Description: Hypothesis testing using Phylogenies (Python 3 module)
HyPhy is an open-source software package for the analysis of genetic
sequences using techniques in phylogenetics, molecular evolution, and
diff --git a/debian/hyphy-common.examples b/debian/hyphy-common.examples
new file mode 100644
index 0000000..3ff8f68
--- /dev/null
+++ b/debian/hyphy-common.examples
@@ -0,0 +1 @@
+src/lib/Examples/HBL
diff --git a/debian/hyphy.install b/debian/hyphygui.install
similarity index 100%
rename from debian/hyphy.install
rename to debian/hyphygui.install
diff --git a/debian/python-hyphy.examples b/debian/python-hyphy.examples
new file mode 100644
index 0000000..eadb719
--- /dev/null
+++ b/debian/python-hyphy.examples
@@ -0,0 +1 @@
+src/lib/Examples/Python
diff --git a/debian/python-hyphy.links b/debian/python-hyphy.links
new file mode 100644
index 0000000..9d0a506
--- /dev/null
+++ b/debian/python-hyphy.links
@@ -0,0 +1,2 @@
+/usr/share/doc/hyphy-common/examples/HBL /usr/share/doc/python-hyphy/examples/HBL
+
diff --git a/debian/python3-hyphy.examples b/debian/python3-hyphy.examples
new file mode 100644
index 0000000..ae7360d
--- /dev/null
+++ b/debian/python3-hyphy.examples
@@ -0,0 +1 @@
+debian/Python
diff --git a/debian/python3-hyphy.links b/debian/python3-hyphy.links
new file mode 100644
index 0000000..52af957
--- /dev/null
+++ b/debian/python3-hyphy.links
@@ -0,0 +1,2 @@
+/usr/share/doc/hyphy-common/examples/HBL /usr/share/doc/python3-hyphy/examples/HBL
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/hyphy.git
More information about the debian-med-commit
mailing list