Пример #1
0
    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;
    }
Пример #2
0
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;
}
Пример #3
0
    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;
    }
Пример #4
0
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;
  }
}
Пример #5
0
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);

}
Пример #6
0
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);
  }


}
Пример #7
0
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);
    }
  }


}