Module: Minigraph

Defined in:
lib/minigraph.rb,
lib/minigraph/ffi.rb,
lib/minigraph/version.rb,
lib/minigraph/ffi/mappy.rb,
lib/minigraph/ffi/constants.rb,
lib/minigraph/ffi/functions.rb

Overview

Minigraph github.com/lh3/minigraph Li, H., Feng, X. & Chu, C. The design and construction of reference pangenome graphs with minigraph. Genome Biol 21, 265 (2020). doi.org/10.1186

Defined Under Namespace

Modules: FFI Classes: Error

Constant Summary collapse

VERSION =
"0.0.20.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.ffi_libObject

Returns the value of attribute ffi_lib.



17
18
19
# File 'lib/minigraph.rb', line 17

def ffi_lib
  @ffi_lib
end

Class Method Details

.execute(arg0, arg1, ...) ⇒ Object

Execute minigraph comannd with given options.

Examples:

Get minigraph version

Minigraph.execute('--version')

Parameters:

  • arg (String)

    minigraph command option.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/minigraph.rb', line 37

def execute(*rb_argv)
  str_ptrs = []
  # First argument is the program name.
  str_ptrs << ::FFI::MemoryPointer.from_string("minigraph")
  rb_argv.each do |arg|
    arg.to_s.split(/\s+/).each do |s|
      str_ptrs << ::FFI::MemoryPointer.from_string(s)
    end
  end
  str_ptrs << nil

  # Load all the pointers into a native memory block
  argv = ::FFI::MemoryPointer.new(:pointer, str_ptrs.length)
  str_ptrs.each_with_index do |p, i|
    argv[i].put_pointer(0, p)
  end

  FFI.main(str_ptrs.length - 1, argv)
end

.verboseInteger

Get verbosity level.

Returns:

  • (Integer)

    verbosity level.



60
61
62
# File 'lib/minigraph.rb', line 60

def verbose
  FFI.mg_verbose_level(-1)
end

.verbose=(level) ⇒ Integer

Set verbosity level.

Parameters:

  • verbosity (Integer)

    level

Returns:

  • (Integer)

    verbosity level.



68
69
70
# File 'lib/minigraph.rb', line 68

def verbose=(level)
  FFI.mg_verbose_level(level)
end