def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) sep = get_seperator(args.sep) experiments = models.load_experiments(args.experiments, sep=sep) libraries = models.load_library_tables(args.libraries, sep=sep) output_sep = get_seperator(args.output_format) output_extension = {"TAB": ".tsv", ",": ".csv"}[args.output_format] if args.transcriptome: # isoforms load_quantifications = madqc.load_transcriptome_quantifications quantification_extension = "_isoform_" + args.quantification + output_extension else: # genes load_quantifications = madqc.load_genomic_quantifications quantification_extension = "_gene_" + args.quantification + output_extension for name in experiments: filename = name + quantification_extension replicates = experiments[name] logger.info("%s %s: %s", name, args.quantification, ",".join(replicates)) quantifications = load_quantifications(replicates, libraries, args.quantification) quantifications.to_csv(filename, sep=output_sep)
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) sep = get_seperator(args.sep) experiments = models.load_experiments(args.experiments, sep=sep) libraries = models.load_library_tables(args.libraries, sep=sep) output_sep = get_seperator(args.output_format) output_extension = { 'TAB': '.tsv', ',': '.csv', }[args.output_format] if args.add_names: if args.gtf_cache is None: parser.error('GTF-cache is needed to add names to the quantification file') else: logger.info('Loading GTF Cache %s', args.gtf_cache) annotation = models.load_gtf_cache(args.gtf_cache) else: annotation = None if args.transcriptome: # isoforms load_quantifications = madqc.load_transcriptome_quantifications lookup_ids = models.lookup_gene_name_by_transcript_id quantification_extension = '_isoform_' + args.quantification + output_extension else: # genes load_quantifications = madqc.load_genomic_quantifications lookup_ids = models.lookup_gene_name_by_gene_id quantification_extension = '_gene_' + args.quantification + output_extension for name in experiments: filename = name + quantification_extension replicates = experiments[name] logger.info("%s %s: %s", name, args.quantification, ','.join(replicates)) quantifications = load_quantifications( replicates, libraries, args.quantification) if annotation is not None: quantifications = lookup_ids(annotation, quantifications) quantifications.to_csv(filename, sep=output_sep)
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) if not validate_path_args(args): parser.error('Please set required parameters') if not (validate_library_file_existance(args) and validate_experiment_file_existance(args)): parser.error('Fix path to files') sep = get_seperator(args.sep) library_filenames = args.libraries library_filenames.extend(args.other_libraries) libraries = models.load_library_tables(library_filenames, sep) read1 = dict(find_fastqs(libraries, 'read_1')) if 'read_2' in libraries.columns: read2 = dict(find_fastqs(libraries, 'read_2')) else: read2 = {} dags = generate_star_rsem_analysis(args, libraries, read1, read2) generate_combined_analysis(args, dags) return 0
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) sep = get_seperator(args.sep) if not validate_library_file_existance(args): parser.error('Fix incorrect library file names') library_filenames = args.libraries if len(library_filenames) == 0: parser.error('Need library information table') libraries = load_library_tables(library_filenames, sep) custom_tracks = [] for library_id, library in libraries.iterrows(): if args.bigwig: custom_tracks.extend( make_bigwig_custom_tracks(library, args.web_root, args.root)) if args.bam: custom_tracks.append( make_bam_custom_track(library, args.web_root, args.root)) print(os.linesep.join(custom_tracks))
def save(self, quantifications, output_format, filename=None): output_sep = get_seperator(output_format) output_extension = { 'TAB': '.reads_per_gene.tsv', ',': '.reads_per_gene.csv', }[output_format] if filename is None: filename = quantifications.name + output_extension quantifications.to_csv(filename, sep=output_sep)
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) sep = get_seperator(args.sep) experiments = models.load_experiments(args.experiments, sep=sep) libraries = models.load_library_tables(args.libraries, sep=sep) if args.add_names: if args.gtf_cache is None: parser.error('GTF-cache is needed to add names to the quantification file') else: logger.info('Loading GTF Cache %s', args.gtf_cache) annotation = models.load_gtf_cache(args.gtf_cache) else: annotation = None loader = StarLoader(args.strand, annotation) for i, experiment in experiments.iterrows(): quantification = loader.load(experiment, libraries) loader.save(quantification, args.output_format)
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) sep = get_seperator(args.sep) experiments = models.load_experiments(args.experiments, sep=sep) libraries = models.load_library_tables(args.libraries, sep=sep) gtf_cache = None if args.add_names: if args.genome_dir is None: parser.error( 'genome-dir is needed to add names to the quantification file') else: gtf_cache = GTFCache(libraries, args.genome_dir) if len(args.quantification) > 0: quantification_list = args.quantification else: quantification_list = ['FPKM'] if args.transcriptome: # isoforms RsemLoader = IsoformRsemLoader else: # genes RsemLoader = GeneRsemLoader for quantification in quantification_list: logger.info('Building expression matrix for %s', quantification) for i, experiment in experiments.iterrows(): loader = RsemLoader(quantification, gtf_cache) matrix = loader.load(experiment, libraries) loader.save(matrix, args.output_format)
def main(cmdline=None): parser = make_parser() args = parser.parse_args(cmdline) configure_logging(args) if args.version: parser.exit(0, 'version: %s\n' % (get_git_version(),)) if not validate_args(args): parser.error("Please set required parameters") sep = get_seperator(args.sep) libraries = models.load_library_tables(args.libraries, sep) read1 = dict(find_fastqs(libraries, 'read_1')) if 'read_2' in libraries.columns: read2 = dict(find_fastqs(libraries, 'read_2')) else: read2 = {} dag = generate_star_rsem_analysis(args, libraries, read1, read2) print(dag) return 0
def test_get_seperator(self): self.assertEqual(get_seperator('tab'), '\t') self.assertEqual(get_seperator('TaB'), '\t') self.assertEqual(get_seperator(','), ',') self.assertRaises(ValueError, get_seperator, '|')