bio-samtools 0.6.0 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a3abfc67e205b1963c0df6f664bace9fa5f8a890
4
+ data.tar.gz: cfc0474c9c8270a014b34e0125b36df2fc85ab02
5
+ SHA512:
6
+ metadata.gz: bd34cefd2e15ad651382ade949f5e4a4e2e122958753fc18a3b245f629b3587f12e30c2af35a381bffafc89542a9e64679c80bd10122295f0ccfd6fa70570d96
7
+ data.tar.gz: 331edd40752b75dbdc3924cf16966f93c70b43617fbda5edaa4e98359f797e0c9234a016d93783ec90573c6aed470d850a332a945b7d94212963ca1332e743ab
data/.travis.yml CHANGED
@@ -9,3 +9,5 @@ before_script:
9
9
  - cd ../
10
10
  rvm:
11
11
  - 1.9.3
12
+ - 2.0.0
13
+ - 2.1.0
data/Gemfile CHANGED
@@ -4,15 +4,17 @@ source "http://rubygems.org"
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
  gem "ffi"
6
6
  gem "bio", ">= 1.4.2"
7
+ gem "systemu", ">=2.5.2"
7
8
 
8
9
  # Add dependencies to develop your gem here.
9
10
  # Include everything needed to run rake, tests, features, etc.
10
11
  group :development do
11
12
  gem "shoulda", ">= 0"
12
- gem "bundler", "~> 1.0.0"
13
+ gem "shoulda-context"
14
+ gem "shoulda-matchers"
15
+ gem "bundler", "> 1.0.21"
13
16
  gem "jeweler"
14
- gem "rcov", ">= 0"
15
- gem "bio", ">= 1.4.2"
16
- gem "ffi"
17
+ gem "rcov", ">=0", :platforms => :ruby_18
18
+ gem "simplecov", ">= 0", :platforms => :ruby_19
17
19
  gem 'rdoc'
18
20
  end
