def main():
parser = argparse.ArgumentParser(description="Reconstruct 3D coordinates from normalized intrachromosomal Hi-C BED files.")
parser.add_argument("path", help="path to intrachromosomal Hi-C BED file")
parser.add_argument("--classical", action="store_true", help="use classical MDS (default: metric MDS)")
parser.add_argument("-l", help="path to low-resolution intrachromosomal Hi-C BED file")
parser.add_argument("-p", type=float, default=0.1, help="domain size parameter: larger value means fewer clusters created (for partitioned MDS only)")
parser.add_argument("-m", type=float, default=0.05, help="minimum domain size parameter: prevents clusters from being too small (for partitioned MDS only)")
parser.add_argument("-o", help="path to output file")
parser.add_argument("-r", default=32000000, help="maximum RAM to use (in kb)")
parser.add_argument("-n", default=3, help="number of threads")
parser.add_argument("-a", type=float, default=4, help="alpha factor for converting contact frequencies to physical distances")
args = parser.parse_args()
if args.l is None: #not partitioned
cluster = fullMDS(args.path, args.classical, args.a)
else: #partitioned
params = (args.p, args.m, args.r, args.n, args.a)
names = ("Domain size parameter", "Minimum domain size", "Maximum memory", "Number of threads", "Alpha")
intervals = ((0,1), (0,1), (0, None), (0, None), (1, None))
if not tools.args_are_valid(params, names, intervals):
sys.exit(0)
cluster = partitionedMDS(args.path, args.l, params)
if args.o is not None:
cluster.write(args.o)
评论列表
文章目录