def main(args): in_gctoo = parse_gctx.parse(args.filename, convert_neg_666=False) if args.output_filepath == None: out_name = str.split(in_gctoo.src, "/")[-1].split(".")[0] else: out_name = args.output_filepath write_gct.write(in_gctoo, out_name)
def main(): args = build_parser().parse_args(sys.argv[1:]) setup_logger.setup(verbose=args.verbose) in_gctoo = parse_gctx.parse(args.filename, convert_neg_666=False) if args.output_filepath == None: out_name = str.split(in_gctoo.src, "/")[-1].split(".")[0] else: out_name = args.output_filepath write_gct.write(in_gctoo, out_name)
def main(): # get args args = build_parser().parse_args(sys.argv[1:]) setup_logger.setup(verbose=args.verbose) # Get files directly if args.input_filepaths is not None: files = args.input_filepaths # Or find them else: files = get_file_list(args.file_wildcard) # No files found if len(files) == 0: msg = "No files were found. args.file_wildcard: {}".format( args.file_wildcard) logger.error(msg) raise Exception(msg) # Only 1 file found if len(files) == 1: logger.warning( "Only 1 file found. No concatenation needs to be done, exiting") return # More than 1 file found else: # Parse each file and append to a list gctoos = [] for f in files: gctoos.append(parse.parse(f)) # Create concatenated gctoo object if args.concat_direction == "horiz": out_gctoo = hstack(gctoos, args.fields_to_remove, args.reset_ids) elif args.concat_direction == "vert": out_gctoo = vstack(gctoos, args.fields_to_remove, args.reset_ids) # Write out_gctoo to file logger.info("Writing to output file args.out_name: {}".format( args.out_name)) if args.out_type == "gctx": write_gctx.write(out_gctoo, args.out_name) elif args.out_type == "gct": write_gct.write(out_gctoo, args.out_name, filler_null=args.filler_null, metadata_null=args.metadata_null, data_null=args.data_null)
def test_p100_functional(self): p100_in_path = os.path.join(FUNCTIONAL_TESTS_PATH, "test_p100.gct") p100_out_path = os.path.join(FUNCTIONAL_TESTS_PATH, "test_p100_writing.gct") # Read in original gct file p100_in_gct = pg.parse(p100_in_path) # Read in new gct file wg.write(p100_in_gct, p100_out_path) p100_out_gct = pg.parse(p100_out_path) self.assertTrue(p100_in_gct.data_df.equals(p100_out_gct.data_df)) self.assertTrue(p100_in_gct.row_metadata_df.equals(p100_out_gct.row_metadata_df)) self.assertTrue(p100_in_gct.col_metadata_df.equals(p100_out_gct.col_metadata_df)) # Clean up os.remove(p100_out_path)
def test_main(self): out_name = os.path.join(FUNCTIONAL_TESTS_PATH, "test_main_out.gct") gctoo = GCToo.GCToo(data_df=self.data_df, row_metadata_df=self.row_metadata_df, col_metadata_df=self.col_metadata_df) wg.write(gctoo, out_name, data_null="NaN", metadata_null="-666", filler_null="-666") # Read in the gct and verify that it's the same as gctoo new_gct = pg.parse(out_name) pd.util.testing.assert_frame_equal(new_gct.data_df, gctoo.data_df) pd.util.testing.assert_frame_equal(new_gct.row_metadata_df, gctoo.row_metadata_df) pd.util.testing.assert_frame_equal(new_gct.col_metadata_df, gctoo.col_metadata_df) # Also check that missing values were written to the file as expected in_df = pd.read_csv(out_name, sep="\t", skiprows=2, keep_default_na=False) self.assertEqual(in_df.iloc[0, 1], "-666") self.assertEqual(in_df.iloc[5, 6], "NaN") # Cleanup os.remove(out_name)
def main(args): # Read the input gct in_gct = pg.parse(args.in_gct_path) # Read in each of the command line arguments rid = _read_arg(args.rid) cid = _read_arg(args.cid) exclude_rid = _read_arg(args.exclude_rid) exclude_cid = _read_arg(args.exclude_cid) # Slice the gct out_gct = slice_gctoo(in_gct, rid=rid, cid=cid, exclude_rid=exclude_rid, exclude_cid=exclude_cid) assert out_gct.data_df.size > 0, "Slicing yielded an empty gct!" # Write the output gct wg.write(out_gct, args.out_name, data_null="NaN", metadata_null="NA", filler_null="NA")