Hang on to sequence data even if -parse_deflines recognized a non-local ID,
authorAaron M. Ucko <ucko@debian.org>
Thu, 15 Dec 2016 03:44:19 +0000 (22:44 -0500)
committerAaron M. Ucko <ucko@debian.org>
Fri, 26 Jul 2024 18:54:55 +0000 (14:54 -0400)
   on the condition that the environment variable BLAST_ALWAYS_KEEP_SEQUENCE
   (or configuration parameter [BLAST] always_keep_sequence) is set to a
   "true" value (English-only, case-insensitive true, t, yes, y, or 1).

Gbp-Pq: Name optionally_keep_sequence

c++/src/algo/blast/api/search_strategy.cpp

index a70b3b9c3bba72d4ad11e6ea657070aa049f75b6..5bc6cb6437201085a60cacefaa6d397f8f6c39a5 100644 (file)
@@ -560,6 +560,11 @@ void CExportStrategy::x_Process_Pssm(CRef<CPssmWithParameters> & pssm)
     m_QueueSearchRequest->SetService(new_service);
 }
 
+NCBI_PARAM_DECL(bool, BLAST, always_keep_sequence);
+NCBI_PARAM_DEF_EX(bool, BLAST, always_keep_sequence, false, eParam_Default,
+                  BLAST_ALWAYS_KEEP_SEQUENCE);
+typedef NCBI_PARAM_TYPE(BLAST, always_keep_sequence) TAlwaysKeepSequence;
+
 void CExportStrategy::x_Process_Query(CRef<IQueryFactory> & query)
 {
     if (query.Empty())
@@ -581,7 +586,7 @@ void CExportStrategy::x_Process_Query(CRef<IQueryFactory> & query)
     // Check if there are any range restrictions applied and if local IDs are
     // being used to determine how to specify the query sequence(s)
 
-    bool has_local_ids = false;
+    bool has_local_ids = TAlwaysKeepSequence::GetDefault();
 
     if (!seqloc_list.empty())
     {