data/README.md ADDED
@@ -0,0 +1,112 @@
1
+ # bio-samtools
2
+
3
+ The original project samtools-ruby belongs to Ricardo H. Ramirez @ [https://github.com/homonecloco/samtools-ruby] (https://github.com/homonecloco/samtools-ruby)
4
+
5
+ ## Introduction
6
+
7
+ Documentation and code come from that project and we'll adapt it for a better integration in BioRuby.
8
+
9
+ Binder of samtools for ruby, on the top of FFI.
10
+
11
+ This project was born from the need to add support of BAM files to
12
+ the [gee_fu genome browser] (http://github.com/danmaclean/gee_fu).
13
+
14
+ ## Installation
15
+
16
+ Add this line to your application's Gemfile:
17
+
18
+ gem 'bio-samtools'
19
+
20
+ And then execute:
21
+
22
+ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install bio-samtools
27
+
28
+ ## Usage
29
+
30
+ ### Creating a new SAM object
31
+
32
+ A SAM object represents the alignments in the BAM file, and is very straightforward to create, you will need a sorted BAM file, to access the alignments and a reference sequence in FASTA format to use the reference sequence. The object can be created and opened as follows:
33
+
34
+ require 'bio-samtools'
35
+
36
+ bam = Bio::DB::Sam.new(:bam=>"my_sorted.bam", :fasta=>'ref.fasta')
37
+ bam.open
38
+
39
+ ### Getting Reference Sequence
40
+
41
+ Retrieving the reference can only be done if the reference has been loaded, which isn't done automatically in order to save memory. Reference need only be loaded once, and is accessed using reference name, start, end in 1-based co-ordinates. A standard Ruby String object is returned.
42
+
43
+ bam.load_reference
44
+ sequence_fragment = bam.fetch_reference("Chr1", 1, 500)
45
+
46
+ ### Getting Alignments
47
+
48
+ Alignments can be obtained one at a time by looping over a specified region using the fetch() function.
49
+
50
+ bam.load_reference
51
+ bam.fetch("1",3000,4000).each do |alignment|
52
+ #do something with the alignment...
53
+ end
54
+
55
+ See more detail on doc/tutorial.html or doc/tutorial.pdf for a walkthrough tutorial.
56
+
57
+ ## Dependencies
58
+ * FFI [http://github.com/ffi/ffi](http://github.com/ffi/ffi)
59
+ * BioRuby >= 1.4.1 [https://github.com/bioruby/bioruby](https://github.com/bioruby/bioruby)
60
+
61
+
62
+ ## FAQ
63
+ * I´m getting a **segmentation Fault**, what did I do wrong?
64
+
65
+ [Answer] There are two known segmentation faults at the moment
66
+
67
+ * When you try to load a text file as binary file
68
+ * When you try to lad a binary file as a text file
69
+
70
+ * I keep seeing this **Invalid gemspec in [some ruby gem path…]**, what is wrong?
71
+
72
+ [Answer] This appears to be a bug in RubyGems that doesn't affect the running of the tools. It will keep happening until someone updates RubyGems. If it really bugs you, downgrade RubyGems.
73
+
74
+ ## Contributing to bio-samtools
75
+
76
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
77
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
78
+ * Fork the project
79
+ * Start a feature/bugfix branch
80
+ * Commit and push until you are happy with your contribution
81
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
82
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
83
+
84
+ ### TODO
85
+ 1. Filter to the fetching algorithm (give a condition that has to be satisfied to add the alignment to the list)
86
+
87
+ ### To whom do I complain?
88
+ Try Ricardo dot Ramirez-Gonzalez at tgac dot ac dot uk
89
+ and [dan.maclean@tsl.ac.uk](dan.maclean@tsl.ac.uk)
90
+
91
+ ### Important Notes
92
+ * Libraries (libbam) are downloaded, compiled and installed inside the gem at install time on the host system
93
+
94
+ `openssl dgst libbam.so.1` MD5 is c45cfccfb41ffeb2730ee4b227d244c4
95
+
96
+ ### Important Notes for developers
97
+
98
+ Remember that you must compile and install the right libbam library for you host system. In order to do that there are three possible solutions:
99
+
100
+ * download, compile and install the library in bioruby-samtools-your_clone/lib/bio/db/sam/external/libbam.xxxxx by yourself
101
+ * install the gem and then grab the compiled library `cp 'locate libbam.1.dylib' bioruby-samtools-your_clone/lib/bio/db/sam/external` (library name is an example)
102
+ * in your bioruby-samtools-your_clone create the Rakefile typing `cd ext; ruby mkrf_conf.rb; rake -f Rakefile`
103
+
104
+ The latest I think is the easiest way, cause you are replicating the automatic process.
105
+
106
+ For testing just run `rake test`. Tests must be improved.
107
+
108
+ ## Copyright
109
+
110
+ Copyright (c) 2011 Raoul J.P. Bonnal. See LICENSE.txt for
111
+ further details.
112
+
data/Rakefile CHANGED
@@ -39,12 +39,15 @@ Rake::TestTask.new(:test) do |test|
39
39
  test.verbose = true
40
40
  end
41
41
 
42
+
43
+ if RUBY_VERSION.start_with?("1.8")
42
44
  require 'rcov/rcovtask'
43
45
  Rcov::RcovTask.new do |test|
44
46
  test.libs << 'test'
45
47
  test.pattern = 'test/**/test_*.rb'
46
48
  test.verbose = true
47
49
  end
50
+ end
48
51
 
49
52
  task :default => :test
50
53
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.6.2
data/bio-samtools.gemspec CHANGED
@@ -2,28 +2,30 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: bio-samtools 0.6.2 ruby lib
6
+ # stub: ext/mkrf_conf.rb
5
7
 
6
8
  Gem::Specification.new do |s|
7
9
  s.name = "bio-samtools"
8
- s.version = "0.6.0"
10
+ s.version = "0.6.2"
9
11
 
10
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
+ s.require_paths = ["lib"]
11
14
  s.authors = ["Ricardo Ramirez-Gonzalez", "Dan MacLean", "Raoul J.P. Bonnal"]
12
- s.date = "2012-12-03"
15
+ s.date = "2014-02-25"
13
16
  s.description = "Binder of samtools for ruby, on the top of FFI. \n\n This project was born from the need to add support of BAM files to \n the gee_fu genome browser (http://github.com/danmaclean/gee_fu)."
14
17
  s.email = "ilpuccio.febo@gmail.com"
15
18
  s.extensions = ["ext/mkrf_conf.rb"]
16
19
  s.extra_rdoc_files = [
17
20
  "LICENSE.txt",
18
- "README.rdoc"
21
+ "README.md"
19
22
  ]
20
23
  s.files = [
21
24
  ".document",
22
25
  ".travis.yml",
23
26
  "Gemfile",
24
- "Gemfile.lock",
25
27
  "LICENSE.txt",
26
- "README.rdoc",
28
+ "README.md",
27
29
  "Rakefile",
28
30
  "VERSION",
29
31
  "bio-samtools.gemspec",
@@ -154,6 +156,7 @@ Gem::Specification.new do |s|
154
156
  "doc/tutorial.html",
155
157
  "doc/tutorial.pdf",
156
158
  "ext/Makefile-bioruby.patch",
159
+ "ext/Makefile-suse.patch",
157
160
  "ext/mkrf_conf.rb",
158
161
  "lib/bio-samtools.rb",
159
162
  "lib/bio/.DS_Store",
@@ -167,6 +170,11 @@ Gem::Specification.new do |s|
167
170
  "lib/bio/db/sam/sam.rb",
168
171
  "lib/bio/db/vcf.rb",
169
172
  "test/helper.rb",
173
+ "test/samples/pipe_char/test.bam",
174
+ "test/samples/pipe_char/test.bam.bai",
175
+ "test/samples/pipe_char/test.tam",
176
+ "test/samples/pipe_char/test_chr.fasta",
177
+ "test/samples/pipe_char/test_chr.fasta.fai",
170
178
  "test/samples/small/ids2.txt",
171
179
  "test/samples/small/sorted.bam",
172
180
  "test/samples/small/sorted.bam.bai",
@@ -193,43 +201,48 @@ Gem::Specification.new do |s|
193
201
  ]
194
202
  s.homepage = "http://github.com/helios/bioruby-samtools"
195
203
  s.licenses = ["MIT"]
196
- s.require_paths = ["lib"]
197
- s.rubygems_version = "1.8.24"
204
+ s.rubygems_version = "2.2.1"
198
205
  s.summary = "Binder of samtools for ruby, on the top of FFI."
199
206
 
200
207
  if s.respond_to? :specification_version then
201
- s.specification_version = 3
208
+ s.specification_version = 4
202
209
 
203
210
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
204
211
  s.add_runtime_dependency(%q<ffi>, [">= 0"])
205
212
  s.add_runtime_dependency(%q<bio>, [">= 1.4.2"])
213
+ s.add_runtime_dependency(%q<systemu>, [">= 2.5.2"])
206
214
  s.add_development_dependency(%q<shoulda>, [">= 0"])
207
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
215
+ s.add_development_dependency(%q<shoulda-context>, [">= 0"])
216
+ s.add_development_dependency(%q<shoulda-matchers>, [">= 0"])
217
+ s.add_development_dependency(%q<bundler>, ["> 1.0.21"])
208
218
  s.add_development_dependency(%q<jeweler>, [">= 0"])
209
219
  s.add_development_dependency(%q<rcov>, [">= 0"])
210
- s.add_development_dependency(%q<bio>, [">= 1.4.2"])
211
- s.add_development_dependency(%q<ffi>, [">= 0"])
220
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
212
221
  s.add_development_dependency(%q<rdoc>, [">= 0"])
213
222
  else
214
223
  s.add_dependency(%q<ffi>, [">= 0"])
215
224
  s.add_dependency(%q<bio>, [">= 1.4.2"])
225
+ s.add_dependency(%q<systemu>, [">= 2.5.2"])
216
226
  s.add_dependency(%q<shoulda>, [">= 0"])
217
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
227
+ s.add_dependency(%q<shoulda-context>, [">= 0"])
228
+ s.add_dependency(%q<shoulda-matchers>, [">= 0"])
229
+ s.add_dependency(%q<bundler>, ["> 1.0.21"])
218
230
  s.add_dependency(%q<jeweler>, [">= 0"])
219
231
  s.add_dependency(%q<rcov>, [">= 0"])
220
- s.add_dependency(%q<bio>, [">= 1.4.2"])
221
- s.add_dependency(%q<ffi>, [">= 0"])
232
+ s.add_dependency(%q<simplecov>, [">= 0"])
222
233
  s.add_dependency(%q<rdoc>, [">= 0"])
223
234
  end
224
235
  else
225
236
  s.add_dependency(%q<ffi>, [">= 0"])
226
237
  s.add_dependency(%q<bio>, [">= 1.4.2"])
238
+ s.add_dependency(%q<systemu>, [">= 2.5.2"])
227
239
  s.add_dependency(%q<shoulda>, [">= 0"])
228
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
240
+ s.add_dependency(%q<shoulda-context>, [">= 0"])
241
+ s.add_dependency(%q<shoulda-matchers>, [">= 0"])
242
+ s.add_dependency(%q<bundler>, ["> 1.0.21"])
229
243
  s.add_dependency(%q<jeweler>, [">= 0"])
230
244
  s.add_dependency(%q<rcov>, [">= 0"])
231
- s.add_dependency(%q<bio>, [">= 1.4.2"])
232
- s.add_dependency(%q<ffi>, [">= 0"])
245
+ s.add_dependency(%q<simplecov>, [">= 0"])
233
246
  s.add_dependency(%q<rdoc>, [">= 0"])
234
247
  end
235
248
  end
@@ -1,27 +1,12 @@
1
- --- Makefile 2011-10-27 14:57:06.000000000 +0200
2
- +++ ../Makefile-bioruby 2011-10-27 14:57:41.000000000 +0200
3
- @@ -1,10 +1,11 @@
1
+ --- Makefile.bk 2014-02-01 19:56:14.000000000 +0000
2
+ +++ Makefile 2014-02-01 20:47:30.000000000 +0000
3
+ @@ -1,7 +1,7 @@
4
4
  CC= gcc
5
- -CFLAGS= -g -Wall -O2 #-m64 #-arch ppc
6
- +CFLAGS= -g -Wall -O2 -fPIC #-m64 #-fPIC #-arch ppc
7
- DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1
5
+ -CFLAGS= -g -Wall -O2
6
+ +CFLAGS= -g -Wall -O2 -fPIC
7
+ #LDFLAGS= -Wl,-rpath,\$$ORIGIN/../lib
8
+ -DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1
9
+ +DFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=0
8
10
  KNETFILE_O= knetfile.o
9
11
  LOBJS= bgzf.o kstring.o bam_aux.o bam.o bam_import.o sam.o bam_index.o \
10
12
  bam_pileup.o bam_lpileup.o bam_md.o razf.o faidx.o bedidx.o \
11
- - $(KNETFILE_O) bam_sort.o sam_header.o bam_reheader.o kprobaln.o bam_cat.o
12
- + $(KNETFILE_O) bam_sort.o sam_header.o bam_reheader.o kprobaln.o bam_cat.o bam_plcmd.o \
13
- + bam2bcf.o bam2bcf_indel.o sample.o bcftools/bcf.o bcftools/bcfutils.o errmod.o bcftools/fet.o
14
- AOBJS= bam_tview.o bam_plcmd.o sam_view.o \
15
- bam_rmdup.o bam_rmdupse.o bam_mate.o bam_stat.o bam_color.o \
16
- bamtk.o kaln.o bam2bcf.o bam2bcf_indel.o errmod.o sample.o \
17
- @@ -81,8 +82,8 @@
18
- dylib:
19
- @$(MAKE) cleanlocal; \
20
- case `uname` in \
21
- - Linux) $(MAKE) CFLAGS="$(CFLAGS) -fPIC" libbam.so.1-local;; \
22
- - Darwin) $(MAKE) CFLAGS="$(CFLAGS) -fPIC" libbam.1.dylib-local;; \
23
- + Linux) $(MAKE) CFLAGS="$(CFLAGS) -fPIC" libbam.so.1-local;; \
24
- + Darwin) $(MAKE) CFLAGS="$(CFLAGS) -fPIC" libbam.1.dylib-local ;; \
25
- *) echo 'Unknown OS';; \
26
- esac
27
-
@@ -0,0 +1,11 @@
1
+ --- Makefile 2013-12-10 14:06:29.868639418 +0000
2
+ +++ Makefile.opensuse 2013-12-10 14:06:56.548222174 +0000
3
+ @@ -13,7 +13,7 @@
4
+ INCLUDES= -I.
5
+ SUBDIRS= . bcftools misc
6
+ LIBPATH=
7
+ -LIBCURSES= -lcurses # -lXCurses
8
+ +LIBCURSES= -lncurses # -lXCurses
9
+
10
+ .SUFFIXES:.c .o
11
+
data/ext/mkrf_conf.rb CHANGED
@@ -37,6 +37,8 @@ task :compile do
37
37
  sh "tar xvfj #{SamToolsFile}"
