예제 #1
0
 def __init__(self, row):
     self.numCols = len(row)
     self.chrom = row[0]
     self.chromStart = int(row[1])
     self.chromEnd = int(row[2])
     self.name = row[3]
     if self.numCols > 4:
         self.score = int(row[4])
     else:
         self.score = None
     if self.numCols > 5:
         self.strand = row[5]
     else:
         self.strand = None
     if self.numCols > 7:
         self.thickStart = int(row[6])
         self.thickEnd = int(row[7])
     else:
         self.thickStart = None
         self.thickEnd = None
         
     if self.numCols > 8:
         self.itemRgb = row[8]
     else:
         self.itemRgb = None
     if self.numCols > 11:
         sizes = intArraySplit(row[10])
         relStarts = intArraySplit(row[11])
         self.blocks = []
         for i in xrange(len(relStarts)):
             self.blocks.append(Bed.Block(relStarts[i], sizes[i], self.chromStart+relStarts[i]))
     else:
         self.blocks = None
예제 #2
0
 def __initParse(self, row):
     self.name = row[0]
     self.chrom = row[1]
     self.strand = row[2]
     self.strandRel = False  # are these strand-relative coordinates
     self.txStart = int(row[3])
     self.txEnd = int(row[4])
     self.cdsStart = int(row[5])
     self.cdsEnd = int(row[6])
     exonStarts = intArraySplit(row[8])
     exonEnds = intArraySplit(row[9])
     iCol = 10
     numCols = len(row)
     self.score = None
     if iCol < numCols:  # 10
         self.score = int(row[iCol])
         iCol = iCol + 1
     self.name2 = None
     if iCol < numCols:  # 11
         self.name2 = row[iCol]
         iCol = iCol + 1
     self.cdsStartStat = None
     self.cdsEndStat = None
     if iCol < numCols:  # 12,13
         self.cdsStartStat = CdsStat(row[iCol])
         self.cdsEndStat = CdsStat(row[iCol + 1])
         iCol = iCol + 2
     exonFrames = None
     self.hasExonFrames = False
     if iCol < numCols:  # 14
         exonFrames = intArraySplit(row[iCol])
         iCol = iCol + 1
         self.hasExonFrames = True
     self.__buildExons(exonStarts, exonEnds, exonFrames)
예제 #3
0
 def __initParse(self, row):
     self.name = row[0]
     self.chrom = row[1]
     self.strand = row[2]
     self.strandRel = False    # are these strand-relative coordinates
     self.txStart = int(row[3])
     self.txEnd = int(row[4])
     self.cdsStart = int(row[5])
     self.cdsEnd = int(row[6])
     exonStarts = intArraySplit(row[8])
     exonEnds = intArraySplit(row[9])
     iCol = 10
     numCols = len(row)
     self.score = None
     if iCol < numCols:  # 10
         self.score = int(row[iCol])
         iCol = iCol+1
     self.name2 = None
     if iCol < numCols:  # 11
         self.name2 = row[iCol]
         iCol = iCol+1
     self.cdsStartStat = None
     self.cdsEndStat = None
     if iCol < numCols:  # 12,13
         self.cdsStartStat = CdsStat(row[iCol])
         self.cdsEndStat = CdsStat(row[iCol+1])
         iCol = iCol+2
     exonFrames = None
     self.hasExonFrames = False
     if iCol < numCols:  # 14
         exonFrames = intArraySplit(row[iCol])
         iCol = iCol+1
         self.hasExonFrames = True
     self.__buildExons(exonStarts, exonEnds, exonFrames)
예제 #4
0
    def __init__(self, row):
        self.numCols = len(row)
        self.chrom = row[0]
        self.chromStart = int(row[1])
        self.chromEnd = int(row[2])
        self.name = row[3]
        if self.numCols > 4:
            self.score = int(row[4])
        else:
            self.score = None
        if self.numCols > 5:
            self.strand = row[5]
        else:
            self.strand = None
        if self.numCols > 7:
            self.thickStart = int(row[6])
            self.thickEnd = int(row[7])
        else:
            self.thickStart = None
            self.thickEnd = None

        if self.numCols > 8:
            self.itemRgb = row[8]
        else:
            self.itemRgb = None
        if self.numCols > 11:
            sizes = intArraySplit(row[10])
            relStarts = intArraySplit(row[11])
            self.blocks = []
            for i in xrange(len(relStarts)):
                self.blocks.append(Bed.Block(relStarts[i], sizes[i], self.chromStart + relStarts[i]))
        else:
            self.blocks = None
