import argparse import logging from readsequencer.read_sequencer import ReadSequencer LOG = logging.getLogger(__name__) parser = argparse.ArgumentParser( prog="read_sequencer", description="Simulates sequencing of DNA sequences specified by an FASTA file.", ) parser.add_argument("output", help="path to FASTA file") parser.add_argument("-i", "--input", default=None, help="path to FASTA file") parser.add_argument( "-r", "--read-length", default=100, help="read length for sequencing", type=int ) parser.add_argument( "-n", "--n_random", default=100, type=int, help="n random sequences. Just used if input fasta file is not specified.", ) parser.add_argument( "-s", "--chunk-size", default=10000, type=int, help="chunk_size for batch processing", ) args = parser.parse_args() def main(): LOG.info("Read sequencer started.") if args.input is not None: read_sequencer = ReadSequencer( fasta=args.input, output=args.output, read_length=args.read_length, chunk_size=args.chunk_size, ) read_sequencer.get_n_sequences() else: read_sequencer = ReadSequencer( fasta=args.input, output=args.output, read_length=args.read_length, chunk_size=args.chunk_size, ) read_sequencer.define_random_sequences(n_seq=args.n_random) read_sequencer.run_sequencing() LOG.info("Read sequencer finished.") if __name__ == "__main__": logging.basicConfig( format='[%(asctime)s: %(levelname)s] %(message)s (module "%(module)s")', level=logging.INFO, ) LOG = logging.getLogger(__name__) main()