38
38
  cd("samtools-#{Version}") do
39
39
  sh "patch < ../Makefile-bioruby.patch"
40
+ # This patch replace CURSES lib with NCURSES which it is the only one available in OpenSUSE
41
+ sh "patch < ../Makefile-suse.patch"
40
42
  case Config::CONFIG['host_os']
41
43
  when /linux/
42
44
  #sh "CFLAGS='-g -Wall -O2 -fPIC' make -e"
data/lib/bio/db/sam.rb CHANGED
@@ -4,6 +4,7 @@ require 'bio/db/sam/faidx'
4
4
  require 'bio/db/sam/sam'
5
5
  #require 'bio/db/pileup'
6
6
  #require 'bio/db/vcf'
7
+ require 'systemu'
7
8
 
8
9
  module LibC
9
10
  extend FFI::Library
@@ -16,6 +17,9 @@ module Bio
16
17
  class DB
17
18
  class Sam
18
19
  attr_reader :sam_file
20
+ attr_accessor :minumum_ratio_for_iup_consensus
21
+ attr_reader :cached_regions
22
+ @minumum_ratio_for_iup_consensus = 0.20
19
23
 
20
24
  # To make a new sam object. Initialize expects a hash optsa with the following elemets:
21
25
  # fasta:: The fasta file with the reference. (nil)
