示例#1
0
def mhsmidkernelsmooth(bamfile, bwfile, maxinsert=80, mininsert=1, paired=False, kernelsize=30):
    bamfor = Baminfo.Baminfo(bamfile)

    bw = pyBigWig.open(bwfile, "w")

    bw.addHeader(list(bamfor.chrlen.items()))

    for chromosome in bamfor.chrlen:

        end = bamfor.chrlen[chromosome]

        mhsmidcount = mhsbam.mhsmidcount(bamfile=bamfile, chromosome=chromosome, start=1,
                                         end=end, maxinsert=maxinsert, mininsert=mininsert, paired=paired)

        mhsmidsmoothed = kernelsmooth(mhsmidcount, 1, end, end, kernelsize)

        if mhsmidsmoothed:

            starts = list()

            values = list()

            for start in sorted(mhsmidsmoothed):
                starts.append(start)

                values.append(float(mhsmidsmoothed[start]))

            bw.addEntries(chromosome, starts=starts, values=values,
                          span=1, step=1)

    bw.close()
示例#2
0
def mhsmidkernelsmooth(bamfile, bwfile, maxinsert=80, mininsert=1, paired=False, kernelsize=30):
    bamfor = Baminfo.Baminfo(bamfile)

    bw = pyBigWig.open(bwfile, "w")

    bw.addHeader(list(bamfor.chrlen.items()))

    for chromosome in bamfor.chrlen:

        end = bamfor.chrlen[chromosome]

        mhsmidcount = mhsbam.mhsmidcount(bamfile=bamfile, chromosome=chromosome, start=1,
                                         end=end, maxinsert=maxinsert, mininsert=mininsert, paired=paired)

        mhsmidsmoothed = kernelsmooth(mhsmidcount, 1, end, end, kernelsize)

        if mhsmidsmoothed:

            starts = list()

            values = list()

            for start in sorted(mhsmidsmoothed):
                starts.append(start)

                values.append(float(mhsmidsmoothed[start]))

            bw.addEntries(chromosome, starts=starts, values=values,
                          span=1, step=1)

    bw.close()
示例#3
0
    def test_openmhs_pairedshort(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps,
                                 chromosome='Chr1',
                                 start=1,
                                 end=300,
                                 paired=True)

        self.assertEqual(res[115], 2)
示例#4
0
    def test_openmhs_pairedlong_empty(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps,
                                 chromosome='Chr2',
                                 start=1,
                                 end=300,
                                 maxinsert=180,
                                 paired=True)

        self.assertFalse(res)
示例#5
0
    def test_openmhs_pairedlong(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps,
                                 chromosome='Chr1',
                                 start=1,
                                 end=300,
                                 maxinsert=180,
                                 paired=True)

        self.assertEqual(res[251], 3)
示例#6
0
def midextendtobw(bamfile, bwfile, maxinsert, mininsert, paired=False, extend=80):
    bamfor = Baminfo.Baminfo(bamfile)

    bw = pyBigWig.open(bwfile, "w")

    bw.addHeader(list(bamfor.chrlen.items()))

    for chromosome in bamfor.chrlen:

        end = bamfor.chrlen[chromosome]

        mhsmidcount = mhsbam.mhsmidcount(bamfile=bamfile, chromosome=chromosome, start=1,
                                         end=end, maxinsert=maxinsert, mininsert=mininsert, paired=paired)

        if mhsmidcount:

            extended = dict()

            for midnow in mhsmidcount:

                halfextend = int(extend/2)

                rangestart = 0-halfextend
                rangeend = halfextend+1

                for i in range(rangestart, rangeend):

                    nowsite = i + midnow

                    if nowsite < 1:
                        continue

                    if nowsite > end:
                        continue

                    if nowsite in extended:
                        extended[nowsite] += mhsmidcount[midnow]
                    else:
                        extended[nowsite] = mhsmidcount[midnow]

            starts = list()

            values = list()

            for nowsite in sorted(extended):


                starts.append(nowsite)

                values.append(float(extended[nowsite]))



            bw.addEntries(chromosome, starts=starts, values=values, span=1, step=1)

    bw.close()
示例#7
0
    def test_openmhs_pairedlong_empty(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps, chromosome='Chr2', start=1, end=300, maxinsert=180, paired=True)

        self.assertFalse(res)
示例#8
0
    def test_openmhs_pairedlong(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps, chromosome='Chr1', start=1, end=300, maxinsert=180, paired=True)

        self.assertEqual(res[251], 3)
示例#9
0
    def test_openmhs_pairedshort(self):
        res = mhsbam.mhsmidcount(self.pairedbamnps, chromosome='Chr1', start=1, end=300, paired=True)

        self.assertEqual(res[115], 2)