Пример #1
0
 def get_plot_objs(self, files):
     plot_objs = {}
     for f in files:
         plot_objs[f] = PlotParser(f)
         self.genome_size = len(plot_objs[f].combined)
         if self.verbose:
             print(plot_objs[f])
     return plot_objs
Пример #2
0
	def masking(self):
		masking_plot = PlotParser(self.masking_plot_file)
		output_plot_files = {}
		
		for insertion_filename in self.insertion_plot_files:
			insertion_plot = PlotParser(insertion_filename)
			
			for i, mask in enumerate(masking_plot.combined):
				if mask == 0 and self.strict_signal:
					insertion_plot.forward[i] = 0
					insertion_plot.reverse[i] = 0
					
			fd, output_filename = mkstemp()
			pg = PlotGenerator(insertion_plot.forward, insertion_plot.reverse, output_filename)
			pg.construct_file()
			output_plot_files[insertion_filename] = output_filename
		return output_plot_files
Пример #3
0
    def block_generator(self):
        combined_plot = PlotParser(self.combined_mask_file)
        forward_masking_plot = PlotParser(self.forward_mask_file)
        reverse_masking_plot = PlotParser(self.reverse_mask_file)

        masking_plot = self.merge_all_plots_choosing_peak_logfc(
            combined_plot, forward_masking_plot, reverse_masking_plot)
        blocks = self.increased_insertions_blocks(
            masking_plot) + self.decreased_insertions_blocks(masking_plot)

        block_filename = "block_report.csv"
        with open(block_filename, 'w') as bf:
            for b in blocks:
                bf.write("Start: " + str(b.start) + " end: " + str(b.end) +
                         "\n")
                bf.write("Length: " + str(b.block_length) + "\n")
        '''Filter out blocks which are less than the window size'''
        filtered_blocks: List[Block] = [
            b for b in blocks if b.block_length >= self.window_size
        ]

        block_length_Array = []
        for b in filtered_blocks:
            block_length_Array.append(b.end - b.start)
        average_block_length = numpy.mean(block_length_Array)
        print(average_block_length)

        for b in filtered_blocks:
            b.direction = self.direction_for_block(b, forward_masking_plot,
                                                   reverse_masking_plot)

        block_filename = "filtered_block_report.csv"
        with open(block_filename, 'w') as bf:
            for b in filtered_blocks:
                bf.write("Start: " + str(b.start) + " end: " + str(b.end) +
                         "\n")
                bf.write("Length: " + str(b.block_length) + "\n")

        return filtered_blocks
Пример #4
0
    def test_generate_and_read(self):
        filename = os.path.join(data_dir, 'plot.test')
        p = PlotGenerator([0, 0, 0, 0, 0, 1, 1, 3], [9, 9, 0, 9, 9, 1, 1, 3],
                          filename)
        p.construct_file()

        d = PlotParser(filename, 0)
        self.assertTrue(
            self.check_arrays_equal(d.forward, [0, 0, 0, 0, 0, 1, 1, 3]))
        self.assertTrue(
            self.check_arrays_equal(d.reverse, [9, 9, 0, 9, 9, 1, 1, 3]))
        self.assertTrue(
            self.check_arrays_equal(d.combined, [9, 9, 0, 9, 9, 2, 2, 6]))

        os.remove(filename)
Пример #5
0
	def plot_parser(self):
		return PlotParser(self.plotfile,self.minimum_threshold)
Пример #6
0
	def test_large_file_zipped(self):
		d = PlotParser(os.path.join(data_dir,'Control2.out.CP009273.insert_site_plot.gz'),3)
		self.assertEqual(d.total_reads, 7684360)
Пример #7
0
	def test_valid_threshold(self):
		d = PlotParser(os.path.join(data_dir,'valid'), 3)
		self.assertTrue(self.check_arrays_equal(d.forward, [0,0,0,0,0,0,0,3]))
		self.assertTrue(self.check_arrays_equal(d.reverse, [0,0,4,5,0,0,0,0]))
		self.assertTrue(self.check_arrays_equal(d.combined, [0,0,4,5,0,0,0,3]))
Пример #8
0
	def test_valid_ziped(self):
		d = PlotParser(os.path.join(data_dir,'valid.gz'),0)

		self.assertTrue(self.check_arrays_equal(d.forward, [0,0,0,0,0,1,1,3]))
		self.assertTrue(self.check_arrays_equal(d.reverse, [0,1,4,5,0,0,0,0]))
		self.assertTrue(self.check_arrays_equal(d.combined, [0,1,4,5,0,1,1,3]))
Пример #9
0
 def read_plots(self):
     plot_objs = {}
     for p in self.plotfiles:
         pp = PlotParser(p)
         plot_objs[p] = pp
     return plot_objs