@@ -158,17 +162,10 @@ module Bio
158
162
  #This is a simple average coverage just calculated with the first and last
159
163
  #possition of the alignment, ignoring the gaps.
160
164
  def chromosome_coverage(chromosome, qstart, len)
161
- # reference = fetch_reference(chromosome, qstart,len)
162
- # len = reference.length if len > reference.length
163
- #p qend.to_s + "-" + qstart.to_s + "framesize " + (qend - qstart).to_s
165
+
164
166
  coverages = Array.new(len, 0)
165
167
 
166
168
  chr_cov_proc = Proc.new do |alignment|
167
- #last = qstart + len
168
- #first = qstart
169
- #last = alignment.calend if last > alignment.calend
170
- #first = alignment.pos if first < alignment.pos
171
- # p first
172
169
  last = alignment.calend - qstart
173
170
  first = alignment.pos - qstart
174
171
  if last < first
@@ -320,14 +317,21 @@ module Bio
320
317
  sam_opts << k #strptrs << FFI::MemoryPointer.from_string(k)
321
318
  sam_opts << v.to_s unless ["-R", "-B", "-E", "-6", "-A"].include?(k) #these are just flags so don't pass a value... strptrs << FFI::MemoryPointer.from_string(v.to_s)
322
319
  end
320
+ sam_exe = File.join(File.expand_path(File.dirname(__FILE__)),'sam','external','samtools')
323
321
  sam_opts = sam_opts + ['-f', @fasta_path, @sam]
