Commits

James Taylor  committed 89b24b0

Rebuilding all generated (.pyx) code with Cython 10.3. Fixed a few bugs
and ambiguities, everything should still be valid under Pyrex as well.

  • Participants
  • Parent commits 14371ac

Comments (0)

Files changed (14)

File lib/bx/_seqmapping.c

-/* Generated by Cython 0.9.8 on Fri Jul 11 18:20:28 2008 */
+/* Generated by Cython 0.10.3 on Thu Feb 19 18:09:04 2009 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #if PY_VERSION_HEX < 0x02060000
   #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
   #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
-  #define Py_SIZE(ob)   ((PyVarObject*)(ob))->ob_size)
+  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
   #define PyVarObject_HEAD_INIT(type, size) \
           PyObject_HEAD_INIT(type) size,
+  #define PyType_Modified(t)
 
   typedef struct {
        void *buf;
+       PyObject *obj;
        Py_ssize_t len;
+       Py_ssize_t itemsize;
        int readonly;
-       const char *format;
        int ndim;
+       char *format;
        Py_ssize_t *shape;
        Py_ssize_t *strides;
        Py_ssize_t *suboffsets;
-       Py_ssize_t itemsize;
        void *internal;
   } Py_buffer;
 
   #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
   #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
   #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+
 #endif
 #if PY_MAJOR_VERSION < 3
   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
   #define Py_TPFLAGS_CHECKTYPES 0
   #define Py_TPFLAGS_HAVE_INDEX 0
 #endif
+#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
+  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
+#endif
 #if PY_MAJOR_VERSION >= 3
   #define PyBaseString_Type            PyUnicode_Type
   #define PyString_Type                PyBytes_Type
   #define PyInt_AsSsize_t              PyLong_AsSsize_t
   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
-  #define PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
 #else
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
   #define PyBytes_Type                 PyString_Type
 #endif
 #if PY_MAJOR_VERSION >= 3
   #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
 #endif
-#ifndef __stdcall
-  #define __stdcall
-#endif
-#ifndef __cdecl
-  #define __cdecl
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+  #ifndef __stdcall
+    #define __stdcall
+  #endif
+  #ifndef __cdecl
+    #define __cdecl
+  #endif
+#else
+  #define _USE_MATH_DEFINES
 #endif
 #ifdef __cplusplus
 #define __PYX_EXTERN_C extern "C"
 
 static char __pyx_mdoc[] = "\nPyrex extension classes used by `seqmapping.py`.\n";
 
-static INLINE void __Pyx_RaiseArgtupleTooLong(Py_ssize_t num_expected, Py_ssize_t num_found); /*proto*/
-
-static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
-
-static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
-
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
+    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
+
+static INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict,
+    const char* function_name, int kw_allowed); /*proto*/
+
+static void __Pyx_RaiseDoubleKeywordsError(
+    const char* func_name, PyObject* kw_name); /*proto*/
+
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,     const char* function_name); /*proto*/
 
 static INLINE int __Pyx_SetItemInt(PyObject *o, Py_ssize_t i, PyObject *v, int is_unsigned) {
     int r;
     return r;
 }
 
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
+
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+
 static INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
     if (likely(PyList_CheckExact(L))) {
         if (PyList_Append(L, x) < 0) return NULL;
 
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
+static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
 static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
 
+static void __Pyx_AddTraceback(const char *funcname); /*proto*/
+
 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 
-static void __Pyx_AddTraceback(const char *funcname); /*proto*/
-
 /* Type declarations */
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":19
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":19
  * import sys
  * 
  * cdef class CharToIntArrayMapping:             # <<<<<<<<<<<<<<
   PyObject *reverse_table;
 };
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":102
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":102
  *         return self.out_size
  * 
  * cdef class IntToIntMapping:             # <<<<<<<<<<<<<<
 
 
 /* Implementation of bx._seqmapping */
-
-
+static PyObject *__pyx_int_1;
+static PyObject *__pyx_int_0;
+static PyObject *__pyx_int_neg_1;
 static char __pyx_k___cinit__[] = "__cinit__";
+static PyObject *__pyx_kp___cinit__;
 static char __pyx_k___init__[] = "__init__";
+static PyObject *__pyx_kp___init__;
 static char __pyx_k_set_mapping[] = "set_mapping";
+static PyObject *__pyx_kp_set_mapping;
 static char __pyx_k_translate[] = "translate";
+static PyObject *__pyx_kp_translate;
 static char __pyx_k_translate_list[] = "translate_list";
+static PyObject *__pyx_kp_translate_list;
 static char __pyx_k_reverse_map[] = "reverse_map";
+static PyObject *__pyx_kp_reverse_map;
 static char __pyx_k_get_out_size[] = "get_out_size";
+static PyObject *__pyx_kp_get_out_size;
 static char __pyx_k___dealloc__[] = "__dealloc__";
+static PyObject *__pyx_kp___dealloc__;
 static char __pyx_k___getitem__[] = "__getitem__";
+static PyObject *__pyx_kp___getitem__;
 static char __pyx_k_collapse[] = "collapse";
+static PyObject *__pyx_kp_collapse;
 static char __pyx_k_expand[] = "expand";
+static PyObject *__pyx_kp_expand;
 static char __pyx_k_expand_out[] = "expand_out";
+static PyObject *__pyx_kp_expand_out;
 static char __pyx_k_expand_random_split[] = "expand_random_split";
+static PyObject *__pyx_kp_expand_random_split;
 static char __pyx_k_get_in_size[] = "get_in_size";
+static PyObject *__pyx_kp_get_in_size;
 static char __pyx_k_get_table[] = "get_table";
+static PyObject *__pyx_kp_get_table;
+static char __pyx_k_c[] = "c";
+static PyObject *__pyx_kp_c;
+static char __pyx_k_symbol[] = "symbol";
+static PyObject *__pyx_kp_symbol;
+static char __pyx_k_string[] = "string";
+static PyObject *__pyx_kp_string;
+static char __pyx_k_strings[] = "strings";
+static PyObject *__pyx_kp_strings;
+static char __pyx_k_val[] = "val";
+static PyObject *__pyx_kp_val;
+static char __pyx_k_nseqs[] = "nseqs";
+static PyObject *__pyx_kp_nseqs;
+static char __pyx_k_in_size[] = "in_size";
+static PyObject *__pyx_kp_in_size;
+static char __pyx_k_index[] = "index";
+static PyObject *__pyx_kp_index;
+static char __pyx_k_src[] = "src";
+static PyObject *__pyx_kp_src;
+static char __pyx_k_x[] = "x";
+static PyObject *__pyx_kp_x;
+static char __pyx_k_a[] = "a";
+static PyObject *__pyx_kp_a;
+static char __pyx_k_b[] = "b";
+static PyObject *__pyx_kp_b;
 static char __pyx_k_numpy[] = "numpy";
+static PyObject *__pyx_kp_numpy;
 static char __pyx_k_zeros[] = "zeros";
+static PyObject *__pyx_kp_zeros;
 static char __pyx_k_math[] = "math";
+static PyObject *__pyx_kp_math;
 static char __pyx_k_floor[] = "floor";
+static PyObject *__pyx_kp_floor;
 static char __pyx_k_random[] = "random";
+static PyObject *__pyx_kp_random;
 static char __pyx_k_sys[] = "sys";
-
-static PyObject *__pyx_kp___cinit__;
-static PyObject *__pyx_kp___init__;
-static PyObject *__pyx_kp_set_mapping;
-static PyObject *__pyx_kp_translate;
-static PyObject *__pyx_kp_translate_list;
-static PyObject *__pyx_kp_reverse_map;
-static PyObject *__pyx_kp_get_out_size;
-static PyObject *__pyx_kp___dealloc__;
-static PyObject *__pyx_kp___getitem__;
-static PyObject *__pyx_kp_collapse;
-static PyObject *__pyx_kp_expand;
-static PyObject *__pyx_kp_expand_out;
-static PyObject *__pyx_kp_expand_random_split;
-static PyObject *__pyx_kp_get_in_size;
-static PyObject *__pyx_kp_get_table;
-static PyObject *__pyx_kp_numpy;
-static PyObject *__pyx_kp_zeros;
-static PyObject *__pyx_kp_math;
-static PyObject *__pyx_kp_floor;
-static PyObject *__pyx_kp_random;
 static PyObject *__pyx_kp_sys;
