Bio-SamTools
view release on metacpan or search on metacpan
lib/Bio/DB/Sam.xs view on Meta::CPAN
str[strlen(str)-1] = '\0';
RETVAL = str;
OUTPUT:
RETVAL
SV*
bama_aux_get(b,tag)
Bio::DB::Bam::Alignment b
char* tag
PROTOTYPE: $$
PREINIT:
int type;
uint8_t *s;
CODE:
s = bam_aux_get_core(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::Bam::Alignment b
PROTOTYPE: $
PREINIT:
uint8_t *s;
uint8_t type;
PPCODE:
{
s = bam1_aux(b); /* s is a khash macro */
while (s < b->data + b->data_len) {
XPUSHs(sv_2mortal(newSVpv(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::Bam::Alignment b
PROTOTYPE: $;$
PREINIT:
STRLEN len;
CODE:
if (items > 1) {
b->data = SvPV(ST(1),len);
b->data_len = len;
}
RETVAL=newSVpv(b->data,b->data_len);
OUTPUT:
RETVAL
int
bama_data_len(b,...)
Bio::DB::Bam::Alignment b
PROTOTYPE: $;$
CODE:
if (items > 1)
b->data_len = SvIV(ST(1));
RETVAL=b->data_len;
OUTPUT:
RETVAL
int
bama_m_data(b,...)
Bio::DB::Bam::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::Bam::Alignment b
PROTOTYPE: $
lib/Bio/DB/Sam.xs view on Meta::CPAN
PROTOTYPE: $
CODE:
RETVAL = bamh->n_targets;
OUTPUT:
RETVAL
SV*
bam_target_name(bamh)
Bio::DB::Bam::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::Bam::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::Bam::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::Bam::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::Bam::Header bamh
Bio::DB::Bam::Alignment alignment
PROTOTYPE: $$
CODE:
bam_view1(bamh,alignment);
void
bam_DESTROY(bamh)
Bio::DB::Bam::Header bamh
PROTOTYPE: $
CODE:
bam_header_destroy(bamh);
MODULE = Bio::DB::Sam PACKAGE = Bio::DB::Bam::Index PREFIX=bami_
int
bami_fetch(bai,bfp,ref,start,end,callback,callbackdata=&PL_sv_undef)
Bio::DB::Bam::Index bai
Bio::DB::Bam bfp
int ref
int start
int end
CV* callback
SV* callbackdata
PREINIT:
fetch_callback_data fcd;
CODE:
{
fcd.callback = (SV*) callback;
fcd.data = callbackdata;
RETVAL = bam_fetch(bfp,bai,ref,start,end,&fcd,bam_fetch_fun);
}
OUTPUT:
RETVAL
void
bami_lpileup(bai,bfp,ref,start,end,callback,callbackdata=&PL_sv_undef)
Bio::DB::Bam::Index bai
Bio::DB::Bam bfp
int ref
int start
int end
( run in 1.769 second using v1.01-cache-2.11-cpan-71847e10f99 )