324
- sam_command = "#{File.join(File.expand_path(File.dirname(__FILE__)),'sam','external','samtools')} mpileup #{sam_opts.join(' ')} 2> /dev/null"
325
-
326
- sam_pipe = IO.popen(sam_command)
327
- while line = sam_pipe.gets
328
- yield Bio::DB::Pileup.new(line)
322
+
323
+ sam_opts_string = SystemUniversal.quote(*sam_opts)
324
+ cmdline = "#{sam_exe} mpileup #{sam_opts_string}"
325
+ status, stdout, stderr = systemu cmdline
326
+
327
+ if status.exitstatus == 0
328
+ stdout.each_line do |line|
329
+ yield Bio::DB::Pileup.new(line)
330
+ end
331
+ else
332
+ raise SAMException.new(), "Error running mpileup. Command line was '#{cmdline}'\nsamtools STDERR was:\n#{stderr}"
329
333
  end
330
- sam_pipe.close
334
+
331
335
  #strptrs << FFI::MemoryPointer.from_string('-f')
332
336
  #strptrs << FFI::MemoryPointer.from_string(@fasta_path)
333
337
  #strptrs << FFI::MemoryPointer.from_string(@sam)
@@ -1 +1 @@
1
- 0.1.18
1
+ 0.1.19
@@ -16,9 +16,9 @@ module Bio
16
16
  'dll'
