File: sml.c

package info (click to toggle)
libmems 1.6.0%2B4725-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,148 kB
  • sloc: cpp: 21,579; ansic: 4,313; xml: 115; makefile: 107; sh: 26
file content (55 lines) | stat: -rw-r--r-- 1,375 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "libMems/dmSML/sml.h"
#include "libMems/SeedMasks.h"


SMLHeader_t InitSML( aFILE* file, uint64 file_size, uint64 seed ){
	SMLHeader_t header;
	int retcode;
	
	header.version = 5;
	header.alphabet_bits = 2;
	header.seed = seed;
	header.seed_length = getSeedLength( seed );
	header.seed_weight = getSeedWeight( seed );
	header.length = file_size;
	header.unique_mers = -1;
	header.word_size = 32;
	header.little_endian = 1;
	header.id = 0;
	header.circular = 0;
	memcpy(header.translation_table, CreateBasicDNATable(), UINT8_MAX);
	header.description[ 0 ] = 0;
	
	retcode = aWrite( (void*)&header, sizeof( header ), 1, file, 0 );
	if( retcode == 0 )
		printf( "Error writing to SML\n" );
	aWaitComplete( file, retcode );
	return header;
}

/*
// use this version of RestructureReadSMLBins when no restructuring is necessary
void RestructureReadSMLBins( void ) {
    buffer_t *b, *tmpnext;
    // go through and see if any have completed.
    b = Restructure.head;
    do {
        if( !b ) {
            break;
        }

        tmpnext = b->next;
		
		// b has been restructured, add it to the ToProcess list
        PushTail( &ToProcess, RemoveItem( &Restructure, b ) );
        // bookkeeping
        RecsRead += b->numrecs;
		
        b = tmpnext;
    } while( b != Restructure.head && Restructure.nitems );
}
*/