Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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()