Mercurial > repos > melissacline > ucsc_cancer_utilities
diff seg2matrix/CGData/SegToMatrix.py @ 31:ab20c0d04f4a
add seg2matrix tool
author | jingchunzhu |
---|---|
date | Fri, 24 Jul 2015 13:10:11 -0700 |
parents | |
children | 8ef79bd0be9a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seg2matrix/CGData/SegToMatrix.py Fri Jul 24 13:10:11 2015 -0700 @@ -0,0 +1,30 @@ + + +import ctypes +import os + +base = os.path.dirname(os.path.abspath(__file__)) +libFile = base + "/CsegToMatrix.so" +if os.path.exists(libFile): + segLib = ctypes.cdll.LoadLibrary(libFile) + + +def seg_to_matrix(seg_handle, out_handle): + """ + Turn a segment file into a segmented matrix. + + seg_handle -- CGData.GenomicSegment object + out_handle -- File handle to write to + """ + s = segLib.new_segment() + t = segLib.new_target_set() + for target in seg_handle.get_key_list(): + for seg in seg_handle.get_by(target): + segLib.add_segment(s, t, target, seg.chrom, seg.chrom_start, seg.chrom_end, ctypes.c_float(seg.value)) + + def printback(s): + out_handle.write(s) + return 0 + + printbackTYPE = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_char_p) + segLib.print_matrix(s, t, printbackTYPE(printback))