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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: weight.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:22:20  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef WEIGHT__HPP
  10. #define WEIGHT__HPP
  11. /*  $Id: weight.hpp,v 1000.1 2004/06/01 19:22:20 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:  Aaron Ucko
  37. *
  38. * File Description:
  39. *   Molecular weights for protein sequences
  40. */
  41. #include <map>
  42. #include <corelib/ncbistd.hpp>
  43. #include <corelib/ncbiobj.hpp>
  44. BEGIN_NCBI_SCOPE
  45. BEGIN_SCOPE(objects)
  46. class CBioseq_Handle;
  47. class CSeq_loc;
  48. class CSeqVector;
  49. class NCBI_XOBJUTIL_EXPORT CBadResidueException : public runtime_error
  50. {
  51. public:
  52.     CBadResidueException(const string& s) : runtime_error(s) { }
  53. };
  54. // Handles the standard 20 amino acids and Sec; treats Asx as Asp and
  55. // Glx as Glu; throws CBadResidueException on anything else.
  56. NCBI_XOBJUTIL_EXPORT
  57. double GetProteinWeight(const CBioseq_Handle& handle,
  58.                         const CSeq_loc* location = 0);
  59. typedef map<CConstRef<CSeq_loc>, double> TWeights;
  60. // Automatically picks reasonable ranges: in decreasing priority order,
  61. // - Annotated cleavage products (mature peptides)
  62. // - What's left after removing the first signal peptide found
  63. // - The entire sequence (skipping a leading methionine if present)
  64. NCBI_XOBJUTIL_EXPORT
  65. void GetProteinWeights(const CBioseq_Handle& handle, TWeights& weights);
  66. END_SCOPE(objects)
  67. END_NCBI_SCOPE
  68. /*
  69. * ===========================================================================
  70. * $Log: weight.hpp,v $
  71. * Revision 1000.1  2004/06/01 19:22:20  gouriano
  72. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  73. *
  74. * Revision 1.9  2004/05/25 15:38:12  ucko
  75. * Remove inappropriate THROWS declaration from GetProteinWeight.
  76. *
  77. * Revision 1.8  2002/12/30 20:48:01  ostell
  78. * added NCBI_XOBJUTIL_EXPORT and #includes needed
  79. *
  80. * Revision 1.7  2002/12/26 12:44:39  dicuccio
  81. * Added Win32 export specifiers
  82. *
  83. * Revision 1.6  2002/12/24 16:11:54  ucko
  84. * Make handle const per recent changes to CFeat_CI.
  85. *
  86. * Revision 1.5  2002/06/07 18:19:59  ucko
  87. * Reworked to take advantage of CBioseq_Handle::GetSequenceView.
  88. *
  89. * Revision 1.4  2002/05/06 16:11:55  ucko
  90. * Update for new OM; move CVS log to end.
  91. *
  92. * Revision 1.3  2002/05/03 21:28:05  ucko
  93. * Introduce T(Signed)SeqPos.
  94. *
  95. * Revision 1.2  2002/04/19 17:50:03  ucko
  96. * Add forward declaration for CBioseqHandle.
  97. *
  98. * Revision 1.1  2002/03/06 22:08:39  ucko
  99. * Add code to calculate protein weights.
  100. * ===========================================================================
  101. */
  102. #endif  /* WEIGHT__HPP */