def test_alignment_info_from_bam(self): datum, unrolled, max_subread, movie_names = alignment_info_from_bam( self.BAM_PATH)[self.MOVIE].as_tuple() self.assertEqual(max_subread[(self.MOVIE, 17417)], ((self.MOVIE, 17417, 1196, 3131), 1925)) self.assertEqual(max_subread[(self.MOVIE, 27338)], ((self.MOVIE, 27338, 4356, 5498), 1115))
def _harvest_file_data(file_name): log.info("reading {f}.pbi".format(f=file_name)) try: return alignment_info_from_bam(file_name) except Exception as err: # multiprocessing does not handle uncaught Exceptions gracefully return err
def setUpClass(cls): log.info("Loading alignments from {c}".format(c=cls.BAM_PATH)) movie_names, unrolled, datum, columns = from_alignment_file( alignment_info_from_bam(cls.BAM_PATH)[cls.MOVIE]) cls.datum = datum cls.unrolled = unrolled cls.movie_names = movie_names cls.columns = columns
def analyze_movies(movies, alignment_file_names, stats_models): all_results = [] log.info("collecting data from {n} BAM files...".format( n=len(alignment_file_names))) for file_name in alignment_file_names: log.info("reading {f}.pbi".format(f=file_name)) results = alignment_info_from_bam(file_name) for movie, aln_info in results.iteritems(): log.info("Analyzing Movie {n} in {f}".format(n=movie, f=file_name)) args = from_alignment_file(aln_info) _process_movie_data(movie, file_name, stats_models, *args) log.info("Completed analyzing {n} movies.".format(n=len(movies)))