Module: Minimap2::Native

Defined in:
ext/ruby_minimap2/ruby_minimap2.c

Defined Under Namespace

Classes: FastxReader

Class Method Summary collapse

Class Method Details

.execute(*args) ⇒ Object



1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
# File 'ext/ruby_minimap2/ruby_minimap2.c', line 1056

static VALUE native_execute(int argc, VALUE *argv, VALUE module)
{
    execute_job_t job;
    VALUE result;
    int i;
    (void)module;
    job.argc = argc + 1;
    job.allocated = 0;
    job.argv = ALLOC_N(char *, (size_t)job.argc + 1);
    job.argv[0] = strdup("minimap2");
    if (!job.argv[0]) {
        xfree(job.argv);
        rb_memerror();
    }
    job.allocated = 1;
    for (i = 0; i < argc; ++i) {
        VALUE string = rb_obj_as_string(argv[i]);
        job.argv[i + 1] = strdup(StringValueCStr(string));
        if (!job.argv[i + 1]) {
            native_execute_cleanup((VALUE)(uintptr_t)&job);
            rb_memerror();
        }
        ++job.allocated;
    }
    job.argv[job.argc] = NULL;
    result = rb_ensure(native_execute_synchronized, (VALUE)(uintptr_t)&job,
                       native_execute_cleanup, (VALUE)(uintptr_t)&job);
    return result;
}

.resource_countsObject



1087
1088
1089
1090
1091
1092
1093
1094
1095
# File 'ext/ruby_minimap2/ruby_minimap2.c', line 1087

static VALUE native_resource_counts(VALUE module)
{
    VALUE result = rb_hash_new();
    (void)module;
    rb_hash_aset(result, ID2SYM(rb_intern("indexes")), SIZET2NUM(live_indexes));
    rb_hash_aset(result, ID2SYM(rb_intern("fastx_readers")), SIZET2NUM(live_fastx_readers));
    rb_hash_aset(result, ID2SYM(rb_intern("pair_buffers")), SIZET2NUM(live_pair_buffers));
    return result;
}

.revcomp(sequence) ⇒ Object



989
990
991
992
993
994
995
996
997
998
999
# File 'ext/ruby_minimap2/ruby_minimap2.c', line 989

static VALUE native_revcomp(VALUE module, VALUE sequence)
{
    VALUE input = StringValue(sequence);
    long length = RSTRING_LEN(input), i;
    VALUE output = rb_str_new(NULL, length);
    const unsigned char *source = (const unsigned char *)RSTRING_PTR(input);
    char *target = RSTRING_PTR(output);
    (void)module;
    for (i = 0; i < length; ++i) target[length - i - 1] = (char)seq_comp_table[source[i]];
    return output;
}

.verboseObject



1001
1002
1003
1004
1005
# File 'ext/ruby_minimap2/ruby_minimap2.c', line 1001

static VALUE native_verbose(VALUE module)
{
    (void)module;
    return INT2NUM(mm_verbose);
}

.verbose=(value) ⇒ Object



1007
1008
1009
1010
1011
1012
# File 'ext/ruby_minimap2/ruby_minimap2.c', line 1007

static VALUE native_set_verbose(VALUE module, VALUE value)
{
    (void)module;
    mm_verbose = NUM2INT(value);
    return value;
}