File: build_big.py

package info (click to toggle)
bowtie 1.2.2%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 16,704 kB
  • sloc: cpp: 35,614; perl: 5,903; ansic: 1,247; sh: 1,128; python: 483; makefile: 426
file content (29 lines) | stat: -rwxr-xr-x 818 bytes parent folder | download
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
#!/usr/bin/env python

import sys
import os
import random
import numpy

def gen_genome(fh, ref_id, tot_len, per_line=1000):
    fh.write('>%s\n' % ref_id)
    while tot_len > 0:
        ln = min(tot_len, per_line)
        assert ln > 0
        fh.write(''.join(numpy.random.choice(list('ACGT'), ln)) + '\n')
        tot_len -= ln

if __name__ == '__main__':
    tot_len = int(sys.argv[1])
    tmp_fasta = sys.argv[2]
    tmp_idx = sys.argv[3]
    bt2_build_exe = sys.argv[4]
    num_refs = 1
    if len(sys.argv) > 5:
        num_refs = int(sys.argv[5])
    with open(tmp_fasta, 'w') as fh:
        for i in xrange(num_refs):
            gen_genome(fh, 'ref%d' % i, tot_len // num_refs)
    ret = os.system('%s %s %s' % (bt2_build_exe, tmp_fasta, tmp_idx))
    print >> sys.stderr, "Exitlevel: %d" % ret
    exit(ret)