-
-
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":26
+static char __pyx_k_ord[] = "ord";
+static PyObject *__pyx_kp_ord;
+static char __pyx_k_chr[] = "chr";
+static PyObject *__pyx_kp_chr;
+static char __pyx_k_1[] = "i";
+static PyObject *__pyx_kp_1;
+static char __pyx_k_2[] = "i";
+static PyObject *__pyx_kp_2;
+static char __pyx_k_append[] = "append";
+static PyObject *__pyx_kp_append;
+static char __pyx_k_reverse[] = "reverse";
+static PyObject *__pyx_kp_reverse;
+static char __pyx_k_6[] = "i";
+static PyObject *__pyx_kp_6;
+static char __pyx_k_randrange[] = "randrange";
+static PyObject *__pyx_kp_randrange;
+static char __pyx_k_sample[] = "sample";
+static PyObject *__pyx_kp_sample;
+static char __pyx_k_range[] = "range";
+static PyObject *__pyx_kp_range;
+static char __pyx_k_7[] = "i";
+static PyObject *__pyx_kp_7;
+static PyObject *__pyx_builtin_ord;
+static PyObject *__pyx_builtin_chr;
+static PyObject *__pyx_builtin_range;
+static PyObject *__pyx_kp_3;
+static char __pyx_k_3[] = "Malloc Failed";
+static PyObject *__pyx_kp_4;
+static char __pyx_k_4[] = "%d not between 0 and %s";
+static PyObject *__pyx_kp_5;
+static char __pyx_k_5[] = "`src` argument must be a buffer of 32bit integers";
+
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":26
  *     cdef object reverse_table
  * 
  *     def __new__( self ):             # <<<<<<<<<<<<<<
   int __pyx_v_i;
   int __pyx_r;
   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
-    __Pyx_RaiseArgtupleTooLong(0, PyTuple_GET_SIZE(__pyx_args));
-    return -1;
-  }
-  if (unlikely(__pyx_kwds)) {
-    if (unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__new__", 0))) return -1;
-  }
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":29
+    __Pyx_RaiseArgtupleInvalid("__new__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
+  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__new__", 0))) return -1;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":29
  *         """Init empty mapping (all characters map to -1)"""
  *         cdef int i
  *         for i from 0 <= i < 256: self.table[i] = -1             # <<<<<<<<<<<<<<
     (((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->table[__pyx_v_i]) = -1;
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":30
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":30
  *         cdef int i
  *         for i from 0 <= i < 256: self.table[i] = -1
  *         self.out_size = 0             # <<<<<<<<<<<<<<
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":32
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":32
  *         self.out_size = 0
  * 
  *     def __init__( self ):             # <<<<<<<<<<<<<<
   int __pyx_r;
   PyObject *__pyx_1 = 0;
   if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
-    __Pyx_RaiseArgtupleTooLong(0, PyTuple_GET_SIZE(__pyx_args));
-    return -1;
-  }
-  if (unlikely(__pyx_kwds)) {
-    if (unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
-  }
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":33
+    __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
+  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":33
  * 
  *     def __init__( self ):
  *         self.reverse_table = dict()             # <<<<<<<<<<<<<<
  * 
  *     def set_mapping( self, c, int symbol ):
  */
-  __pyx_1 = PyObject_Call(((PyObject*)&PyDict_Type), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)&PyDict_Type)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table);
   ((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table = __pyx_1;
   __pyx_1 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_1);
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.__init__");
   __pyx_r = -1;
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":35
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":35
  *         self.reverse_table = dict()
  * 
  *     def set_mapping( self, c, int symbol ):             # <<<<<<<<<<<<<<
  *         char = ord( c )
  */
 
-static char __pyx_k_ord[] = "ord";
-static char __pyx_k_chr[] = "chr";
-
-static PyObject *__pyx_kp_ord;
-static PyObject *__pyx_kp_chr;
-
-static PyObject *__pyx_builtin_ord;
-static PyObject *__pyx_builtin_chr;
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_set_mapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_2bx_11_seqmapping_21CharToIntArrayMapping_set_mapping[] = "Modify mapping so \'chars\' map to \'symbol\'";
+static char __pyx_doc_2bx_11_seqmapping_21CharToIntArrayMapping_set_mapping[] = "Modify mapping so 'chars' map to 'symbol'";
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_set_mapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_c = 0;
   int __pyx_v_symbol;
   PyObject *__pyx_2 = 0;
   Py_ssize_t __pyx_3 = 0;
   int __pyx_4;
-  static char *__pyx_argnames[] = {"c","symbol",0};
-  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
+  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_c,&__pyx_kp_symbol,0};
+  if (unlikely(__pyx_kwds)) {
+    PyObject* values[2] = {0,0};
+    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      case  0: break;
+      default: goto __pyx_L5_argtuple_error;
+    }
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  0:
+      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_c);
+      if (likely(values[0])) kw_args--;
+      else goto __pyx_L5_argtuple_error;
+      case  1:
+      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_symbol);
+      if (likely(values[1])) kw_args--;
+      else {
+        __Pyx_RaiseArgtupleInvalid("set_mapping", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    }
+    if (unlikely(kw_args > 0)) {
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_mapping") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    }
+    __pyx_v_c = values[0];
+    __pyx_v_symbol = __pyx_PyInt_int(values[1]); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+    goto __pyx_L5_argtuple_error;
+  } else {
     __pyx_v_c = PyTuple_GET_ITEM(__pyx_args, 0);
-    __pyx_v_symbol = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L2;}
+    __pyx_v_symbol = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  else {
-    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "Oi", __pyx_argnames, &__pyx_v_c, &__pyx_v_symbol))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L2;}
-  }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("set_mapping", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.set_mapping");
   return NULL;
-  __pyx_L3:;
+  __pyx_L4_argument_unpacking_done:;
   __pyx_v_char = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":37
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":37
  *     def set_mapping( self, c, int symbol ):
  *         """Modify mapping so 'chars' map to 'symbol'"""
  *         char = ord( c )             # <<<<<<<<<<<<<<
  *         self.table[ char ] = symbol
  *         if self.out_size <= symbol:
  */
-  __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_INCREF(__pyx_v_c);
   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_c);
