1 #ifndef _h_libs_blast_reference_
2 #define _h_libs_blast_reference_
3 
4 /*===========================================================================
5  *
6  *                            PUBLIC DOMAIN NOTICE
7  *               National Center for Biotechnology Information
8  *
9  *  This software/database is a "United States Government Work" under the
10  *  terms of the United States Copyright Act.  It was written as part of
11  *  the author's official duties as a United States Government employee and
12  *  thus cannot be copyrighted.  This software/database is freely available
13  *  to the public for use. The National Library of Medicine and the U.S.
14  *  Government have not placed any restriction on its use or reproduction.
15  *
16  *  Although all reasonable efforts have been taken to ensure the accuracy
17  *  and reliability of the software and data, the NLM and the U.S.
18  *  Government do not and cannot warrant the performance or results that
19  *  may be obtained by using this software or data. The NLM and the U.S.
20  *  Government disclaim all warranties, express or implied, including
21  *  warranties of performance, merchantability or fitness for any particular
22  *  purpose.
23  *
24  *  Please cite the author in any work or product based on this material.
25  *
26  * ===========================================================================
27  *
28  */
29 
30 #ifndef _h_ncbi_vdb_blast_
31 #include <ncbi/vdb-blast.h> /* VdbBlastStatus */
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 
39 struct Core2na;
40 struct Core4na;
41 struct Data2na;
42 struct References;
43 struct RunSet;
44 
45 
46 uint32_t _Core2naDataRef(struct Core2na *self,
47     struct Data2na *data, VdbBlastStatus *status,
48     Packed2naRead *buffer, uint32_t buffer_length);
49 
50 uint64_t _Core2naReadRef(struct Core2na *self, VdbBlastStatus *status,
51     uint64_t *read_id, uint8_t *buffer, size_t buffer_size);
52 
53 
54 const uint8_t* _Core4naDataRef(struct Core4na *self, const struct RunSet *runs,
55     uint32_t *status, uint64_t read_id, size_t *length);
56 
57 size_t _Core4naReadRef(struct Core4na *self, const struct RunSet *runs,
58     uint32_t *status, uint64_t read_id, size_t starting_base,
59     uint8_t *buffer, size_t buffer_length);
60 
61 
62 const struct References* _RunSetMakeReferences
63     (struct RunSet *self, VdbBlastStatus *status);
64 
65 void _ReferencesWhack(const struct References *self);
66 
67 uint64_t _ReferencesGetNumSequences
68     (const struct References *self, VdbBlastStatus *status);
69 
70 VdbBlastStatus _ReferencesGetReadId(const struct References *self,
71     const char *name_buffer, size_t bsize, uint64_t *read_id);
72 
73 size_t CC _ReferencesGetReadName(const struct References *self,
74     uint64_t read_id, char *name_buffer, size_t bsize);
75 
76 uint64_t _ReferencesGetTotalLength
77     (const struct References *self, VdbBlastStatus *status);
78 
79 uint64_t _ReferencesGetReadLength
80     (const struct References *self, uint64_t read_id, VdbBlastStatus *status);
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif /* _h_libs_blast_reference_ */
87