17
17
  else
18
18
  case RUBY_DESCRIPTION
19
- when /darwin.*java/
19
+ when /jruby.*darwin/
20
20
  '1.dylib'
21
- when /linux.*java/
21
+ when /jruby.*linux/
22
22
  'so.1'
23
23
  end
24
24
  end
@@ -78,7 +78,7 @@ module Bio
78
78
  attach_function :samwrite, [ :pointer, :pointer ], :int
79
79
  attach_function :sampileup, [ :pointer, :int, :bam_pileup_f, :pointer ], :int
80
80
  attach_function :samfaipath, [ :string ], :string
81
- attach_function :bam_mpileup, [ :int, :pointer ], :int
81
+ # attach_function :bam_mpileup, [ :int, :pointer ], :int
82
82
  attach_function :bam_idxstats, [:int, :pointer ], :int
83
83
  end
84
84
  end
Binary file
Binary file
@@ -0,0 +1,10 @@
1
+ @SQ SN:gi|123|chr_1 LN:69930
2
+ test_1 0 gi|123|chr_1 135 0 70M * 0 0 TAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC * XT:A:R NM:i:0 X0:i:45 XM:i:0 XO:i:0 XG:i:0 MD:Z:70
3
+ test_2 0 gi|123|chr_1 265 0 70M * 0 0 CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA * XT:A:R NM:i:0 X0:i:45 XM:i:0 XO:i:0 XG:i:0 MD:Z:70
4
+ reverse_2 16 gi|123|chr_1 43 0 70M * 0 0 CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA * XT:A:R NM:i:0 X0:i:45 XM:i:0 XO:i:0 XG:i:0 MD:Z:70
5
+ test_1_SNP 0 gi|123|chr_1 57 0 70M * 0 0 TAACCCTAACCCTAACCCTAACCCTAACGCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC * XT:A:R NM:i:1 X0:i:45 XM:i:1 XO:i:0 XG:i:0 MD:Z:28C41
6
+ test_1_DEL 0 gi|123|chr_1 159 0 27M1D42M * 0 0 TAACCCTAACCCTAACCCTAACCCTAACCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC * XT:A:R NM:i:1 X0:i:45 XM:i:0 XO:i:1 XG:i:1 MD:Z:27^C42
7
+ test_1_INS 0 gi|123|chr_1 207 0 29M1I41M * 0 0 TAACCCTAACCCTAACCCTAACCCTAACCNCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC * XT:A:R NM:i:1 X0:i:45 XM:i:0 XO:i:1 XG:i:1 MD:Z:70
8
+ reverse_2_SNP 16 gi|123|chr_1 25 0 70M * 0 0 CCTAACCCTAACCCTAACCCTAACCCTAACCCTACCCCTAACCCTAACCCTAACCCTAACCCTAACCCTA * XT:A:R NM:i:1 X0:i:45 XM:i:1 XO:i:0 XG:i:0 MD:Z:34A35
9
+ reverse_2_DEL 16 gi|123|chr_1 247 0 33M1D36M * 0 0 CCTAACCCTAACCCTAACCCTAACCCTAACCCTACCCTAACCCTAACCCTAACCCTAACCCTAACCCTA * XT:A:R NM:i:1 X0:i:45 XM:i:0 XO:i:1 XG:i:1 MD:Z:33^A36
10
+ reverse_2_ins 16 gi|123|chr_1 169 0 35M1I35M * 0 0 CCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAACCCTAACCCTAACCCTA * XT:A:R NM:i:1 X0:i:45 XM:i:0 XO:i:1 XG:i:1 MD:Z:70