utils.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: utils.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:45:38  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef OBJTOOLS_FLAT___UTILS_HPP
  10. #define OBJTOOLS_FLAT___UTILS_HPP
  11. /*  $Id: utils.hpp,v 1000.1 2004/06/01 19:45:38 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE
  15. *               National Center for Biotechnology Information
  16. *
  17. *  This software/database is a "United States Government Work" under the
  18. *  terms of the United States Copyright Act.  It was written as part of
  19. *  the author's official duties as a United States Government employee and
  20. *  thus cannot be copyrighted.  This software/database is freely available
  21. *  to the public for use. The National Library of Medicine and the U.S.
  22. *  Government have not placed any restriction on its use or reproduction.
  23. *
  24. *  Although all reasonable efforts have been taken to ensure the accuracy
  25. *  and reliability of the software and data, the NLM and the U.S.
  26. *  Government do not and cannot warrant the performance or results that
  27. *  may be obtained by using this software or data. The NLM and the U.S.
  28. *  Government disclaim all warranties, express or implied, including
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.
  31. *
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author:  Mati Shomrat
  37. *
  38. * File Description:
  39. *   Flat-file generator shared utility functions
  40. */
  41. #include <corelib/ncbistd.hpp>
  42. BEGIN_NCBI_SCOPE
  43. BEGIN_SCOPE(objects)
  44. class CDate;
  45. class CBioseq;
  46. class CScope;
  47. class CSeq_feat;
  48. class CBioseq_Handle;
  49. enum ETildeStyle {
  50.     eTilde_tilde,  // no-op
  51.     eTilde_space,  // '~' -> ' ', except before /[ (]?d/
  52.     eTilde_newline // '~' -> 'n' but "~~" -> "~"
  53. };
  54. string ExpandTildes(const string& s, ETildeStyle style);
  55. void JoinNoRedund(string& to, const string& prefix, const string& str);
  56. string JoinNoRedund(const list<string>& l, const string& delim);
  57. // Strips all spaces in string in following manner. If the function
  58. // meet several spaces (spaces and tabs) in succession it replaces them
  59. // with one space. Strips all spaces after '(' and before ')'
  60. void StripSpaces(string& str);
  61. bool RemovePeriodFromEnd(string& str, bool keep_ellipsis = true);
  62. bool ValidateAccession(const string& accn);
  63. void DateToString(const CDate& date, string& str, bool is_cit_sub = false);
  64. struct SDeltaSeqSummary
  65. {
  66.     string text;
  67.     size_t num_segs;        // total number of segments
  68.     size_t num_gaps;        // total number of segments representing gaps
  69.     size_t residues;        // number of real residues in the sequence (not gaps)
  70.     size_t num_faked_gaps;  // number of gaps where real length is not known,
  71.                             // but where a length was guessed by spreading the
  72.                             // total gap length out over all gaps evenly.
  73.     SDeltaSeqSummary(void) :
  74.         text(kEmptyStr),
  75.         num_segs(0), num_gaps(0), residues(0), num_faked_gaps(0)
  76.     {}
  77. };
  78. void GetDeltaSeqSummary(const CBioseq_Handle& seq, SDeltaSeqSummary& summary);
  79. const string& GetTechString(int tech);
  80. struct SModelEvidance
  81. {
  82.     string name;
  83.     string method;
  84.     bool mrnaEv;
  85.     bool estEv;
  86.     SModelEvidance(void) :
  87.         name(kEmptyStr), method(kEmptyStr), mrnaEv(false), estEv(false)
  88.     {}
  89. };
  90. bool GetModelEvidance(const CBioseq_Handle& bsh, SModelEvidance& me);
  91. const char* GetAAName(unsigned char aa, bool is_ascii);
  92. END_SCOPE(objects)
  93. END_NCBI_SCOPE
  94. /*
  95. * ===========================================================================
  96. *
  97. * $Log: utils.hpp,v $
  98. * Revision 1000.1  2004/06/01 19:45:38  gouriano
  99. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  100. *
  101. * Revision 1.7  2004/05/07 15:23:11  shomrat
  102. * + RemovePeriodFromEnd
  103. *
  104. * Revision 1.6  2004/04/22 15:54:37  shomrat
  105. * Use CBioseq_Handle instead of CBioseq
  106. *
  107. * Revision 1.5  2004/04/07 14:29:19  shomrat
  108. * + GetAAName
  109. *
  110. * Revision 1.4  2004/03/25 20:47:59  shomrat
  111. * Add class forwarding
  112. *
  113. * Revision 1.3  2004/03/18 15:34:54  shomrat
  114. * Meaningful argument names
  115. *
  116. * Revision 1.2  2004/02/11 16:57:17  shomrat
  117. * added JoinNoRedund functions
  118. *
  119. * Revision 1.1  2003/12/17 20:25:10  shomrat
  120. * Initial Revision (adapted from flat lib)
  121. *
  122. *
  123. * ===========================================================================
  124. */
  125. #endif  /* OBJTOOLS_FLAT___UTILS_HPP */