Пример #1
0
 def test_matrix_generation(self):
     ''' Test creation of matrix '''
     genomeBin = interactionMatrix.genomeBin((self.chrFile,10,True))
     countMatrix, logArray = interactionMatrix.generateMatrix(
         self.inFrag, genomeBin, threads=4)
     self.assertTrue(np.array_equal(countMatrix,
         np.array([
             [2,0,0,0,0,0,1],
             [0,0,0,1,0,0,0],
             [0,0,0,0,2,0,0],
             [0,1,0,0,0,0,0],
             [0,0,2,0,0,0,0],
             [0,0,0,0,0,0,0],
             [1,0,0,0,0,0,0]
         ])))
     self.assertTrue(np.array_equal(logArray, np.array([10,2,3,5])))
Пример #2
0
 # Create output file prefix
 if args['--label']:
     outPrefix = args['<outdir>'] + sampleName + '_' + args['--label']
 else:
     outPrefix = args['<outdir>'] + sampleName
 # Create output file names
 bedFile = outPrefix + '.bed'
 matrixFile = outPrefix + '.countMatrix.gz'
 biasFile = outPrefix + '.bias'
 normMatrixFile = outPrefix + '.normMatrix.gz'
 # Store file names required for normalisation
 matrixFileList.append((matrixFile, biasFile, normMatrixFile))
 # Save bed file
 genomeBins.writeBed(bedFile)
 # Create interaction matrix and save to file
 countMatrix, logArray = interactionMatrix.generateMatrix(
     f, genomeBins, args['--threads'])
 np.savetxt(matrixFile, countMatrix, '%s', '\t',
     header = '\t'.join(genomeBins.binNames), comments = '')
 # Print Interaction Data
 print '\n%s:\n  Interaction Data:\n%s\n%s\n%s\n%s' %(
     sampleName,
     '    total: %s' %(logArray[0]),
     '    accepted: %s' %(logArray[3]),
     '    no chromosome: %s' %(logArray[1]),
     '    no bin: %s' %(logArray[2])
 )
 # Find and process bins below minimum bin count
 colSums = countMatrix.sum(axis=0)
 binsBelowMin = colSums < args['<mincount>']
 failedBins = np.logical_or(failedBins, binsBelowMin)
 # Print bin data
Пример #3
0
        'bin size equal: %s' %(args.equal),
        'minimum bin count: %s' %(args.minCount)
    )
else:
    raise IOError('bed file or chromosome file and bin size must be provided')
# Create output files
args.bedFile = args.outPrefix + '.bed'
args.biasFile = args.outPrefix + '.bias'
args.countMatrix = args.outPrefix + '.countMatrix'
args.normMatrix = args.outPrefix + '.normMatrix'
# Create bin object and save bed
genomeBins = interactionMatrix.genomeBin(binData)
genomeBins.writeBed(args.bedFile)
# Count interactions
countMatrix, logArray = interactionMatrix.generateMatrix(
    args.inFile, genomeBins, args.threads
)
# Save interactions
np.savetxt(args.countMatrix, countMatrix, '%s', '\t',
    header = '\t'.join(genomeBins.binNames), comments = '')
# Print Interaction Data
print '\nInteraction Data\n\t%s\n\t%s\n\t%s\n\t%s' %(
    'total: %s' %(logArray[0]),
    'accepted: %s' %(logArray[3]),
    'no chromosome: %s' %(logArray[1]),
    'no bin: %s' %(logArray[2])
)
# Count number of bins above minimum
colSums = countMatrix.sum(axis=0)
binsAboveMin = sum(colSums >= args.minCount)
# Print bin data