예제 #5
0
파일: Psl.py 프로젝트: joepickrell/pubMunch
 def __parseBlocks(self, blockSizesStr, qStartsStr, tStartsStr, qSeqsStr, tSeqsStr):
     "convert parallel arrays to PslBlock objects"
     self.blocks = []
     blockSizes = intArraySplit(blockSizesStr)
     qStarts = intArraySplit(qStartsStr)
     tStarts = intArraySplit(tStartsStr)
     haveSeqs = (qSeqsStr != None)
     if haveSeqs:
         qSeqs = strArraySplit(qSeqsStr)
         tSeqs = strArraySplit(tSeqsStr)
     for i in xrange(self.blockCount):
         self.blocks.append(PslBlock(self, qStarts[i], tStarts[i], blockSizes[i],
                                     (qSeqs[i] if haveSeqs else None),
                                     (tSeqs[i] if haveSeqs else None)))
예제 #6
0
 def __parseBlocks(self, blockSizesStr, qStartsStr, tStartsStr, qSeqsStr, tSeqsStr):
     "convert parallel arrays to PslBlock objects"
     self.blocks = []
     blockSizes = intArraySplit(blockSizesStr)
     qStarts = intArraySplit(qStartsStr)
     tStarts = intArraySplit(tStartsStr)
     haveSeqs = (qSeqsStr != None)
     if haveSeqs:
         qSeqs = strArraySplit(qSeqsStr)
         tSeqs = strArraySplit(tSeqsStr)
     for i in xrange(self.blockCount):
         self.blocks.append(PslBlock(self, qStarts[i], tStarts[i], blockSizes[i],
                                     (qSeqs[i] if haveSeqs else None),
                                     (tSeqs[i] if haveSeqs else None)))
예제 #7
0
 def __initDb(self, row, dbColIdxMap):
     self.name = row[dbColIdxMap["name"]]
     self.chrom = row[dbColIdxMap["chrom"]]
     self.strand = row[dbColIdxMap["strand"]]
     self.strandRel = False    # are these strand-relative coordinates
     self.txStart = int(row[dbColIdxMap["txStart"]])
     self.txEnd = int(row[dbColIdxMap["txEnd"]])
     self.cdsStart = int(row[dbColIdxMap["cdsStart"]])
     self.cdsEnd = int(row[dbColIdxMap["cdsEnd"]])
     exonStarts = intArraySplit(row[dbColIdxMap["exonStarts"]])
     exonEnds = intArraySplit(row[dbColIdxMap["exonEnds"]])
     self.score = self.__colOrNone(row, dbColIdxMap, "score", int)
     self.name2 = self.__colOrNone(row, dbColIdxMap, "name2", str)
     self.cdsStartStat = self.__colOrNone(row, dbColIdxMap, "cdsStartStat", CdsStat)
     self.cdsEndStat = self.__colOrNone(row, dbColIdxMap, "cdsEndStat", CdsStat)
     exonFrames = self.__colOrNone(row, dbColIdxMap, "exonFrames", intArraySplit)
     self.hasExonFrames = (exonFrames != None)
     self.__buildExons(exonStarts, exonEnds, exonFrames)
예제 #8
0
 def __initDb(self, row, dbColIdxMap):
     self.name = row[dbColIdxMap["name"]]
     self.chrom = row[dbColIdxMap["chrom"]]
     self.strand = row[dbColIdxMap["strand"]]
     self.strandRel = False  # are these strand-relative coordinates
     self.txStart = int(row[dbColIdxMap["txStart"]])
     self.txEnd = int(row[dbColIdxMap["txEnd"]])
     self.cdsStart = int(row[dbColIdxMap["cdsStart"]])
     self.cdsEnd = int(row[dbColIdxMap["cdsEnd"]])
     exonStarts = intArraySplit(row[dbColIdxMap["exonStarts"]])
     exonEnds = intArraySplit(row[dbColIdxMap["exonEnds"]])
     self.score = self.__colOrNone(row, dbColIdxMap, "score", int)
     self.name2 = self.__colOrNone(row, dbColIdxMap, "name2", str)
     self.cdsStartStat = self.__colOrNone(row, dbColIdxMap, "cdsStartStat",
                                          CdsStat)
     self.cdsEndStat = self.__colOrNone(row, dbColIdxMap, "cdsEndStat",
                                        CdsStat)
     exonFrames = self.__colOrNone(row, dbColIdxMap, "exonFrames",
                                   intArraySplit)
     self.hasExonFrames = (exonFrames != None)
     self.__buildExons(exonStarts, exonEnds, exonFrames)