Imported Upstream version 0.6
[pysam.git] / pysam / __init__.py
index 3062753f295cee7d22ba4e86689063905bb01f0a..8454f8e4b0739581a463484d1799ba2b2a43a1ad 100644 (file)
@@ -1,4 +1,9 @@
 from csamtools import *
+from ctabix import *
+import csamtools
+import ctabix
+from cvcf import *
+import cvcf
 import Pileup
 import sys
 import os
@@ -39,8 +44,8 @@ class SamtoolsDispatcher(object):
         self.parsers = parsers
         self.stderr = []
 
-    def __call__(self,*args, **kwargs):
-        '''execute the samtools command
+    def __call__(self, *args, **kwargs):
+        '''execute a samtools command
         '''
         retval, stderr, stdout = csamtools._samtools_dispatch( self.dispatch, args )
         if retval: raise SamtoolsError( "\n".join( stderr ) )
@@ -50,7 +55,12 @@ class SamtoolsDispatcher(object):
         # Note that there is sometimes output on stderr that is not an error,
         # for example: [sam_header_read2] 2 sequences loaded.
         # Ignore messages like these
-        stderr = [ x for x in stderr if not x.startswith( "[sam_header_read2]" ) ]
+        stderr = [ x for x in stderr \
+                       if not (x.startswith( "[sam_header_read2]" ) or \
+                                   x.startswith("[bam_index_load]") or \
+                                   x.startswith("[bam_sort_core]") or \
+                                   x.startswith("[samopen] SAM header is present") )
+                   ]
         if stderr: raise SamtoolsError( "\n".join( stderr ) )
 
         # call parser for stdout:
@@ -76,19 +86,31 @@ class SamtoolsDispatcher(object):
 #
 # import is a python reserved word.
 SAMTOOLS_DISPATCH = { 
+    # samtools 'documented' commands
     "view" : ( "view", None ),
     "sort" : ( "sort", None),
-    "samimport": ( "import", None),
-    "pileup" : ( "pileup", ( (("-c",), Pileup.iterate ), ), ),
+    "mpileup" : ( "mpileup", None),
+    "depth" : ("depth", None),
     "faidx" : ("faidx", None),
     "tview" : ("tview", None),
     "index" : ("index", None),
+    "idxstats" : ("idxstats", None),
     "fixmate" : ("fixmate", None),
-    "glfview" : ("glfview", None),
     "flagstat" : ("flagstat", None),
     "calmd" : ("calmd", None),
     "merge" : ("merge", None),  
-    "rmdup" : ("rmdup", None) }
+    "rmdup" : ("rmdup", None),
+    "reheader" : ("reheader", None),
+    "cat" : ("cat", None),
+    "targetcut" : ("targetcut", None),
+    "phase" : ("phase", None),
+    # others
+    "samimport": ( "import", None),
+    "bam2fq" : ("bam2fq", None),
+    # obsolete
+    # "pileup" : ( "pileup", ( (("-c",), Pileup.iterate ), ), ),
+
+ }
 
 # instantiate samtools commands as python functions
 for key, options in SAMTOOLS_DISPATCH.iteritems():
@@ -96,6 +118,11 @@ for key, options in SAMTOOLS_DISPATCH.iteritems():
     globals()[key] = SamtoolsDispatcher(cmd, parser)
 
 # hack to export all the symbols from csamtools
-__all__ = csamtools.__all__ + [ "SamtoolsError", "SamtoolsDispatcher" ] + list(SAMTOOLS_DISPATCH) +\
-    ["Pileup",] 
-
+__all__ = \
+    csamtools.__all__ + \
+    ctabix.__all__ + \
+    cvcf.__all__ +\
+    [ "SamtoolsError", "SamtoolsDispatcher" ] + list(SAMTOOLS_DISPATCH) +\
+    ["Pileup" ] 
+
+from version import __version__, __samtools_version__