main() { char s1[100]; char *s; strcpy(s1, "Give Him Six!"); s = revstring(s1); strcpy(s1, "Jim"); printf("%s\n", revstring(s1)); printf("%s\n", s); }
void tracebackLocal(DYNAM *p_dynam) { /** finding traceback for local alignment */ int i,j,a=0,b=0; i=p_dynam->si; /*get starting postions*/ j=p_dynam->sj; /*get starting postions*/ do{ tracer(p_dynam,&i,&j,&b,&a); }while( fabs(maximumdouble(3,p_dynam->h[i][j],p_dynam->Ix[i][j],p_dynam->Iy[i][j])) >1e-12); p_dynam->ac1[a++]=0; p_dynam->ac2[b++]=0; revstring(p_dynam->ac1); revstring(p_dynam->ac2); }
void tracebackGlobal(DYNAM *p_dynam) { /** finding traceback for global alignment */ int i,j,a=0,b=0; i=p_dynam->si; /*get starting postions*/ j=p_dynam->sj; /*get starting postions*/ do{ tracer(p_dynam,&i,&j,&b,&a); }while(!(i==0 && j==0)); p_dynam->ac1[a++]=0; p_dynam->ac2[b++]=0; revstring(p_dynam->ac1); revstring(p_dynam->ac2); }
void tracebackOverlap(DYNAM *p_dynam) { /** finding traceback for global alignment */ int i,j,a=0,b=0; i=p_dynam->si; j=p_dynam->sj; /*dp the backtrack*/ do{ tracer(p_dynam,&i,&j,&b,&a); }while(!(i==0 || j==0)); /*break if one of the values are true*/ p_dynam->ac1[a++]=0; p_dynam->ac2[b++]=0; revstring(p_dynam->ac1); revstring(p_dynam->ac2); }
void reverse_comp(char *reference_sequence,size_t reference_length) { int index; if(reference_sequence == NULL) return; revstring(reference_sequence); for(index = 0;index < reference_length;index++,reference_sequence++) { switch(*reference_sequence) { case 'A': *reference_sequence = 'U'; break; case 'a': *reference_sequence = 'u'; break; case 'G': *reference_sequence = 'C'; break; case 'g': *reference_sequence = 'c'; break; case 'C': *reference_sequence = 'G'; break; case 'c': *reference_sequence = 'g'; break; case 'U':case 'T': *reference_sequence = 'A'; break; case 'u':case 't': *reference_sequence = 'a'; break; case 0: return; break; default: break; } } }
int main(int argc, char **argv) { ref_vector X, Xi; exome ex; check_syntax(argc, 4, "preprocess ref_file output_dir nucleotides"); timevars(); init_replace_table(argv[3]); encode_reference(&X, &ex, true, argv[1]); save_ref_vector(&X, argv[2], "X"); save_exome_file(&ex, true, argv[2]); tic("Calc. Backward Burrows-Wheeler Transform -> Sadakane direct SAIS"); direct_bwt(X.vector, X.n, argv[2], "backward", false); toc(); tic("Calc. Backward Suffix Array -> CSALIB DNA"); csa_new_from_bwt_gnu_bwt_wrapper(argv[2], "backward"); toc(); read_ref_vector(&Xi, argv[2], "X"); revstring(Xi.vector, Xi.n); save_ref_vector(&Xi, argv[2], "Xi"); tic("Calc. Forward Burrows-Wheeler Transform -> Sadakane direct SAIS"); direct_bwt(Xi.vector, Xi.n, argv[2], "forward", false); toc(); tic("Calc. Forward Suffix Array -> CSALIB DNA"); csa_new_from_bwt_gnu_bwt_wrapper(argv[2], "forward"); toc(); return 0; }