DnaProfileNode * balanced_4_Sequence_fasta_stream(FILE * ifp) { Sequence * one; Sequence * two; Sequence * three; Sequence * four; DnaProfileNode * leafone; DnaProfileNode * leaftwo; DnaProfileNode * leafthree; DnaProfileNode * leaffour; DnaProfileNode * midonetwo; DnaProfileNode * midthreefour; DnaProfileNode * root; one = read_fasta_Sequence(ifp); fprintf(stderr,"Got 1 %s\n",one->name); two = read_fasta_Sequence(ifp); fprintf(stderr,"Got 2 %s\n",two->name); three = read_fasta_Sequence(ifp); fprintf(stderr,"Got 3 %s\n",three->name); four = read_fasta_Sequence(ifp); fprintf(stderr,"Got 4 %s\n",four->name); assert(four != NULL); leafone = new_leaf_DnaProfileNode(one); leaftwo = new_leaf_DnaProfileNode(two); leafthree = new_leaf_DnaProfileNode(three); leaffour = new_leaf_DnaProfileNode(four); midonetwo = DnaProfileNode_alloc(); midonetwo->type = DnaProfileNode_SET; midonetwo->left = leafone; midonetwo->right = leaftwo; midthreefour = DnaProfileNode_alloc(); midthreefour->type = DnaProfileNode_SET; midthreefour->left = leafthree; midthreefour->right = leaffour; root = DnaProfileNode_alloc(); root->type = DnaProfileNode_SET; root->left = midonetwo; root->right = midthreefour; return root; }
Sequence * get_Sequence_from_SequenceDB(SequenceDB * sdb,DataEntry * de) { FILE * ifp; Sequence * ret; /* actually, all our info is in dataentry */ ifp = openfile(de->filename,"r"); if( ifp == NULL ) { warn("Bad error - could not open database file %s for reading indexed sequence",de->filename); return NULL; } fseek(ifp,de->data[0],SEEK_SET); switch(de->data[1]) { case SEQ_DB_FASTA : ret = read_fasta_Sequence(ifp); break; default : warn("Unknown SequenceDB type [%d]",de->data[1]); ret = NULL; } fclose(ifp); return ret; }
DnaProfileNode * simple_cascade_Sequence_fasta_stream(FILE * ifp) { DnaProfileNode * head; DnaProfileNode * leaf; DnaProfileNode * first; DnaProfileNode * temp; Sequence * read; read = read_fasta_Sequence(ifp); uppercase_Sequence(read); if( read == NULL ) { fatal("Attempting to build a cascade with only no sequences! impossible!"); } first = new_leaf_DnaProfileNode(read); read = read_fasta_Sequence(ifp); uppercase_Sequence(read); if( read == NULL ) { fatal("Attempting to build a cascade with only one sequence! impossible!"); } leaf = new_leaf_DnaProfileNode(read); head = DnaProfileNode_alloc(); head->type = DnaProfileNode_SET; head->left = first; head->right = leaf; /* now loop over all remaining sequences */ while( (read = read_fasta_Sequence(ifp)) != NULL ) { uppercase_Sequence(read); leaf = new_leaf_DnaProfileNode(read); temp = DnaProfileNode_alloc(); temp->type = DnaProfileNode_SET; temp->left = head; temp->right = leaf; head = temp; } return head; }
Sequence * get_next_SequenceDB(SequenceDB * sdb) { /* remember the byte position now */ sdb->byte_position = ftell(sdb->current_file); switch (sdb->fs[sdb->current_source]->format) { case SEQ_DB_FASTA : return read_fasta_Sequence(sdb->current_file); default : warn("Unknown SequenceDB type [%d]",sdb->fs[sdb->current_source]->format); return NULL; } }
int main(int argc,char ** argv) { Sequence * input; ShotgunPara p; p.read_length = 500; p.insert_size = 200; p.number = 4000; p.forward_only = 1; input = read_fasta_Sequence(stdin); generate_shotgun_reads(&p,input,stdout); }
int main(int argc,char ** argv) { Sequence * in; Sequence * rev; while( in = read_fasta_Sequence(stdin) ) { in->type = SEQUENCE_DNA; rev = reverse_complement_Sequence(in); write_fasta_Sequence(rev,stdout); free_Sequence(in); free_Sequence(rev); } }
int main(int argc,char ** argv) { char buffer[MAXLINE]; Sequence * in; DnaNumberSequence * dns; LinkNumberArray * lna; LinkNumberArrayDebug lnad; int i; lnad.placement_stream = 10; lnad.add_stream = 10; lnad.extraction = 10; lnad.ofp = stderr; lna = new_LinkNumberArray(11); while( (in = read_fasta_Sequence(stdin)) != NULL ) { dns = new_DnaNumberSequence(in,11); if( is_new_stream_LinkNumberArray(lna,&lnad,dns) == TRUE ) { write_new_LinkStream(lna,&lnad,dns); } else { write_existing_LinkStream(lna,&lnad,dns); } } for(i=0;i<lna->array_len;i++) { if( lna->array[i] != NULL && (lna->array[i]->stream[0]->a == NULL || lna->array[i]->stream[0]->b == NULL) && lna->array[i]->stream[0]->have_seen == 0 ) { in = extract_dna_LinkStream(lna->array[i]->stream[0],&lnad,lna->nmer_size); sprintf(buffer,"Sequence_%d",i); in->name = stringalloc(buffer); write_fasta_Sequence(in,stdout); } } }