File: randomize_bases.d

package info (click to toggle)
sambamba 1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,528 kB
  • sloc: sh: 220; python: 166; ruby: 147; makefile: 103
file content (22 lines) | stat: -rw-r--r-- 532 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import bio.bam.reader;
import bio.bam.writer;
import std.random;

void main(string[] args) {
  auto bam = new BamReader(args[1]);
  auto w = new BamWriter(args[2]);
  scope(exit) w.finish();

  auto gen = Random(unpredictableSeed);

  w.writeSamHeader(bam.header);
  w.writeReferenceSequenceInfo(bam.reference_sequences);

  foreach (r; bam.reads) {
    auto new_seq = new ubyte[r.sequence.length];
    foreach (ref x; new_seq)
      x = "ACGT"[uniform(0, 4, gen)];
    r.sequence = cast(string)new_seq;
    w.writeRecord(r);
  }
}