Bio-DB-HTS
view release on metacpan or search on metacpan
lib/Bio/DB/HTS.xs view on Meta::CPAN
str[strlen(str)-1] = '\0';
RETVAL = str;
OUTPUT:
RETVAL
SV*
bama_aux_get(b,tag)
Bio::DB::HTS::Alignment b
char* tag
PROTOTYPE: $$
PREINIT:
int type;
uint8_t *s;
CODE:
s = bam_aux_get(b,tag);
if (s==0)
XSRETURN_EMPTY;
type = *s++;
switch (type) {
case 'c':
RETVAL = newSViv((int32_t)*(int8_t*)s);
break;
case 'C':
RETVAL = newSViv((int32_t)*(uint8_t*)s);
break;
case 's':
RETVAL = newSViv((int32_t)*(int16_t*)s);
break;
case 'S':
RETVAL = newSViv((int32_t)*(uint16_t*)s);
break;
case 'i':
RETVAL = newSViv(*(int32_t*)s);
break;
case 'I':
RETVAL = newSViv((int32_t)*(uint32_t*)s);
break;
case 'f':
RETVAL = newSVnv(*(float*)s);
break;
case 'Z':
case 'H':
RETVAL = newSVpv((char*)s,0);
break;
case 'A':
RETVAL = newSVpv((char*)s,1);
break;
default:
XSRETURN_EMPTY;
}
OUTPUT:
RETVAL
void
bama_aux_keys(b)
Bio::DB::HTS::Alignment b
PROTOTYPE: $
PREINIT:
uint8_t *s;
uint8_t type;
PPCODE:
{
s = bam_get_aux(b); /* s is a khash macro */
while (s < b->data + b->l_data) {
XPUSHs(sv_2mortal(newSVpv((char *) s, 2)));
s += 2;
type = *s++;
if (type == 'A') { ++s; }
else if (type == 'C') { ++s; }
else if (type == 'c') { ++s; }
else if (type == 'S') { s += 2; }
else if (type == 's') { s += 2; }
else if (type == 'I') { s += 4; }
else if (type == 'i') { s += 4; }
else if (type == 'f') { s += 4; }
else if (type == 'Z' || type == 'H') { while (*s) ++(s); ++(s); }
}
}
SV*
bama_data(b,...)
Bio::DB::HTS::Alignment b
PROTOTYPE: $;$
PREINIT:
STRLEN len;
CODE:
if (items > 1) {
b->data = (uint8_t *) SvPV(ST(1),len);
b->l_data = len;
}
RETVAL=newSVpv((char *) b->data, b->l_data);
OUTPUT:
RETVAL
int
bama_data_len(b,...)
Bio::DB::HTS::Alignment b
PROTOTYPE: $;$
CODE:
if (items > 1)
b->l_data = SvIV(ST(1));
RETVAL=b->l_data;
OUTPUT:
RETVAL
int
bama_m_data(b,...)
Bio::DB::HTS::Alignment b
PROTOTYPE: $;$
CODE:
if (items > 1) {
b->m_data = SvIV(ST(1));
}
RETVAL=b->m_data;
OUTPUT:
RETVAL
SV*
bama_qname(b)
Bio::DB::HTS::Alignment b
PROTOTYPE: $
lib/Bio/DB/HTS.xs view on Meta::CPAN
CODE:
RETVAL = bamh->n_targets;
OUTPUT:
RETVAL
SV*
bam_target_name(bamh)
Bio::DB::HTS::Header bamh
PROTOTYPE: $
PREINIT:
int i;
AV * avref;
CODE:
avref = (AV*) sv_2mortal((SV*)newAV());
for (i=0;i<bamh->n_targets;i++)
av_push(avref, newSVpv(bamh->target_name[i],0));
RETVAL = (SV*) newRV((SV*)avref);
OUTPUT:
RETVAL
SV*
bam_target_len(bamh)
Bio::DB::HTS::Header bamh
PROTOTYPE: $
PREINIT:
int i;
AV * avref;
CODE:
avref = (AV*) sv_2mortal((SV*)newAV());
for (i=0;i<bamh->n_targets;i++)
av_push(avref, newSViv(bamh->target_len[i]));
RETVAL = (SV*) newRV((SV*)avref);
OUTPUT:
RETVAL
SV*
bam_text(bamh, ...)
Bio::DB::HTS::Header bamh
PREINIT:
char *newtext;
STRLEN n;
CODE:
/* in case text is not null terminated, we copy it */
RETVAL = newSVpv(bamh->text,bamh->l_text);
if (items > 1) {
newtext = (char*) SvPV(ST(1),n);
strcpy(bamh->text,newtext);
bamh->l_text = n;
}
OUTPUT:
RETVAL
void
bam_parse_region(bamh,region)
Bio::DB::HTS::Header bamh
char* region
PROTOTYPE: $
PREINIT:
int seqid,start,end;
PPCODE:
{
bam_parse_region(bamh,
region,
&seqid,
&start,
&end);
if (seqid < 0)
XSRETURN_EMPTY;
else {
EXTEND(sp,3);
PUSHs(sv_2mortal(newSViv(seqid)));
PUSHs(sv_2mortal(newSViv(start)));
PUSHs(sv_2mortal(newSViv(end)));
}
}
void
bam_view1(bamh,alignment)
Bio::DB::HTS::Header bamh
Bio::DB::HTS::Alignment alignment
PROTOTYPE: $$
CODE:
bam_view1(bamh,alignment);
void
bam_DESTROY(bamh)
Bio::DB::HTS::Header bamh
PROTOTYPE: $
CODE:
bam_hdr_destroy(bamh);
MODULE = Bio::DB::HTS PACKAGE = Bio::DB::HTS::Index PREFIX=bami_
int
bami_fetch(bai,hfp,ref,start,end,callback,callbackdata=&PL_sv_undef)
Bio::DB::HTS::Index bai
Bio::DB::HTSfile hfp
int ref
int start
int end
CV* callback
SV* callbackdata
PREINIT:
fetch_callback_data fcd;
CODE:
{
fcd.callback = (SV*) callback;
fcd.data = callbackdata;
RETVAL = hts_fetch(hfp,bai,ref,start,end,&fcd,hts_fetch_fun);
}
OUTPUT:
RETVAL
void
bami_pileup(bai,hfp,ref,start,end,callback,callbackdata=&PL_sv_undef)
Bio::DB::HTS::Index bai
( run in 0.543 second using v1.01-cache-2.11-cpan-71847e10f99 )