summaryrefslogtreecommitdiff
path: root/algo/blast/api/blast_tabular.h
diff options
context:
space:
mode:
Diffstat (limited to 'algo/blast/api/blast_tabular.h')
-rw-r--r--algo/blast/api/blast_tabular.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/algo/blast/api/blast_tabular.h b/algo/blast/api/blast_tabular.h
new file mode 100644
index 00000000..7befa54f
--- /dev/null
+++ b/algo/blast/api/blast_tabular.h
@@ -0,0 +1,101 @@
+/* $Id: blast_tabular.h,v 1.2 2004/06/14 20:43:30 dondosha Exp $
+* ===========================================================================
+*
+* PUBLIC DOMAIN NOTICE
+* National Center for Biotechnology Information
+*
+* This software/database is a "United States Government Work" under the
+* terms of the United States Copyright Act. It was written as part of
+* the author's offical duties as a United States Government employee and
+* thus cannot be copyrighted. This software/database is freely available
+* to the public for use. The National Library of Medicine and the U.S.
+* Government have not placed any restriction on its use or reproduction.
+*
+* Although all reasonable efforts have been taken to ensure the accuracy
+* and reliability of the software and data, the NLM and the U.S.
+* Government do not and cannot warrant the performance or results that
+* may be obtained by using this software or data. The NLM and the U.S.
+* Government disclaim all warranties, express or implied, including
+* warranties of performance, merchantability or fitness for any particular
+* purpose.
+*
+* Please cite the author in any work or product based on this material.
+*
+* ===========================================================================*/
+
+/*****************************************************************************
+
+File name: blast_tabular.h
+
+Author: Ilya Dondoshansky
+
+Contents: Functions needed for formatting of BLAST results
+
+******************************************************************************
+ * $Revision: 1.2 $
+ * */
+#ifndef __BLAST_TABULAR__
+#define __BLAST_TABULAR__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef NCBI_C_TOOLKIT
+#define NCBI_C_TOOLKIT
+#endif
+
+#include <ncbi.h>
+#include <asn.h>
+#include <algo/blast/core/blast_hits.h>
+#include <algo/blast/core/lookup_wrap.h>
+#include <algo/blast/core/blast_seqsrc.h>
+#include <algo/blast/core/blast_hspstream.h>
+#include <algo/blast/core/blast_gapalign.h>
+#include <objloc.h>
+
+/** Data structure containing all information necessary for production of the
+ * tabular output.
+ */
+typedef struct BlastTabularFormatData {
+ Uint1 program; /**< Type of BLAST program */
+ BlastHSPStream* hsp_stream; /**< Source of the BLAST results */
+ BlastSeqSrc* seq_src; /**< Source of the subject sequences */
+ BLAST_SequenceBlk* query; /**< Query sequence */
+ BlastQueryInfo* query_info; /**< Query information, including context
+ offsets and effective lengths. */
+ BlastScoringParameters* score_params;
+ BlastExtensionParameters* ext_params;
+ BlastHitSavingParameters* hit_params;
+ BlastEffectiveLengthsParameters* eff_len_params;
+ Uint1* gen_code_string;
+ BlastGapAlignStruct* gap_align;
+ SeqLoc* query_slp; /**< Source of query sequences identifiers */
+ FILE* outfp; /**< Output stream */
+ Boolean perform_traceback; /**< Must gapped extension with traceback be
+ performed before formatting? */
+} BlastTabularFormatData;
+
+/** Function initializing the BlastTabularFormatData data structure fields. */
+BlastTabularFormatData*
+Blast_TabularFormatDataInit(Uint1 program, BlastHSPStream* hsp_stream,
+ BlastSeqSrc* seq_src, BLAST_SequenceBlk* query, BlastQueryInfo* query_info,
+ const BlastScoringOptions* scoring_options, BlastScoreBlk* sbp,
+ const BlastEffectiveLengthsOptions* eff_len_options,
+ const BlastExtensionOptions* ext_options,
+ const BlastHitSavingOptions* hit_options,
+ const BlastDatabaseOptions* db_options, SeqLoc* query_slp, FILE* outfp);
+
+/** Free the tabular formatting data structure and all its internally
+ * allocated substructures.
+ */
+void BlastTabularFormatDataFree(BlastTabularFormatData* tf_data);
+
+/** Driver for the thread producing tabular output. */
+void* Blast_TabularFormatThread(void* data);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !__BLAST_TABULAR__ */
+