-  __pyx_2 = PyObject_Call(__pyx_builtin_ord, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_2 = PyObject_Call(__pyx_builtin_ord, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
   Py_DECREF(__pyx_v_char);
   __pyx_v_char = __pyx_2;
   __pyx_2 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":38
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":38
  *         """Modify mapping so 'chars' map to 'symbol'"""
  *         char = ord( c )
  *         self.table[ char ] = symbol             # <<<<<<<<<<<<<<
  *         if self.out_size <= symbol:
  *             self.out_size = symbol + 1
  */
-  __pyx_3 = __pyx_PyIndex_AsSsize_t(__pyx_v_char); if (unlikely((__pyx_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = __pyx_PyIndex_AsSsize_t(__pyx_v_char); if (unlikely((__pyx_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   (((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->table[__pyx_3]) = __pyx_v_symbol;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":39
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":39
  *         char = ord( c )
  *         self.table[ char ] = symbol
  *         if self.out_size <= symbol:             # <<<<<<<<<<<<<<
   __pyx_4 = (((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size <= __pyx_v_symbol);
   if (__pyx_4) {
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":40
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":40
  *         self.table[ char ] = symbol
  *         if self.out_size <= symbol:
  *             self.out_size = symbol + 1             # <<<<<<<<<<<<<<
  * 
  */
     ((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size = (__pyx_v_symbol + 1);
-    goto __pyx_L4;
+    goto __pyx_L6;
   }
-  __pyx_L4:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":41
+  __pyx_L6:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":41
  *         if self.out_size <= symbol:
  *             self.out_size = symbol + 1
  *         self.reverse_table[ symbol ] = chr( char )             # <<<<<<<<<<<<<<
  * 
  *     def translate( self, string ):
  */
-  __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_INCREF(__pyx_v_char);
   PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_char);
-  __pyx_2 = PyObject_Call(__pyx_builtin_chr, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_2 = PyObject_Call(__pyx_builtin_chr, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
-  if (__Pyx_SetItemInt(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table, __pyx_v_symbol, __pyx_2, 0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  if (__Pyx_SetItemInt(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table, __pyx_v_symbol, __pyx_2, 0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_1);
   Py_XDECREF(__pyx_2);
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.set_mapping");
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":43
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":43
  *         self.reverse_table[ symbol ] = chr( char )
  * 
  *     def translate( self, string ):             # <<<<<<<<<<<<<<
  *         cdef int s_len, t_len
  */
 
-static char __pyx_k_1[] = "i";
-
-static PyObject *__pyx_kp_1;
-
-
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_translate(PyObject *__pyx_v_self, PyObject *__pyx_v_string); /*proto*/
-static char __pyx_doc_2bx_11_seqmapping_21CharToIntArrayMapping_translate[] = "Translate \'string\' and return as int array";
+static char __pyx_doc_2bx_11_seqmapping_21CharToIntArrayMapping_translate[] = "Translate 'string' and return as int array";
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_translate(PyObject *__pyx_v_self, PyObject *__pyx_v_string) {
   int __pyx_v_s_len;
   int __pyx_v_t_len;
   __pyx_v_rval = Py_None; Py_INCREF(Py_None);
   __pyx_v_i = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":49
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":49
  *         cdef int * t_buf
  *         # Get direct access to string
  *         PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )             # <<<<<<<<<<<<<<
  *         # Initialize empty array
  *         rval = zeros( s_len, 'i' )
  */
-  __pyx_1 = PyString_AsStringAndSize(__pyx_v_string, ((char **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":51
+  __pyx_1 = PyString_AsStringAndSize(__pyx_v_string, ((char **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":51
  *         PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )
  *         # Initialize empty array
  *         rval = zeros( s_len, 'i' )             # <<<<<<<<<<<<<<
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )
  *         # Translate
  */
-  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_3 = PyInt_FromLong(__pyx_v_s_len); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_3 = PyInt_FromLong(__pyx_v_s_len); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
   Py_INCREF(__pyx_kp_1);
   PyTuple_SET_ITEM(__pyx_4, 1, __pyx_kp_1);
   __pyx_3 = 0;
-  __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_2); __pyx_2 = 0;
   Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
   Py_DECREF(__pyx_v_rval);
   __pyx_v_rval = __pyx_3;
   __pyx_3 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":52
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":52
  *         # Initialize empty array
  *         rval = zeros( s_len, 'i' )
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )             # <<<<<<<<<<<<<<
  *         # Translate
  *         for i from 0 <= i < s_len:
  */
-  __pyx_1 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":54
+  __pyx_1 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":54
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )
  *         # Translate
  *         for i from 0 <= i < s_len:             # <<<<<<<<<<<<<<
  *         # Done
  */
   for (__pyx_5 = 0; __pyx_5 < __pyx_v_s_len; __pyx_5++) {
-    __pyx_2 = PyInt_FromLong(__pyx_5); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_2 = PyInt_FromLong(__pyx_5); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(__pyx_v_i);
     __pyx_v_i = __pyx_2;
     __pyx_2 = 0;
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":55
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":55
  *         # Translate
  *         for i from 0 <= i < s_len:
  *             t_buf[i] = self.table[ s_buf[ i ] ]             # <<<<<<<<<<<<<<
  *         # Done
  *         return rval
  */
-    __pyx_6 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_7 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_6 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_7 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     (__pyx_v_t_buf[__pyx_7]) = (((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->table[(__pyx_v_s_buf[__pyx_6])]);
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":57
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":57
  *             t_buf[i] = self.table[ s_buf[ i ] ]
  *         # Done
  *         return rval             # <<<<<<<<<<<<<<
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_2);
   Py_XDECREF(__pyx_3);
   Py_XDECREF(__pyx_4);
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":59
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":59
  *         return rval
  * 
  *     def translate_list( self, strings ):             # <<<<<<<<<<<<<<
  *         cdef int text_len, factor, i
  */
 
-static char __pyx_k_2[] = "i";
-
-static PyObject *__pyx_kp_2;
-
-
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_translate_list(PyObject *__pyx_v_self, PyObject *__pyx_v_strings); /*proto*/
 static char __pyx_doc_2bx_11_seqmapping_21CharToIntArrayMapping_translate_list[] = "Translate a list of strings into an int array";
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_translate_list(PyObject *__pyx_v_self, PyObject *__pyx_v_strings) {
   __pyx_v_rval = Py_None; Py_INCREF(Py_None);
   __pyx_v_string = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":67
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":67
  * 
  *         # No input, no output
  *         if len( strings ) < 1: return None             # <<<<<<<<<<<<<<
  * 
  *         # Length of result
  */
-  __pyx_1 = PyObject_Length(__pyx_v_strings); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyObject_Length(__pyx_v_strings); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_2 = (__pyx_1 < 1);
   if (__pyx_2) {
     Py_INCREF(Py_None);
     __pyx_r = Py_None;
     goto __pyx_L0;
-    goto __pyx_L4;
+    goto __pyx_L5;
   }
-  __pyx_L4:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":70
+  __pyx_L5:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":70
  * 
  *         # Length of result
  *         text_len = len( strings[0] )             # <<<<<<<<<<<<<<
  * 
  *         # Init result array
  */
-  __pyx_3 = __Pyx_GetItemInt(__pyx_v_strings, 0, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_1 = PyObject_Length(__pyx_3); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = __Pyx_GetItemInt(__pyx_v_strings, 0, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_1 = PyObject_Length(__pyx_3); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
   __pyx_v_text_len = __pyx_1;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":73
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":73
  * 
  *         # Init result array
  *         rval = zeros( text_len, 'i' )             # <<<<<<<<<<<<<<
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )
  * 
  */
-  __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_4 = PyInt_FromLong(__pyx_v_text_len); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_5 = PyTuple_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_4 = PyInt_FromLong(__pyx_v_text_len); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_5 = PyTuple_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   PyTuple_SET_ITEM(__pyx_5, 0, __pyx_4);
   Py_INCREF(__pyx_kp_2);
   PyTuple_SET_ITEM(__pyx_5, 1, __pyx_kp_2);
   __pyx_4 = 0;
-  __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
   Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
   Py_DECREF(__pyx_v_rval);
   __pyx_v_rval = __pyx_4;
   __pyx_4 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":74
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":74
  *         # Init result array
  *         rval = zeros( text_len, 'i' )
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )             # <<<<<<<<<<<<<<
  * 
  *         # Loop over seqs and accumulate result values
  */
-  __pyx_6 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":77
+  __pyx_6 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":77
  * 
  *         # Loop over seqs and accumulate result values
  *         factor = 1             # <<<<<<<<<<<<<<
  */
   __pyx_v_factor = 1;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":78
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":78
  *         # Loop over seqs and accumulate result values
  *         factor = 1
  *         for string in strings:             # <<<<<<<<<<<<<<
  *             PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )
  *             for i from 0 <= i < text_len:
  */
-  if (PyList_CheckExact(__pyx_v_strings)) { __pyx_1 = 0; __pyx_3 = __pyx_v_strings; Py_INCREF(__pyx_3); }
-  else { __pyx_3 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;} }
+  if (PyList_CheckExact(__pyx_v_strings) || PyTuple_CheckExact(__pyx_v_strings)) {
+    __pyx_1 = 0; __pyx_3 = __pyx_v_strings; Py_INCREF(__pyx_3);
+  } else {
+    __pyx_1 = -1; __pyx_3 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  }
   for (;;) {
-    if (PyList_CheckExact(__pyx_3)) { if (__pyx_1 >= PyList_GET_SIZE(__pyx_3)) break; __pyx_5 = PyList_GET_ITEM(__pyx_3, __pyx_1++); Py_INCREF(__pyx_5); }
-    else {
+    if (likely(PyList_CheckExact(__pyx_3))) {
+      if (__pyx_1 >= PyList_GET_SIZE(__pyx_3)) break;
+      __pyx_5 = PyList_GET_ITEM(__pyx_3, __pyx_1); Py_INCREF(__pyx_5); __pyx_1++;
+    } else if (likely(PyTuple_CheckExact(__pyx_3))) {
+      if (__pyx_1 >= PyTuple_GET_SIZE(__pyx_3)) break;
+      __pyx_5 = PyTuple_GET_ITEM(__pyx_3, __pyx_1); Py_INCREF(__pyx_5); __pyx_1++;
+    } else {
       __pyx_5 = PyIter_Next(__pyx_3);
       if (!__pyx_5) {
-        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;}
+        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         break;
       }
     }
     __pyx_v_string = __pyx_5;
     __pyx_5 = 0;
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":79
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":79
  *         factor = 1
  *         for string in strings:
  *             PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )             # <<<<<<<<<<<<<<
  *             for i from 0 <= i < text_len:
  *                 if t_buf[i] >= 0:
  */
-    __pyx_6 = PyString_AsStringAndSize(__pyx_v_string, ((char **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":80
+    __pyx_6 = PyString_AsStringAndSize(__pyx_v_string, ((char **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":80
  *         for string in strings:
  *             PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )
  *             for i from 0 <= i < text_len:             # <<<<<<<<<<<<<<
  */
     for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_text_len; __pyx_v_i++) {
 
-      /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":81
+      /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":81
  *             PyString_AsStringAndSize( string, <char **> &s_buf, &s_len )
  *             for i from 0 <= i < text_len:
  *                 if t_buf[i] >= 0:             # <<<<<<<<<<<<<<
       __pyx_2 = ((__pyx_v_t_buf[__pyx_v_i]) >= 0);
       if (__pyx_2) {
 
-        /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":82
+        /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":82
  *             for i from 0 <= i < text_len:
  *                 if t_buf[i] >= 0:
  *                     if self.table[ s_buf[i] ] == -1:             # <<<<<<<<<<<<<<
         __pyx_2 = ((((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->table[(__pyx_v_s_buf[__pyx_v_i])]) == -1);
         if (__pyx_2) {
 
-          /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":83
+          /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":83
  *                 if t_buf[i] >= 0:
  *                     if self.table[ s_buf[i] ] == -1:
  *                         t_buf[i] = -1             # <<<<<<<<<<<<<<
  *                         t_buf[i] = t_buf[i] + ( self.table[ s_buf[i] ] * factor )
  */
           (__pyx_v_t_buf[__pyx_v_i]) = -1;
-          goto __pyx_L10;
+          goto __pyx_L11;
         }
         /*else*/ {
 
-          /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":85
+          /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":85
  *                         t_buf[i] = -1
  *                     else:
  *                         t_buf[i] = t_buf[i] + ( self.table[ s_buf[i] ] * factor )             # <<<<<<<<<<<<<<
  */
           (__pyx_v_t_buf[__pyx_v_i]) = ((__pyx_v_t_buf[__pyx_v_i]) + ((((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->table[(__pyx_v_s_buf[__pyx_v_i])]) * __pyx_v_factor));
         }
-        __pyx_L10:;
-        goto __pyx_L9;
+        __pyx_L11:;
+        goto __pyx_L10;
       }
-      __pyx_L9:;
+      __pyx_L10:;
     }
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":86
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":86
  *                     else:
  *                         t_buf[i] = t_buf[i] + ( self.table[ s_buf[i] ] * factor )
  *             factor = factor * self.out_size             # <<<<<<<<<<<<<<
   }
   Py_DECREF(__pyx_3); __pyx_3 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":87
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":87
  *                         t_buf[i] = t_buf[i] + ( self.table[ s_buf[i] ] * factor )
  *             factor = factor * self.out_size
  *         return rval             # <<<<<<<<<<<<<<
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_3);
   Py_XDECREF(__pyx_4);
   Py_XDECREF(__pyx_5);
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":89
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":89
  *         return rval
  * 
  *     def reverse_map( self, val, nseqs ):             # <<<<<<<<<<<<<<
  *         rval = []
  */
 
-static PyObject *__pyx_int_1;
-static PyObject *__pyx_int_0;
-
-static char __pyx_k_append[] = "append";
-static char __pyx_k_reverse[] = "reverse";
-
-static PyObject *__pyx_kp_append;
-static PyObject *__pyx_kp_reverse;
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_reverse_map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static PyObject *__pyx_pf_2bx_11_seqmapping_21CharToIntArrayMapping_reverse_map(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_val = 0;
   PyObject *__pyx_v_rval;
   PyObject *__pyx_r;
   PyObject *__pyx_1 = 0;
-  PyObject *__pyx_2 = 0;
+  int __pyx_2;
   PyObject *__pyx_3 = 0;
-  int __pyx_4;
-  static char *__pyx_argnames[] = {"val","nseqs",0};
-  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
+  PyObject *__pyx_4 = 0;
+  PyObject *__pyx_t_1 = NULL;
+  PyObject *__pyx_t_2 = NULL;
+  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_val,&__pyx_kp_nseqs,0};
+  if (unlikely(__pyx_kwds)) {
+    PyObject* values[2] = {0,0};
+    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      case  0: break;
+      default: goto __pyx_L5_argtuple_error;
+    }
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  0:
+      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_val);
+      if (likely(values[0])) kw_args--;
+      else goto __pyx_L5_argtuple_error;
+      case  1:
+      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_nseqs);
+      if (likely(values[1])) kw_args--;
+      else {
+        __Pyx_RaiseArgtupleInvalid("reverse_map", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    }
+    if (unlikely(kw_args > 0)) {
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "reverse_map") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    }
+    __pyx_v_val = values[0];
+    __pyx_v_nseqs = values[1];
+  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+    goto __pyx_L5_argtuple_error;
+  } else {
     __pyx_v_val = PyTuple_GET_ITEM(__pyx_args, 0);
     __pyx_v_nseqs = PyTuple_GET_ITEM(__pyx_args, 1);
   }
-  else {
-    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_val, &__pyx_v_nseqs))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L2;}
-  }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("reverse_map", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.reverse_map");
   return NULL;
-  __pyx_L3:;
+  __pyx_L4_argument_unpacking_done:;
   Py_INCREF(__pyx_v_val);
   __pyx_v_factor = Py_None; Py_INCREF(Py_None);
   __pyx_v_rval = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":90
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":90
  * 
  *     def reverse_map( self, val, nseqs ):
  *         factor = self.out_size ** (nseqs-1)             # <<<<<<<<<<<<<<
  *         rval = []
  *         while factor > 0:
  */
-  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_2 = PyNumber_Subtract(__pyx_v_nseqs, __pyx_int_1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_3 = PyNumber_Power(__pyx_1, __pyx_2, Py_None); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyNumber_Subtract(__pyx_v_nseqs, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Power(__pyx_1, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_1); __pyx_1 = 0;
-  Py_DECREF(__pyx_2); __pyx_2 = 0;
+  Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   Py_DECREF(__pyx_v_factor);
-  __pyx_v_factor = __pyx_3;
-  __pyx_3 = 0;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":91
+  __pyx_v_factor = __pyx_t_2;
+  __pyx_t_2 = 0;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":91
  *     def reverse_map( self, val, nseqs ):
  *         factor = self.out_size ** (nseqs-1)
  *         rval = []             # <<<<<<<<<<<<<<
  *         while factor > 0:
  *             rval.append( self.reverse_table[ int( floor( val / factor ) ) ] )
  */
-  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_v_rval);
   __pyx_v_rval = ((PyObject *)__pyx_1);
   __pyx_1 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":92
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":92
  *         factor = self.out_size ** (nseqs-1)
  *         rval = []
  *         while factor > 0:             # <<<<<<<<<<<<<<
  *             val = val - ( floor(val/factor) * factor )
  */
   while (1) {
-    __pyx_2 = PyObject_RichCompare(__pyx_v_factor, __pyx_int_0, Py_GT); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
-    if (!__pyx_4) break;
-
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":93
+    __pyx_1 = PyObject_RichCompare(__pyx_v_factor, __pyx_int_0, Py_GT); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_1); __pyx_1 = 0;
+    if (!__pyx_2) break;
+
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":93
  *         rval = []
  *         while factor > 0:
  *             rval.append( self.reverse_table[ int( floor( val / factor ) ) ] )             # <<<<<<<<<<<<<<
  *             val = val - ( floor(val/factor) * factor )
  *             factor = floor( factor / self.out_size )
  */
-    __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_1 = PyNumber_Divide(__pyx_v_val, __pyx_v_factor); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
-    __pyx_1 = 0;
-    __pyx_1 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_val, __pyx_v_factor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_t_2);
+    __pyx_t_2 = 0;
+    __pyx_4 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_1); __pyx_1 = 0;
+    Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+    __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyTuple_SET_ITEM(__pyx_1, 0, __pyx_4);
+    __pyx_4 = 0;
+    __pyx_3 = PyObject_Call(((PyObject *)((PyObject*)&PyInt_Type)), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
+    __pyx_4 = PyObject_GetItem(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(__pyx_3); __pyx_3 = 0;
-    Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
-    __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
-    __pyx_1 = 0;
-    __pyx_2 = PyObject_Call(((PyObject*)&PyInt_Type), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
-    __pyx_1 = PyObject_GetItem(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->reverse_table, __pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
-    __pyx_3 = __Pyx_PyObject_Append(__pyx_v_rval, __pyx_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_1 = __Pyx_PyObject_Append(__pyx_v_rval, __pyx_4); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_4); __pyx_4 = 0;
     Py_DECREF(__pyx_1); __pyx_1 = 0;
-    Py_DECREF(__pyx_3); __pyx_3 = 0;
-
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":94
+
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":94
  *         while factor > 0:
  *             rval.append( self.reverse_table[ int( floor( val / factor ) ) ] )
  *             val = val - ( floor(val/factor) * factor )             # <<<<<<<<<<<<<<
  *             factor = floor( factor / self.out_size )
  *         rval.reverse()
  */
-    __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_1 = PyNumber_Divide(__pyx_v_val, __pyx_v_factor); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
-    __pyx_1 = 0;
-    __pyx_1 = PyObject_Call(__pyx_2, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
-    Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
-    __pyx_2 = PyNumber_Multiply(__pyx_1, __pyx_v_factor); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_val, __pyx_v_factor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyTuple_SET_ITEM(__pyx_4, 0, __pyx_t_2);
+    __pyx_t_2 = 0;
+    __pyx_1 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_3); __pyx_3 = 0;
+    Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+    __pyx_t_2 = PyNumber_Multiply(__pyx_1, __pyx_v_factor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(__pyx_1); __pyx_1 = 0;
-    __pyx_3 = PyNumber_Subtract(__pyx_v_val, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
+    __pyx_t_1 = PyNumber_Subtract(__pyx_v_val, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     Py_DECREF(__pyx_v_val);
-    __pyx_v_val = __pyx_3;
-    __pyx_3 = 0;
-
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":95
+    __pyx_v_val = __pyx_t_1;
+    __pyx_t_1 = 0;
+
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":95
  *             rval.append( self.reverse_table[ int( floor( val / factor ) ) ] )
  *             val = val - ( floor(val/factor) * factor )
  *             factor = floor( factor / self.out_size )             # <<<<<<<<<<<<<<
  *         rval.reverse()
  *         return rval
  */
-    __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_2 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_3 = PyNumber_Divide(__pyx_v_factor, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
-    __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3);
-    __pyx_3 = 0;
-    __pyx_3 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    Py_DECREF(__pyx_1); __pyx_1 = 0;
-    Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
+    __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_floor); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_4 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_v_factor, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_4); __pyx_4 = 0;
+    __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyTuple_SET_ITEM(__pyx_1, 0, __pyx_t_1);
+    __pyx_t_1 = 0;
+    __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    Py_DECREF(__pyx_3); __pyx_3 = 0;
+    Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
     Py_DECREF(__pyx_v_factor);
-    __pyx_v_factor = __pyx_3;
-    __pyx_3 = 0;
+    __pyx_v_factor = __pyx_4;
+    __pyx_4 = 0;
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":96
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":96
  *             val = val - ( floor(val/factor) * factor )
  *             factor = floor( factor / self.out_size )
  *         rval.reverse()             # <<<<<<<<<<<<<<
  *         return rval
  * 
  */
-  __pyx_1 = PyObject_GetAttr(__pyx_v_rval, __pyx_kp_reverse); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = PyObject_GetAttr(__pyx_v_rval, __pyx_kp_reverse); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_1 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  Py_DECREF(__pyx_3); __pyx_3 = 0;
   Py_DECREF(__pyx_1); __pyx_1 = 0;
-  Py_DECREF(__pyx_2); __pyx_2 = 0;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":97
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":97
  *             factor = floor( factor / self.out_size )
  *         rval.reverse()
  *         return rval             # <<<<<<<<<<<<<<
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_1);
-  Py_XDECREF(__pyx_2);
   Py_XDECREF(__pyx_3);
+  Py_XDECREF(__pyx_4);
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.reverse_map");
   __pyx_r = NULL;
   __pyx_L0:;
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":99
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":99
  *         return rval
  * 
  *     def get_out_size( self ):             # <<<<<<<<<<<<<<
   PyObject *__pyx_r;
   PyObject *__pyx_1 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":100
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":100
  * 
  *     def get_out_size( self ):
  *         return self.out_size             # <<<<<<<<<<<<<<
  * 
  * cdef class IntToIntMapping:
  */
-  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_CharToIntArrayMapping *)__pyx_v_self)->out_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_1;
   __pyx_1 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_1);
   __Pyx_AddTraceback("bx._seqmapping.CharToIntArrayMapping.get_out_size");
   __pyx_r = NULL;
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":108
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":108
  *     cdef int out_size
  * 
  *     def __new__( self, int in_size ):             # <<<<<<<<<<<<<<
  *         self.table = <int *> malloc( in_size * sizeof( int ) )
  */
 
-static PyObject *__pyx_kp_3;
-
-static char __pyx_k_3[] = "Malloc Failed";
-
 static int __pyx_pf_2bx_11_seqmapping_15IntToIntMapping___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static int __pyx_pf_2bx_11_seqmapping_15IntToIntMapping___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   int __pyx_v_in_size;
   long __pyx_2;
   PyObject *__pyx_3 = 0;
   Py_ssize_t __pyx_4 = 0;
-  static char *__pyx_argnames[] = {"in_size",0};
-  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 1)) {
-    __pyx_v_in_size = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_in_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L2;}
+  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_in_size,0};
+  if (unlikely(__pyx_kwds)) {
+    PyObject* values[1] = {0};
+    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      case  0: break;
+      default: goto __pyx_L5_argtuple_error;
+    }
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  0:
+      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_in_size);
+      if (likely(values[0])) kw_args--;
+      else goto __pyx_L5_argtuple_error;
+    }
+    if (unlikely(kw_args > 0)) {
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__new__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    }
+    __pyx_v_in_size = __pyx_PyInt_int(values[0]); if (unlikely((__pyx_v_in_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
+    goto __pyx_L5_argtuple_error;
+  } else {
+    __pyx_v_in_size = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_in_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  else {
-    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "i", __pyx_argnames, &__pyx_v_in_size))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L2;}
-  }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.__cinit__");
   return -1;
-  __pyx_L3:;
+  __pyx_L4_argument_unpacking_done:;
   __pyx_v_i = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":109
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":109
  * 
  *     def __new__( self, int in_size ):
  *         self.in_size = in_size             # <<<<<<<<<<<<<<
  */
   ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size = __pyx_v_in_size;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":110
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":110
  *     def __new__( self, int in_size ):
  *         self.in_size = in_size
  *         self.table = <int *> malloc( in_size * sizeof( int ) )             # <<<<<<<<<<<<<<
  */
   ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table = ((int *)malloc((__pyx_v_in_size * (sizeof(int)))));
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":111
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":111
  *         self.in_size = in_size
  *         self.table = <int *> malloc( in_size * sizeof( int ) )
  *         if self.table == NULL: raise "Malloc Failed"             # <<<<<<<<<<<<<<
   __pyx_1 = (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table == NULL);
   if (__pyx_1) {
     __Pyx_Raise(__pyx_kp_3, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    goto __pyx_L4;
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L6;
   }
-  __pyx_L4:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":112
+  __pyx_L6:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":112
  *         self.table = <int *> malloc( in_size * sizeof( int ) )
  *         if self.table == NULL: raise "Malloc Failed"
  *         for i from 0 <= i < in_size: self.table[i] = -1             # <<<<<<<<<<<<<<
  * 
  */
   for (__pyx_2 = 0; __pyx_2 < __pyx_v_in_size; __pyx_2++) {
-    __pyx_3 = PyInt_FromLong(__pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_3 = PyInt_FromLong(__pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(__pyx_v_i);
     __pyx_v_i = __pyx_3;
     __pyx_3 = 0;
-    __pyx_4 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_4 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_4]) = -1;
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":113
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":113
  *         if self.table == NULL: raise "Malloc Failed"
  *         for i from 0 <= i < in_size: self.table[i] = -1
  *         self.out_size = 0             # <<<<<<<<<<<<<<
 
   __pyx_r = 0;
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_3);
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.__cinit__");
   __pyx_r = -1;
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":115
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":115
  *         self.out_size = 0
  * 
  *     def __dealloc__( self ):             # <<<<<<<<<<<<<<
 static void __pyx_pf_2bx_11_seqmapping_15IntToIntMapping___dealloc__(PyObject *__pyx_v_self); /*proto*/
 static void __pyx_pf_2bx_11_seqmapping_15IntToIntMapping___dealloc__(PyObject *__pyx_v_self) {
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":117
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":117
  *     def __dealloc__( self ):
  *         # sys.stderr.write( "freeing mapping_helper.IntToIntMapping\n" ); sys.stderr.flush()
  *         free( self.table )             # <<<<<<<<<<<<<<
 
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":119
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":119
  *         free( self.table )
  * 
  *     def set_mapping( self, int index, int symbol ):             # <<<<<<<<<<<<<<
  *         self.table[index] = symbol
  */
 
-static PyObject *__pyx_kp_4;
-
-static char __pyx_k_4[] = "%d not between 0 and %s";
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_set_mapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_set_mapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   int __pyx_v_index;
   PyObject *__pyx_2 = 0;
   PyObject *__pyx_3 = 0;
   PyObject *__pyx_4 = 0;
-  static char *__pyx_argnames[] = {"index","symbol",0};
-  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
-    __pyx_v_index = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L2;}
-    __pyx_v_symbol = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L2;}
+  PyObject *__pyx_t_1 = NULL;
+  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_index,&__pyx_kp_symbol,0};
+  if (unlikely(__pyx_kwds)) {
+    PyObject* values[2] = {0,0};
+    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      case  0: break;
+      default: goto __pyx_L5_argtuple_error;
+    }
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  0:
+      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_index);
+      if (likely(values[0])) kw_args--;
+      else goto __pyx_L5_argtuple_error;
+      case  1:
+      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_symbol);
+      if (likely(values[1])) kw_args--;
+      else {
+        __Pyx_RaiseArgtupleInvalid("set_mapping", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    }
+    if (unlikely(kw_args > 0)) {
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "set_mapping") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    }
+    __pyx_v_index = __pyx_PyInt_int(values[0]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_symbol = __pyx_PyInt_int(values[1]); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+    goto __pyx_L5_argtuple_error;
+  } else {
+    __pyx_v_index = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_symbol = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_symbol == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  else {
-    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ii", __pyx_argnames, &__pyx_v_index, &__pyx_v_symbol))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L2;}
-  }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("set_mapping", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.set_mapping");
   return NULL;
-  __pyx_L3:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":120
+  __pyx_L4_argument_unpacking_done:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":120
  * 
  *     def set_mapping( self, int index, int symbol ):
  *         assert ( -1 <= index < self.in_size ), "%d not between 0 and %s" % ( index, self.in_size )             # <<<<<<<<<<<<<<
     __pyx_1 = (__pyx_v_index < ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size);
   }
   if (unlikely(!__pyx_1)) {
-    __pyx_2 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_3 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
-    __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_2 = PyInt_FromLong(__pyx_v_index); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_3 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
     PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
     __pyx_2 = 0;
     __pyx_3 = 0;
-    __pyx_2 = PyNumber_Remainder(__pyx_kp_4, ((PyObject *)__pyx_4)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_t_1 = PyNumber_Remainder(__pyx_kp_4, ((PyObject *)__pyx_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
-    PyErr_SetObject(PyExc_AssertionError, __pyx_2);
-    Py_DECREF(__pyx_2); __pyx_2 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    PyErr_SetObject(PyExc_AssertionError, __pyx_t_1);
+    Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":121
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":121
  *     def set_mapping( self, int index, int symbol ):
  *         assert ( -1 <= index < self.in_size ), "%d not between 0 and %s" % ( index, self.in_size )
  *         self.table[index] = symbol             # <<<<<<<<<<<<<<
  */
   (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_index]) = __pyx_v_symbol;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":122
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":122
  *         assert ( -1 <= index < self.in_size ), "%d not between 0 and %s" % ( index, self.in_size )
  *         self.table[index] = symbol
  *         if self.out_size <= symbol:             # <<<<<<<<<<<<<<
   __pyx_1 = (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->out_size <= __pyx_v_symbol);
   if (__pyx_1) {
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":123
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":123
  *         self.table[index] = symbol
  *         if self.out_size <= symbol:
  *             self.out_size = symbol + 1             # <<<<<<<<<<<<<<
  *     def translate( self, src ):
  */
     ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->out_size = (__pyx_v_symbol + 1);
-    goto __pyx_L4;
+    goto __pyx_L6;
   }
-  __pyx_L4:;
+  __pyx_L6:;
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_2);
   Py_XDECREF(__pyx_3);
   Py_XDECREF(__pyx_4);
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":125
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":125
  *             self.out_size = symbol + 1
  * 
  *     def translate( self, src ):             # <<<<<<<<<<<<<<
  *         cdef int s_len, t_len
  */
 
-static char __pyx_k_6[] = "i";
-
-static PyObject *__pyx_kp_6;
-
-static PyObject *__pyx_kp_5;
-
-static char __pyx_k_5[] = "`src` argument must be a buffer of 32bit integers";
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_translate(PyObject *__pyx_v_self, PyObject *__pyx_v_src); /*proto*/
 static char __pyx_doc_2bx_11_seqmapping_15IntToIntMapping_translate[] = "Translate `string` and return as int array";
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_translate(PyObject *__pyx_v_self, PyObject *__pyx_v_src) {
   __pyx_v_rval = Py_None; Py_INCREF(Py_None);
   __pyx_v_i = Py_None; Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":130
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":130
  *         cdef int *s_buf, *t_buf
  *         # Get direct access to string
  *         PyObject_AsReadBuffer( src, <void **> &s_buf, &s_len )             # <<<<<<<<<<<<<<
  *         s_len = s_len / sizeof( int )
  *         assert s_len == len( src ), "`src` argument must be a buffer of 32bit integers"
  */
-  __pyx_1 = PyObject_AsReadBuffer(__pyx_v_src, ((void **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":131
+  __pyx_1 = PyObject_AsReadBuffer(__pyx_v_src, ((void **)(&__pyx_v_s_buf)), (&__pyx_v_s_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":131
  *         # Get direct access to string
  *         PyObject_AsReadBuffer( src, <void **> &s_buf, &s_len )
  *         s_len = s_len / sizeof( int )             # <<<<<<<<<<<<<<
  */
   __pyx_v_s_len = (__pyx_v_s_len / (sizeof(int)));
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":132
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":132
  *         PyObject_AsReadBuffer( src, <void **> &s_buf, &s_len )
  *         s_len = s_len / sizeof( int )
  *         assert s_len == len( src ), "`src` argument must be a buffer of 32bit integers"             # <<<<<<<<<<<<<<
  *         rval = zeros( s_len, 'i' )
  */
   #ifndef PYREX_WITHOUT_ASSERTIONS
-  __pyx_2 = PyObject_Length(__pyx_v_src); if (unlikely(__pyx_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_2 = PyObject_Length(__pyx_v_src); if (unlikely(__pyx_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (unlikely(!(__pyx_v_s_len == __pyx_2))) {
     PyErr_SetObject(PyExc_AssertionError, __pyx_kp_5);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":134
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":134
  *         assert s_len == len( src ), "`src` argument must be a buffer of 32bit integers"
  *         # Initialize empty array
  *         rval = zeros( s_len, 'i' )             # <<<<<<<<<<<<<<
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )
  *         # Translate
  */
-  __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_4 = PyInt_FromLong(__pyx_v_s_len); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_5 = PyTuple_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_zeros); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_4 = PyInt_FromLong(__pyx_v_s_len); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_5 = PyTuple_New(2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   PyTuple_SET_ITEM(__pyx_5, 0, __pyx_4);
   Py_INCREF(__pyx_kp_6);
   PyTuple_SET_ITEM(__pyx_5, 1, __pyx_kp_6);
   __pyx_4 = 0;
-  __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_4 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_5), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(__pyx_3); __pyx_3 = 0;
   Py_DECREF(((PyObject *)__pyx_5)); __pyx_5 = 0;
   Py_DECREF(__pyx_v_rval);
   __pyx_v_rval = __pyx_4;
   __pyx_4 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":135
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":135
  *         # Initialize empty array
  *         rval = zeros( s_len, 'i' )
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )             # <<<<<<<<<<<<<<
  *         # Translate
  *         for i from 0 <= i < s_len:
  */
-  __pyx_1 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1;}
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":137
+  __pyx_1 = PyObject_AsWriteBuffer(__pyx_v_rval, ((void **)(&__pyx_v_t_buf)), (&__pyx_v_t_len)); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":137
  *         PyObject_AsWriteBuffer( rval, <void **> &t_buf, &t_len )
  *         # Translate
  *         for i from 0 <= i < s_len:             # <<<<<<<<<<<<<<
  *                 t_buf[i] = -1
  */
   for (__pyx_6 = 0; __pyx_6 < __pyx_v_s_len; __pyx_6++) {
-    __pyx_3 = PyInt_FromLong(__pyx_6); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_3 = PyInt_FromLong(__pyx_6); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     Py_DECREF(__pyx_v_i);
     __pyx_v_i = __pyx_3;
     __pyx_3 = 0;
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":138
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":138
  *         # Translate
  *         for i from 0 <= i < s_len:
  *             if s_buf[i] == -1:             # <<<<<<<<<<<<<<
  *                 t_buf[i] = -1
  *             elif s_buf[i] >= self.in_size:
  */
-    __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_7 = ((__pyx_v_s_buf[__pyx_2]) == -1);
     if (__pyx_7) {
 
-      /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":139
+      /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":139
  *         for i from 0 <= i < s_len:
  *             if s_buf[i] == -1:
  *                 t_buf[i] = -1             # <<<<<<<<<<<<<<
  *             elif s_buf[i] >= self.in_size:
  *                 t_buf[i] = -1
  */
-      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1;}
+      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       (__pyx_v_t_buf[__pyx_2]) = -1;
-      goto __pyx_L6;
+      goto __pyx_L7;
     }
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":140
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":140
  *             if s_buf[i] == -1:
  *                 t_buf[i] = -1
  *             elif s_buf[i] >= self.in_size:             # <<<<<<<<<<<<<<
  *                 t_buf[i] = -1
  *             else:
  */
-    __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_7 = ((__pyx_v_s_buf[__pyx_2]) >= ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size);
     if (__pyx_7) {
 
-      /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":141
+      /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":141
  *                 t_buf[i] = -1
  *             elif s_buf[i] >= self.in_size:
  *                 t_buf[i] = -1             # <<<<<<<<<<<<<<
  *             else:
  *                 t_buf[i] = self.table[ s_buf[ i ] ]
  */
-      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1;}
+      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       (__pyx_v_t_buf[__pyx_2]) = -1;
-      goto __pyx_L6;
+      goto __pyx_L7;
     }
     /*else*/ {
 
-      /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":143
+      /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":143
  *                 t_buf[i] = -1
  *             else:
  *                 t_buf[i] = self.table[ s_buf[ i ] ]             # <<<<<<<<<<<<<<
  *         # Done
  *         return rval
  */
-      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1;}
-      __pyx_8 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1;}
+      __pyx_2 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_8 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       (__pyx_v_t_buf[__pyx_8]) = (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[(__pyx_v_s_buf[__pyx_2])]);
     }
-    __pyx_L6:;
+    __pyx_L7:;
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":145
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":145
  *                 t_buf[i] = self.table[ s_buf[ i ] ]
  *         # Done
  *         return rval             # <<<<<<<<<<<<<<
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_3);
   Py_XDECREF(__pyx_4);
   Py_XDECREF(__pyx_5);
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":147
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":147
  *         return rval
  * 
  *     def __getitem__( self, int x ):             # <<<<<<<<<<<<<<
  *         assert 0 <= x < self.in_size
  */
 
-static PyObject *__pyx_int_neg_1;
-
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
   int __pyx_v_x;
   int __pyx_1;
   PyObject *__pyx_2 = 0;
   assert(__pyx_arg_x); {
-    __pyx_v_x = __pyx_PyInt_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L2;}
+    __pyx_v_x = __pyx_PyInt_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.__getitem__");
   return NULL;
-  __pyx_L3:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":148
+  __pyx_L4_argument_unpacking_done:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":148
  * 
  *     def __getitem__( self, int x ):
  *         if x == -1: return -1             # <<<<<<<<<<<<<<
     Py_INCREF(__pyx_int_neg_1);
     __pyx_r = __pyx_int_neg_1;
     goto __pyx_L0;
-    goto __pyx_L4;
+    goto __pyx_L5;
   }
-  __pyx_L4:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":149
+  __pyx_L5:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":149
  *     def __getitem__( self, int x ):
  *         if x == -1: return -1
  *         assert 0 <= x < self.in_size             # <<<<<<<<<<<<<<
   }
   if (unlikely(!__pyx_1)) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":150
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":150
  *         if x == -1: return -1
  *         assert 0 <= x < self.in_size
  *         return self.table[ x ]             # <<<<<<<<<<<<<<
  * 
  *     def collapse( self, int a, int b ):
  */
-  __pyx_2 = PyInt_FromLong((((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_x])); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_2 = PyInt_FromLong((((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_x])); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_2;
   __pyx_2 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_2);
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.__getitem__");
   __pyx_r = NULL;
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":152
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":152
  *         return self.table[ x ]
  * 
  *     def collapse( self, int a, int b ):             # <<<<<<<<<<<<<<
   int __pyx_3;
   int __pyx_4;
   int __pyx_5;
-  static char *__pyx_argnames[] = {"a","b",0};
-  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
-    __pyx_v_a = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_a == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L2;}
-    __pyx_v_b = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_b == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L2;}
+  static PyObject **__pyx_pyargnames[] = {&__pyx_kp_a,&__pyx_kp_b,0};
+  if (unlikely(__pyx_kwds)) {
+    PyObject* values[2] = {0,0};
+    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      case  0: break;
+      default: goto __pyx_L5_argtuple_error;
+    }
+    switch (PyTuple_GET_SIZE(__pyx_args)) {
+      case  0:
+      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_a);
+      if (likely(values[0])) kw_args--;
+      else goto __pyx_L5_argtuple_error;
+      case  1:
+      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_b);
+      if (likely(values[1])) kw_args--;
+      else {
+        __Pyx_RaiseArgtupleInvalid("collapse", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    }
+    if (unlikely(kw_args > 0)) {
+      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "collapse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    }
+    __pyx_v_a = __pyx_PyInt_int(values[0]); if (unlikely((__pyx_v_a == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_b = __pyx_PyInt_int(values[1]); if (unlikely((__pyx_v_b == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
+    goto __pyx_L5_argtuple_error;
+  } else {
+    __pyx_v_a = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely((__pyx_v_a == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_b = __pyx_PyInt_int(PyTuple_GET_ITEM(__pyx_args, 1)); if (unlikely((__pyx_v_b == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  else {
-    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ii", __pyx_argnames, &__pyx_v_a, &__pyx_v_b))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L2;}
-  }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("collapse", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.collapse");
   return NULL;
-  __pyx_L3:;
+  __pyx_L4_argument_unpacking_done:;
   __pyx_v_copy = ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)Py_None); Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":155
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":155
  *         cdef int i
  *         cdef IntToIntMapping copy
  *         copy = IntToIntMapping( self.in_size )             # <<<<<<<<<<<<<<
  *         copy.out_size = self.out_size - 1
  *         if a > b: a, b = b, a
  */
-  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
-  __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
   __pyx_1 = 0;
-  __pyx_1 = PyObject_Call(((PyObject*)__pyx_ptype_2bx_11_seqmapping_IntToIntMapping), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  __pyx_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_2bx_11_seqmapping_IntToIntMapping)), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
-  if (!(__Pyx_TypeTest(__pyx_1, __pyx_ptype_2bx_11_seqmapping_IntToIntMapping))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1;}
+  if (!(__Pyx_TypeTest(__pyx_1, __pyx_ptype_2bx_11_seqmapping_IntToIntMapping))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   Py_DECREF(((PyObject *)__pyx_v_copy));
   __pyx_v_copy = ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_1);
   __pyx_1 = 0;
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":156
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":156
  *         cdef IntToIntMapping copy
  *         copy = IntToIntMapping( self.in_size )
  *         copy.out_size = self.out_size - 1             # <<<<<<<<<<<<<<
  */
   __pyx_v_copy->out_size = (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->out_size - 1);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":157
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":157
  *         copy = IntToIntMapping( self.in_size )
  *         copy.out_size = self.out_size - 1
  *         if a > b: a, b = b, a             # <<<<<<<<<<<<<<
     __pyx_5 = __pyx_v_a;
     __pyx_v_a = __pyx_4;
     __pyx_v_b = __pyx_5;
-    goto __pyx_L4;
+    goto __pyx_L6;
   }
-  __pyx_L4:;
-
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":158
+  __pyx_L6:;
+
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":158
  *         copy.out_size = self.out_size - 1
  *         if a > b: a, b = b, a
  *         for i from 0 <= i < self.in_size:             # <<<<<<<<<<<<<<
   __pyx_4 = ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->in_size;
   for (__pyx_v_i = 0; __pyx_v_i < __pyx_4; __pyx_v_i++) {
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":159
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":159
  *         if a > b: a, b = b, a
  *         for i from 0 <= i < self.in_size:
  *             if self.table[i] == b: copy.table[i] = a             # <<<<<<<<<<<<<<
     __pyx_3 = ((((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_i]) == __pyx_v_b);
     if (__pyx_3) {
       (__pyx_v_copy->table[__pyx_v_i]) = __pyx_v_a;
-      goto __pyx_L7;
+      goto __pyx_L9;
     }
 
-    /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":160
+    /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":160
  *         for i from 0 <= i < self.in_size:
  *             if self.table[i] == b: copy.table[i] = a
  *             elif self.table[i] == copy.out_size: copy.table[i] = b             # <<<<<<<<<<<<<<
     __pyx_3 = ((((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_i]) == __pyx_v_copy->out_size);
     if (__pyx_3) {
       (__pyx_v_copy->table[__pyx_v_i]) = __pyx_v_b;
-      goto __pyx_L7;
+      goto __pyx_L9;
     }
     /*else*/ {
 
-      /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":161
+      /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":161
  *             if self.table[i] == b: copy.table[i] = a
  *             elif self.table[i] == copy.out_size: copy.table[i] = b
  *             else: copy.table[i] = self.table[i]             # <<<<<<<<<<<<<<
  */
       (__pyx_v_copy->table[__pyx_v_i]) = (((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)__pyx_v_self)->table[__pyx_v_i]);
     }
-    __pyx_L7:;
+    __pyx_L9:;
   }
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":162
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":162
  *             elif self.table[i] == copy.out_size: copy.table[i] = b
  *             else: copy.table[i] = self.table[i]
  *         return copy             # <<<<<<<<<<<<<<
 
   __pyx_r = Py_None; Py_INCREF(Py_None);
   goto __pyx_L0;
-  __pyx_L1:;
+  __pyx_L1_error:;
   Py_XDECREF(__pyx_1);
   Py_XDECREF(__pyx_2);
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.collapse");
   return __pyx_r;
 }
 
-/* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":164
+/* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":164
  *         return copy
  * 
  *     def expand( self, int x ):             # <<<<<<<<<<<<<<
  */
 
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_expand(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/
-static char __pyx_doc_2bx_11_seqmapping_15IntToIntMapping_expand[] = "Grow the alphabet by making \'a\' a seperate symbol. If it already mapped to a single symbol, do nothing";
+static char __pyx_doc_2bx_11_seqmapping_15IntToIntMapping_expand[] = "Grow the alphabet by making 'a' a seperate symbol. If it already mapped to a single symbol, do nothing";
 static PyObject *__pyx_pf_2bx_11_seqmapping_15IntToIntMapping_expand(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) {
   int __pyx_v_x;
   int __pyx_v_i;
   PyObject *__pyx_3 = 0;
   PyObject *__pyx_4 = 0;
   assert(__pyx_arg_x); {
-    __pyx_v_x = __pyx_PyInt_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L2;}
+    __pyx_v_x = __pyx_PyInt_int(__pyx_arg_x); if (unlikely((__pyx_v_x == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
-  goto __pyx_L3;
-  __pyx_L2:;
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L3_error:;
   __Pyx_AddTraceback("bx._seqmapping.IntToIntMapping.expand");
   return NULL;
-  __pyx_L3:;
+  __pyx_L4_argument_unpacking_done:;
   __pyx_v_copy = ((struct __pyx_obj_2bx_11_seqmapping_IntToIntMapping *)Py_None); Py_INCREF(Py_None);
 
-  /* "/home/james/src/bx-python-trunk/lib/bx/_seqmapping.pyx":169
+  /* "/Users/james/projects/bx-python/code/bx-python-central/lib/bx/_seqmapping.pyx":169