From: <ds...@us...> - 2015-10-28 17:20:09
|
Revision: 7096 http://sourceforge.net/p/sashimi/code/7096 Author: dshteyn Date: 2015-10-28 17:20:05 +0000 (Wed, 28 Oct 2015) Log Message: ----------- msys64/mingw64 build tweaks for TPP-5...also adding dependencies for new DISCO features Modified Paths: -------------- branches/TPP5-Refactor/trans_proteomic_pipeline/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/common.mk branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/installer_win32/tpp.iss branches/TPP5-Refactor/trans_proteomic_pipeline/src/Common/win32_system.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/RTCalculator.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Parsers/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/src/Quantitation/ASAPRatio/ASAPRatio_Fns/ASAPRatio_pepFns.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Quantitation/ASAPRatio/PvalueModel/PvalueModel.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Search/XTandem/src_tpp/mscore.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Search/XTandem/src_tpp/tandem.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/Disco/DiscoFilter.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/Disco/DiscoFilter.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/Disco/DiscoMain.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/ModelParser/ModelParser.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/Respect/RespectFilter.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Validation/iModelParser/IModelParser.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/PMap.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/PepXField.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/PepXNode.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/PipelineAnalysis.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/XMLNode.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/XMLNode.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/XMLTree.h branches/TPP5-Refactor/trans_proteomic_pipeline/src/mzXML/tools/mzXMLIndexer/indexmzXMLSHA1.hpp Added Paths: ----------- branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Averagine.dat branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor2.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor2.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorFileReader.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorFileReader.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorParser.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorParser.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorProtein.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorProtein.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorSetting.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorSetting.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorVariant.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklorVariant.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CMercury8.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CMercury8.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CModelLibrary.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CModelLibrary.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CNoiseReduction.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CNoiseReduction.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CPeriodicTable.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CPeriodicTable.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSettings.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSettings.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSpecAnalyze.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSpecAnalyze.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSplitSpectrum.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CSplitSpectrum.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/FFT-HK.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/FFT-HK.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/FFT.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/FFT.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor.conf branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor.dat branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor2008.aps branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor2008.rc branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor2008.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor2008Lib/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Hardklor2008Lib/Hardklor2008Lib.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/HardklorApp.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/HardklorTypes.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/ISOTOPE.DAT branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/ISOTOPE.ORIG branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/Hardklor5.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor128.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor128.png branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor2.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor256.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor256.png branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor3.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor32.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor32.png branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor4.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor64.ico branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Images/hardklor64.png branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/CKronik2.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/CKronik2.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/Kronik2 branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/Kronik2.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/Kronik2.sln branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Kronik2/Kronik2.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/README.txt branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/S2N.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/S2N.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Smooth.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Smooth.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/SpecAnalyzeSupport.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/SpecAnalyzeSupport.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/mercury.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/resource.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/resource1.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSSingleScan/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSSingleScan/MSSingleScan.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSSingleScan/MSSingleScan.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSToolkit.sln branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSToolkit.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSToolkitCLR.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSToolkitLite.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/MSToolkitLiteCLR.vcproj branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/Makefile branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/MSNumpress.hpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/MSObject.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/MSReader.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/MSToolkitTypes.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/RAWReader.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/Spectrum.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/ascii.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/asciitab.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/crc32.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/deflate.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/expat.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/expat_config.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/expat_external.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/gzguts.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/iasciitab.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/inffast.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/inffixed.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/inflate.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/inftrees.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/internal.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/latin1tab.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/make.out branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/mzParser.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/nametab.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/sqlite3.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/trees.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/utf8tab.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/winconfig.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/xmlrole.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/xmltok.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/xmltok_impl.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/zconf.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/zlib.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/include/zutil.h branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/MSToolkit/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/MSToolkit/MSObject.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/MSToolkit/MSReader.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/MSToolkit/RAWReader.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/MSToolkit/Spectrum.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmlparse.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmlparse.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmlrole.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmlrole.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok_impl.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok_impl.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok_ns.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/expat-2.0.1/xmltok_ns.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/BasicChromatogram.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/BasicSpectrum.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/Czran.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/MSNumpress.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/PWIZface.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/RAMPface.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mz5handler.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mzMLReader.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mzParser.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mzpMz5Config.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mzpMz5Structs.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/mzp_base64.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/saxhandler.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/saxmzmlhandler.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/mzParser/saxmzxmlhandler.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/sqlite-3.7.7.1/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/sqlite-3.7.7.1/sqlite3.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/sqlite-3.7.7.1/sqlite3.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/adler32.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/adler32.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/compress.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/compress.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/crc32.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/crc32.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/deflate.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/deflate.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzclose.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzclose.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzlib.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzlib.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzread.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzread.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzwrite.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/gzwrite.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/infback.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/infback.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inffast.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inffast.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inflate.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inflate.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inftrees.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/inftrees.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/trees.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/trees.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/uncompr.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/uncompr.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/zutil.c branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/src/zLib-1.2.5/zutil.cpp branches/TPP5-Refactor/trans_proteomic_pipeline/extern/MSToolkit/test.mzML branches/TPP5-Refactor/trans_proteomic_pipeline/extern/libgd-2.1.0.mingwpatch Modified: branches/TPP5-Refactor/trans_proteomic_pipeline/Makefile =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/Makefile 2015-10-28 17:12:52 UTC (rev 7095) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/Makefile 2015-10-28 17:20:05 UTC (rev 7096) @@ -245,7 +245,7 @@ # Empty directory(s) $(INSTALL_LOG) : $(INNO) - mkdir -p -m 444 $(INSTALL_LOG) + mkdir -p -m 755 $(INSTALL_LOG) install :: $(INSTALL_LOG) Modified: branches/TPP5-Refactor/trans_proteomic_pipeline/common.mk =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/common.mk 2015-10-28 17:12:52 UTC (rev 7095) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/common.mk 2015-10-28 17:20:05 UTC (rev 7096) @@ -163,6 +163,8 @@ OS := Darwin else ifneq (,$(findstring mingw, $(TARGET))) OS := $(OS) +else ifneq (,$(findstring msys, $(TARGET))) + OS := $(OS) else $(error Unable to determine target platform using $$(CXX) -dumpmachine) endif @@ -205,7 +207,7 @@ # option -Wno-errors=deprecated. # # TODO: remove the deprecated calls -CXXFLAGS += -Werror -Wno-deprecated +CXXFLAGS += -Wno-deprecated # Always include large file support CXXFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE @@ -307,6 +309,19 @@ MZPARSER_CXXFLAGS := -I$(TPP_SRC)/Parsers/mzParser $(HDF_CXXFLAGS) $(EXPAT_CXXFLAGS) MZPARSER_LDFLAGS := $(LIBMZPARSER) $(HDF5_LDFLAGS) $(EXPAT_LDFLAGS) -lz +MSTOOLKIT_CXXFLAGS := -I$(TPP_EXT)/MSToolkit/include +MSTOOLKIT_LDFLAGS := -lmstoolkitlite + +MSTK_PATH = $(TPP_EXT)/MSToolkit +MSTK_OBJDIR := $(BUILD_OBJ)/MSToolkit + +HARDKLOR_CXXFLAGS := -I$(TPP_EXT)/Hardklor +HARDKLOR_LDFLAGS := -lhardklor + +HKLR_PATH = $(TPP_EXT)/Hardklor +HKLR_OBJDIR := $(BUILD_OBJ)/Hardklor + + PNG_CXXFLAGS := PNG_LDFLAGS := -lpng Added: branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Averagine.dat =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Averagine.dat (rev 0) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/Averagine.dat 2015-10-28 17:20:05 UTC (rev 7096) @@ -0,0 +1,104 @@ +0 X 0 0 0 0 +1 H 1.0078246 0.999855 2.0141021 0.000145 +2 He 3.01603 0.00000138 4.00260 0.99999862 +3 Li 6.015121 0.075 7.016003 0.925 +4 Be 0 0 0 0 +5 B 10.012937 0.199 1.009305 0.801 +6 C 12.0000000 0.98916 13.0033554 0.01084 +7 N 14.0030732 0.99633 15.0001088 0.00366 +8 O 15.9949141 0.997576009706 16.9991322 0.000378998479 +9 X 0 0 0 0 +10 X 0 0 0 0 +11 X 0 0 0 0 +12 X 0 0 0 0 +13 X 0 0 0 0 +14 X 0 0 0 0 +15 X 0 0 0 0 +16 S 31.972070 0.95021 32.971456 0.00745 +17 X 0 0 0 0 +18 X 0 0 0 0 +19 X 0 0 0 0 +20 X 0 0 0 0 +21 X 0 0 0 0 +22 X 0 0 0 0 +23 X 0 0 0 0 +24 X 0 0 0 0 +25 X 0 0 0 0 +26 X 0 0 0 0 +27 X 0 0 0 0 +28 X 0 0 0 0 +29 X 0 0 0 0 +30 X 0 0 0 0 +31 X 0 0 0 0 +32 X 0 0 0 0 +33 X 0 0 0 0 +34 X 0 0 0 0 +35 X 0 0 0 0 +36 X 0 0 0 0 +37 X 0 0 0 0 +38 X 0 0 0 0 +39 X 0 0 0 0 +40 X 0 0 0 0 +41 X 0 0 0 0 +42 X 0 0 0 0 +43 X 0 0 0 0 +44 X 0 0 0 0 +45 X 0 0 0 0 +46 X 0 0 0 0 +47 X 0 0 0 0 +48 X 0 0 0 0 +49 X 0 0 0 0 +50 X 0 0 0 0 +51 X 0 0 0 0 +52 X 0 0 0 0 +53 X 0 0 0 0 +54 X 0 0 0 0 +55 X 0 0 0 0 +56 X 0 0 0 0 +57 X 0 0 0 0 +58 X 0 0 0 0 +59 X 0 0 0 0 +60 X 0 0 0 0 +61 X 0 0 0 0 +62 X 0 0 0 0 +63 X 0 0 0 0 +64 X 0 0 0 0 +65 X 0 0 0 0 +66 X 0 0 0 0 +67 X 0 0 0 0 +68 X 0 0 0 0 +69 X 0 0 0 0 +70 X 0 0 0 0 +71 X 0 0 0 0 +72 X 0 0 0 0 +73 X 0 0 0 0 +74 X 0 0 0 0 +75 X 0 0 0 0 +76 X 0 0 0 0 +77 X 0 0 0 0 +78 X 0 0 0 0 +79 X 0 0 0 0 +80 X 0 0 0 0 +81 X 0 0 0 0 +82 X 0 0 0 0 +83 X 0 0 0 0 +84 X 0 0 0 0 +85 X 0 0 0 0 +86 X 0 0 0 0 +87 X 0 0 0 0 +88 X 0 0 0 0 +89 X 0 0 0 0 +90 X 0 0 0 0 +91 X 0 0 0 0 +92 X 0 0 0 0 +93 X 0 0 0 0 +94 X 0 0 0 0 +95 X 0 0 0 0 +96 X 0 0 0 0 +97 X 0 0 0 0 +98 X 0 0 0 0 +99 X 0 0 0 0 +100 X 0 0 0 0 +101 X 0 0 0 0 +102 X 0 0 0 0 +103 X 0 0 0 0 Added: branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.cpp =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.cpp (rev 0) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.cpp 2015-10-28 17:20:05 UTC (rev 7096) @@ -0,0 +1,306 @@ +#include <iomanip> +#include <iostream> +#include "CAveragine.h" +using namespace std; + +CAveragine::CAveragine(char* fn, char* fn2){ + PT = new CPeriodicTable(fn2); + atoms = new int[PT->size()]; + for(int i=0;i<PT->size();i++) atoms[i]=0; + enrich = new vector<atomInfo>; + loadTable(fn); +} + +CAveragine::~CAveragine(){ + delete [] atoms; + delete enrich; +} + +void CAveragine::calcAveragine(double dMass, CHardklorVariant hv) { + int i,j; + int iso; + int atom; + double fixedD = dMass; + double units; + double *enr; + double *abun; + double maxAbun; + double totAbun; + enr = new double[PT->size()]; + for(i=0;i<PT->size();i++) enr[i]=0; + + for(i=0;i<hv.sizeEnrich();i++){ + + atom = hv.atEnrich(i).atomNum; + iso = enrich->at(atom).numIsotopes; + abun = new double[iso]; + + //Set our abundance array and find maximum + maxAbun=0; + for(j=0;j<iso;j++){ + abun[j]=enrich->at(atom).abundance->at(j); + if(abun[j]>maxAbun) maxAbun=abun[j]; + } + + //Normalize to 1 + for(j=0;j<iso;j++) abun[j]/=maxAbun; + + //Normalize, then Calculate enrichment + totAbun=0; + enr[atom]=0; + for(j=0;j<iso;j++){ + abun[j]/=maxAbun; + if(j==hv.atEnrich(i).isotope) abun[j]=(1-hv.atEnrich(i).ape)*abun[j]+hv.atEnrich(i).ape; + else abun[j]=(1-hv.atEnrich(i).ape)*abun[j]; + totAbun+=abun[j]; + enr[atom]+=abun[j]*enrich->at(atom).mass->at(j); + } + + //Calculate average mass + enr[atom] /= totAbun; + enr[atom] -= PT->at(atom).mass; + + delete [] abun; + } + + for(i=0;i<hv.sizeAtom();i++) { + + atoms[hv.atAtom(i).iLower]+=hv.atAtom(i).iUpper; + fixedD -= hv.atAtom(i).iUpper*(PT->at(hv.atAtom(i).iLower).mass + enr[hv.atAtom(i).iLower]); + } + + units = (fixedD)/(AVE_MASS + enr[1]*AVE_H + enr[6]*AVE_C + enr[7]*AVE_N + enr[8]*AVE_O + enr[16]*AVE_S); + + //Quick fix; assumes complete periodic table + atoms[6] += (int)(AVE_C*units+0.5); + atoms[8] += (int)(AVE_O*units+0.5); + atoms[7] += (int)(AVE_N*units+0.5); + atoms[16] += (int)(AVE_S*units+0.5); + + atoms[1] += (int)(fixedD-( ((int)(AVE_C*units+0.5)) * (PT->at(6).mass + enr[6]) + + ((int)(AVE_N*units+0.5)) * (PT->at(7).mass + enr[7]) + + ((int)(AVE_O*units+0.5)) * (PT->at(8).mass + enr[8]) + + ((int)(AVE_S*units+0.5)) * (PT->at(16).mass + enr[16]) )+0.5); + + delete [] enr; + +} + +void CAveragine::defaultValues(){ + + string el[109] = {"X","H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar", + "K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr", + "Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm", + "Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po", + "At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Hx","Cx","Nx", + "Ox","Sx"}; + int sz[109] = {2,2,2,2,1,2,2,2,3,1,3,1,3,1,3,1,4,2,3,3,6,1,5,2,4,1,4,1,5,2,5,2,5,1,6,2,6,2,4,1,5,1,7,1,7, + 1,6,2,8,2,10,2,8,1,9,1,7,2,4,1,7,1,7,2,7,1,7,1,6,1,7,2,6,2,5,2,7,2,6,1,7,2,4,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1, + 1,1,1,1,1,2,2,2,3,4}; + double m[322] = {1.000000000000,2.000000000000,1.007824600000,2.014102100000,3.016030000000,4.002600000000, + 6.015121000000,7.016003000000,9.012182000000,10.012937000000,11.009305000000,12.000000000000,13.003355400000, + 14.003073200000,15.000108800000,15.994914100000,16.999132200000,17.999161600000,18.998403200000, + 19.992435000000,20.993843000000,21.991383000000,22.989767000000,23.985042000000,24.985837000000, + 25.982593000000,26.981539000000,27.976927000000,28.976495000000,29.973770000000,30.973762000000, + 31.972070000000,32.971456000000,33.967866000000,35.967080000000,34.968853100000,36.965903400000, + 35.967545000000,37.962732000000,39.962384000000,38.963707000000,39.963999000000,40.961825000000, + 39.962591000000,41.958618000000,42.958766000000,43.955480000000,45.953689000000,47.952533000000, + 44.955910000000,45.952629000000,46.951764000000,47.947947000000,48.947871000000,49.944792000000, + 49.947161000000,50.943962000000,49.946046000000,51.940509000000,52.940651000000,53.938882000000, + 54.938047000000,53.939612000000,55.934939000000,56.935396000000,57.933277000000,58.933198000000, + 57.935346000000,59.930788000000,60.931058000000,61.928346000000,63.927968000000,62.939598000000, + 64.927793000000,63.929145000000,65.926034000000,66.927129000000,67.924846000000,69.925325000000, + 68.925580000000,70.924700000000,69.924250000000,71.922079000000,72.923463000000,73.921177000000, + 75.921401000000,74.921594000000,73.922475000000,75.919212000000,76.919912000000,77.919000000000, + 79.916520000000,81.916698000000,78.918336000000,80.916289000000,77.914000000000,79.916380000000, + 81.913482000000,82.914135000000,83.911507000000,85.910616000000,84.911794000000,86.909187000000, + 83.913430000000,85.909267000000,86.908884000000,87.905619000000,88.905849000000,89.904703000000, + 90.905644000000,91.905039000000,93.906314000000,95.908275000000,92.906377000000,91.906808000000, + 93.905085000000,94.905840000000,95.904678000000,96.906020000000,97.905406000000,99.907477000000, + 98.000000000000,95.907599000000,97.905287000000,98.905939000000,99.904219000000,100.905582000000, + 101.904348000000,103.905424000000,102.905500000000,101.905634000000,103.904029000000,104.905079000000, + 105.903478000000,107.903895000000,109.905167000000,106.905092000000,108.904757000000,105.906461000000, + 107.904176000000,109.903005000000,110.904182000000,111.902758000000,112.904400000000,113.903357000000, + 115.904754000000,112.904061000000,114.903880000000,111.904826000000,113.902784000000,114.903348000000, + 115.901747000000,116.902956000000,117.901609000000,118.903310000000,119.902200000000,121.903440000000, + 123.905274000000,120.903821000000,122.904216000000,119.904048000000,121.903054000000,122.904271000000, + 123.902823000000,124.904433000000,125.903314000000,127.904463000000,129.906229000000,126.904473000000, + 123.905894000000,125.904281000000,127.903531000000,128.904780000000,129.903509000000,130.905072000000, + 131.904144000000,133.905395000000,135.907214000000,132.905429000000,129.906282000000,131.905042000000, + 133.904486000000,134.905665000000,135.904553000000,136.905812000000,137.905232000000,137.907110000000, + 138.906347000000,135.907140000000,137.905985000000,139.905433000000,141.909241000000,140.907647000000, + 141.907719000000,142.909810000000,143.910083000000,144.912570000000,145.913113000000,147.916889000000, + 149.920887000000,145.000000000000,143.911998000000,146.914895000000,147.914820000000,148.917181000000, + 149.917273000000,151.919729000000,153.922206000000,150.919847000000,152.921225000000,151.919786000000, + 153.920861000000,154.922618000000,155.922118000000,156.923956000000,157.924099000000,159.927049000000, + 158.925342000000,155.925277000000,157.924403000000,159.925193000000,160.926930000000,161.926795000000, + 162.928728000000,163.929171000000,164.930319000000,161.928775000000,163.929198000000,165.930290000000, + 166.932046000000,167.932368000000,169.935461000000,168.934212000000,167.933894000000,169.934759000000, + 170.936323000000,171.936378000000,172.938208000000,173.938859000000,175.942564000000,174.940770000000, + 175.942679000000,173.940044000000,175.941406000000,176.943217000000,177.943696000000,178.945812000000, + 179.946545000000,179.947462000000,180.947992000000,179.946701000000,181.948202000000,182.950220000000, + 183.950928000000,185.954357000000,184.952951000000,186.955744000000,183.952488000000,185.953830000000, + 186.955741000000,187.955860000000,188.958137000000,189.958436000000,191.961467000000,190.960584000000, + 192.962917000000,189.959917000000,191.961019000000,193.962655000000,194.964766000000,195.964926000000, + 197.967869000000,196.966543000000,195.965807000000,197.966743000000,198.968254000000,199.968300000000, + 200.970277000000,201.970617000000,203.973467000000,202.972320000000,204.974401000000,203.973020000000, + 205.974440000000,206.975872000000,207.976627000000,208.980374000000,209.000000000000,210.000000000000, + 222.000000000000,223.000000000000,226.025000000000,227.028000000000,232.038054000000,231.035900000000, + 234.040946000000,235.043924000000,238.050784000000,237.048000000000,244.000000000000,243.000000000000, + 247.000000000000,247.000000000000,251.000000000000,252.000000000000,257.000000000000,258.000000000000, + 259.000000000000,260.000000000000,1.007824600000,2.014102100000,12.000000000000,13.003355400000, + 14.003073200000,15.000108800000,15.994914100000,16.999132200000,17.999161600000,31.972070000000, + 32.971456000000,33.967866000000,35.967080000000}; + double r[322] = {0.900000000000,0.100000000000,0.999855000000,0.000145000000,0.000001380000,0.999998620000, + 0.075000000000,0.925000000000,1.000000000000,0.199000000000,0.801000000000,0.989160000000,0.010840000000, + 0.996330000000,0.003660000000,0.997576009706,0.000378998479,0.002044991815,1.000000000000,0.904800000000, + 0.002700000000,0.092500000000,1.000000000000,0.789900000000,0.100000000000,0.110100000000,1.000000000000, + 0.922300000000,0.046700000000,0.031000000000,1.000000000000,0.950210000000,0.007450000000,0.042210000000, + 0.000130000000,0.755290000000,0.244710000000,0.003370000000,0.000630000000,0.996000000000,0.932581000000, + 0.000117000000,0.067302000000,0.969410000000,0.006470000000,0.001350000000,0.020860000000,0.000040000000, + 0.001870000000,1.000000000000,0.080000000000,0.073000000000,0.738000000000,0.055000000000,0.054000000000, + 0.002500000000,0.997500000000,0.043450000000,0.837900000000,0.095000000000,0.023650000000,1.000000000000, + 0.059000000000,0.917200000000,0.021000000000,0.002800000000,1.000000000000,0.682700000000,0.261000000000, + 0.011300000000,0.035900000000,0.009100000000,0.691700000000,0.308300000000,0.486000000000,0.279000000000, + 0.041000000000,0.188000000000,0.006000000000,0.601080000000,0.398920000000,0.205000000000,0.274000000000, + 0.078000000000,0.365000000000,0.078000000000,1.000000000000,0.009000000000,0.091000000000,0.076000000000, + 0.236000000000,0.499000000000,0.089000000000,0.506900000000,0.493100000000,0.003500000000,0.022500000000, + 0.116000000000,0.115000000000,0.570000000000,0.173000000000,0.721700000000,0.278300000000,0.005600000000, + 0.098600000000,0.070000000000,0.825800000000,1.000000000000,0.514500000000,0.112200000000,0.171500000000, + 0.173800000000,0.028000000000,1.000000000000,0.148400000000,0.092500000000,0.159200000000,0.166800000000, + 0.095500000000,0.241300000000,0.096300000000,1.000000000000,0.055400000000,0.018600000000,0.127000000000, + 0.126000000000,0.171000000000,0.316000000000,0.186000000000,1.000000000000,0.010200000000,0.111400000000, + 0.223300000000,0.273300000000,0.264600000000,0.117200000000,0.518390000000,0.481610000000,0.012500000000, + 0.008900000000,0.124900000000,0.128000000000,0.241300000000,0.122200000000,0.287300000000,0.074900000000, + 0.043000000000,0.957000000000,0.009700000000,0.006500000000,0.003600000000,0.145300000000,0.076800000000, + 0.242200000000,0.085800000000,0.325900000000,0.046300000000,0.057900000000,0.574000000000,0.426000000000, + 0.000950000000,0.025900000000,0.009050000000,0.047900000000,0.071200000000,0.189300000000,0.317000000000, + 0.338700000000,1.000000000000,0.001000000000,0.000900000000,0.019100000000,0.264000000000,0.041000000000, + 0.212000000000,0.269000000000,0.104000000000,0.089000000000,1.000000000000,0.001060000000,0.001010000000, + 0.024200000000,0.065930000000,0.078500000000,0.112300000000,0.717000000000,0.000900000000,0.999100000000, + 0.001900000000,0.002500000000,0.884300000000,0.111300000000,1.000000000000,0.271300000000,0.121800000000, + 0.238000000000,0.083000000000,0.171900000000,0.057600000000,0.056400000000,1.000000000000,0.031000000000, + 0.150000000000,0.113000000000,0.138000000000,0.074000000000,0.267000000000,0.227000000000,0.478000000000, + 0.522000000000,0.002000000000,0.021800000000,0.148000000000,0.204700000000,0.156500000000,0.248400000000, + 0.218600000000,1.000000000000,0.000600000000,0.001000000000,0.023400000000,0.189000000000,0.255000000000, + 0.249000000000,0.282000000000,1.000000000000,0.001400000000,0.016100000000,0.336000000000,0.229500000000, + 0.268000000000,0.149000000000,1.000000000000,0.001300000000,0.030500000000,0.143000000000,0.219000000000, + 0.161200000000,0.318000000000,0.127000000000,0.974100000000,0.025900000000,0.001620000000,0.052060000000, + 0.186060000000,0.272970000000,0.136290000000,0.351000000000,0.000120000000,0.999880000000,0.001200000000, + 0.263000000000,0.142800000000,0.307000000000,0.286000000000,0.374000000000,0.626000000000,0.000200000000, + 0.015800000000,0.016000000000,0.133000000000,0.161000000000,0.264000000000,0.410000000000,0.373000000000, + 0.627000000000,0.000100000000,0.007900000000,0.329000000000,0.338000000000,0.253000000000,0.072000000000, + 1.000000000000,0.001500000000,0.100000000000,0.169000000000,0.231000000000,0.132000000000,0.298000000000, + 0.068500000000,0.295240000000,0.704760000000,0.014000000000,0.241000000000,0.221000000000,0.524000000000, + 1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000, + 1.000000000000,1.000000000000,0.000055000000,0.007200000000,0.992745000000,1.000000000000,1.000000000000, + 1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000,1.000000000000, + 1.000000000000,1.000000000000,0.999855000000,0.000145000000,0.989160000000,0.010840000000,0.996330000000, + 0.003660000000,0.997576009706,0.000378998479,0.002044991815,0.950210000000,0.007450000000,0.042210000000, + 0.000130000000}; + + int i=0; + int j=0; + int k; + atomInfo a; + + for(k=0;k<109;k++){ + strcpy(a.symbol,&el[k][0]); + a.numIsotopes=sz[k]; + a.mass->clear(); + a.abundance->clear(); + for(j=0;j<a.numIsotopes;j++){ + a.mass->push_back(m[i]); + a.abundance->push_back(r[i]); + i++; + } + enrich->push_back(a); + } + +} + +void CAveragine::clear(){ + delete [] atoms; + atoms = new int[PT->size()]; + for(int i=0;i<PT->size();i++) atoms[i]=0; +} + +int CAveragine::getElement(int i){ + return atoms[i]; +} + +void CAveragine::getAveragine(char *str){ + char tstr[10]; + int i; + str[0]=0; + + //Create formula string + for(i=0;i<PT->size();i++){ + if(atoms[i]>0){ + sprintf(tstr,"%s%i",PT->at(i).symbol,atoms[i]); + strcat(str,tstr); + } + } + +} + +double CAveragine::getMonoMass(){ + double d=0; + int i; + + for(i=0;i<PT->size();i++) d+=atoms[i]*PT->at(i).mass; + return d; + +} + +CPeriodicTable* CAveragine::getPT(){ + return PT; +} + +void CAveragine::loadTable(char* c){ + + FILE *f; + int j; + atomInfo a; + double d1,d2; + + if(c==NULL || strlen(c)==0){ + defaultValues(); + return; + } + + f = fopen(c,"rt"); + if(f==NULL) { + cout << "Cannot read " << c << endl; + exit(-1); + } + + while(!feof(f)){ + + fscanf(f,"%2s\t%d\n",&a.symbol,&a.numIsotopes); + a.mass->clear(); + a.abundance->clear(); + + for(j=0;j<a.numIsotopes;j++){ + fscanf(f,"%lf\t%lf\n",&d1,&d2); + a.mass->push_back(d1); + a.abundance->push_back(d2); + } + + enrich->push_back(a); + fscanf(f," \n"); + + } + + fclose(f); + +} + +//This is not to be used normally - just here to make my life easier. +void CAveragine::setAveragine(int C, int H, int N, int O, int S){ + atoms[1]=H; + atoms[6]=C; + atoms[7]=N; + atoms[8]=O; + atoms[16]=S; +} Added: branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.h =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.h (rev 0) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CAveragine.h 2015-10-28 17:20:05 UTC (rev 7096) @@ -0,0 +1,101 @@ +#ifndef _CAVERAGINE_H +#define _CAVERAGINE_H + +#include "CHardklorVariant.h" +#include "CPeriodicTable.h" + +#include <cstdlib> +#include <fstream> +#include <vector> +#include <cstring> + +using namespace std; + +/* +const double AVE_MASS = 111.1254; +const double AVE_C = 4.9384; +const double AVE_H = 7.7583; +const double AVE_N = 1.3577; +const double AVE_O = 1.4773; +const double AVE_S = 0.0417; +*/ + +const double AVE_MASS = 111.2137; +const double AVE_C = 4.9558; +const double AVE_H = 7.8241; +const double AVE_N = 1.3571; +const double AVE_O = 1.4716; +const double AVE_S = 0.0390; + +typedef struct atomInfo { + char symbol[3]; + int numIsotopes; + vector<double> *mass; + vector<double> *abundance; + atomInfo(){ + strcpy(symbol,"X"); + numIsotopes=0; + mass = new vector<double>; + abundance = new vector<double>; + } + atomInfo(const atomInfo& a){ + strcpy(symbol,a.symbol); + numIsotopes=a.numIsotopes; + mass = new vector<double>; + abundance = new vector<double>; + unsigned int i; + for(i=0;i<a.mass->size();i++) mass->push_back(a.mass->at(i)); + for(i=0;i<a.abundance->size();i++) abundance->push_back(a.abundance->at(i)); + } + ~atomInfo(){ + delete mass; + delete abundance; + } + atomInfo& operator=(const atomInfo& a){ + if(&a!=this){ + strcpy(symbol,a.symbol); + numIsotopes=a.numIsotopes; + delete mass; + delete abundance; + mass = new vector<double>; + abundance = new vector<double>; + unsigned int i; + for(i=0;i<a.mass->size();i++) mass->push_back(a.mass->at(i)); + for(i=0;i<a.abundance->size();i++) abundance->push_back(a.abundance->at(i)); + } + return *this; + } + +} atomInfo; + +class CAveragine { + + public: + //Constructors & Destructors + //CAveragine(); + CAveragine(char* fn="ISOTOPE.DAT", char* fn2="Hardklor.dat"); + ~CAveragine(); + + //Methods: + void calcAveragine(double,CHardklorVariant); + void clear(); + void defaultValues(); + void getAveragine(char*); + void setAveragine(int,int,int,int,int); + int getElement(int); + double getMonoMass(); + CPeriodicTable* getPT(); + void loadTable(char*); + + protected: + + private: + //Data Members: + //double monoMass; + int *atoms; + CPeriodicTable *PT; + vector<atomInfo> *enrich; + +}; + +#endif Added: branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor.cpp =================================================================== --- branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor.cpp (rev 0) +++ branches/TPP5-Refactor/trans_proteomic_pipeline/extern/Hardklor/CHardklor.cpp 2015-10-28 17:20:05 UTC (rev 7096) @@ -0,0 +1,2280 @@ + +/* + Hardkl\xF6r - Thanks to Aaron Klammer (Klezmer) and + Greg Finney for the name suggestions. + + This program scans through high resolution mass spectra, + predicts the monoisotopic mass and charge state of any potential + peptides (or proteins), generates predicted isotope distributions + of averagine and modified averagine molecules matching the mass + of each distribution, then correlates the various combinations of each + distribution with the spectrum data to find a best match. + + This application was first designed to identify chlorinated peptides, + hence the name Hardkl\xF6r. Due to the distinguishing characteristics of + a chlorinated distribution, this application makes it possible to predict + if the observed distribution is in fact chlorinated. The application + has since been extended to differentiate any measurable atomic or + enrichment modification. + + The application utilizes an object model, so components may + be used in other applications. Furthermore, the design was made + to be extended, or possibly embedded in other software. + + Version 1.0 is the first public release. +*/ + +#include "CHardklor.h" +#include "CAveragine.h" +#include "CMercury8.h" +#include "CSpecAnalyze.h" +#include "Smooth.h" +#include <iomanip> +using namespace std; + + +SSObject::SSObject(){ + pepVar = new vector<sInt>; + corr=0; +} + +SSObject::SSObject(const SSObject& c){ + corr = c.corr; + pepVar = new vector<sInt>; + for(unsigned int i=0;i<c.pepVar->size();i++) pepVar->push_back(c.pepVar->at(i)); +} + +SSObject::~SSObject(){ + delete pepVar; +} + +SSObject& SSObject::operator=(const SSObject& c){ + if (this != &c) { + corr = c.corr; + delete pepVar; + pepVar = new vector<sInt>; + for(unsigned int i=0;i<c.pepVar->size();i++) pepVar->push_back(c.pepVar->at(i)); + } + return *this; +} + +void SSObject::addVar(int a, int b){ + sInt s; + s.iLower = a; + s.iUpper = b; + pepVar->push_back(s); +} + +void SSObject::clear(){ + delete pepVar; + pepVar = new vector<sInt>; + corr = 0; +} + +CHardklor::CHardklor(){ + averagine=NULL; + mercury=NULL; + bEcho=true; + bMem=false; +} + +CHardklor::CHardklor(CAveragine *a, CMercury8 *m){ + averagine=a; + mercury=m; + sa.setAveragine(averagine); + sa.setMercury(mercury); + bEcho=true; + bMem=false; +} + +CHardklor::~CHardklor(){ + averagine=NULL; + mercury=NULL; +} + +void CHardklor::Echo(bool b){ + bEcho=b; +} + +void CHardklor::SetAveragine(CAveragine *a){ + averagine=a; + sa.setAveragine(averagine); +} + +void CHardklor::SetMercury(CMercury8 *m){ + mercury=m; + sa.setMercury(mercury); +} + +int CHardklor::GoHardklor(CHardklorSetting sett, Spectrum* s){ + cs = sett; + Analyze(s); + return 0; +} + +//sorts vector of Results from high to low +int CHardklor::compareData(const void *p1, const void *p2){ + const Result d1 = *(Result *)p1; + const Result d2 = *(Result *)p2; + if(d1.data<d2.data) return 1; + else if(d1.data>d2.data) return -1; + else return 0; +} + +void CHardklor::Analyze(Spectrum* s) { + + //Objects + MSReader r; + CNoiseReduction nr(&r,cs); + PT=averagine->getPT(); + + //iterators + unsigned int k; //counters for loops + + int TotalIterations=0; + int TotalScans=0; + int i; + + //Variables for file and clock management + int minutes, seconds; + loadTime=0; + analysisTime=0; + splitTime=0; + + //placeholders for data output to file + //int pepID; + //int varID; + + //Variables for some basic information output. + int iPercent; + int zeroPep=0; //Stores the number of spectra from which no potential peptides could be identified + int manyPep=0; //Stores the number of spectra from which the number of potential peptides + //exceeds the user-defined threshold. + int lowSigPep=0; //Stores the number of spectra whose max intensity was below the user defined threshold. + + + //Build variants (modifications) used in the analysis + pepVariants.clear(); + if(!cs.noBase) { + CHardklorVariant hkv; + pepVariants.push_back(hkv); + } + for(k=0;k<cs.variant->size();k++) pepVariants.push_back(cs.variant->at(k)); + + //Our temporary spectrum + Spectrum curSpec; + Spectrum cutSpec; + + //These are for splitting large spectra + bool bCutMe=false; + bool ReadScan=false; + bool bFirst=true; + CSplitSpectrum* cSS; + int winCount=0; + + vResults.clear(); + + //Ouput file info to user + if(bEcho){ + if(s==NULL) cout << "Reading from file: " << cs.inFile << endl; + if(!bMem) cout << "Writing to file: " << cs.outFile << endl; + } + + if(cs.fileFormat==dunno) { + cout << "Unknown file format or bad extension." << endl; + return; + } + + //Start of algorithm here. + getTimerFrequency(timerFrequency); + getExactTime(startTime); + + //Read in the initial spectrum + r.setFilter(cs.mzXMLFilter); + r.setRawFilter(cs.rawFilter); + if(s!=NULL){ + curSpec=*s; + } else { + if(cs.boxcar==0){ + if((cs.scan.iLower>0) && (cs.scan.iLower==cs.scan.iUpper)) r.readFile(&cs.inFile[0],curSpec,cs.scan.iLower); + else if(cs.scan.iLower>0) r.readFile(&cs.inFile[0],curSpec,cs.scan.iLower); + else r.readFile(&cs.inFile[0],curSpec); + + //this is the command to filter by persistence without boxcar averaging + // if(!nr.DeNoise(curSpec)) curSpec.setScanNumber(0); + + } else { + if(cs.boxcarFilter>0){ + if(!nr.DeNoiseC(curSpec)) curSpec.setScanNumber(0); + } else { + if(!nr.DeNoiseD(curSpec)) curSpec.setScanNumber(0); + } + } + } + + TotalScans++; + + getExactTime(stopTime); + tmpTime1=toMicroSec(stopTime); + tmpTime2=toMicroSec(startTime); + loadTime=tmpTime1-tmpTime2; + + //Check that file was read + if(curSpec.getScanNumber()==0) { + if(s!=NULL) { + cout << "Spectrum is invalid." << endl; + return; + } + if(cs.scan.iLower>0) cout << cs.inFile << " is invalid, or requested scan number is of incorrect format." << endl; + else cout << cs.inFile << " is invalid, or contains no spectrum." << endl; + return; + } + currentScanNumber = curSpec.getScanNumber(); + + //Open a file for output. Results will be written on the fly as they come out of the algorithm. + if(!bMem){ + fptr.open(&cs.outFile[0],ios::out|ios::app); + if(!fptr.good()) cout << "Output file error" << endl; + fptr << setiosflags(ios::fixed) << setprecision(4); + } + + if(!bMem && cs.xml){ + fptr << "<Hardklor>" << endl; + fptr << "<File InputFilename=\"" << cs.inFile << "\" OutputFilename=\"" << cs.outFile << "\">" << endl; + WriteParams(fptr,1); + } + + //Reset some basic stat counters + manyPep=0; + zeroPep=0; + lowSigPep=0; + + //Set and display on screen percentage counter + iPercent=0; + if(bEcho) cout << iPercent; + + //While there is still data to read in the file. + while(true){ + + //Load next spectrum to analyze + if(!bFirst){ + + //close out xml tag for previous spectrum + if(!bMem && cs.xml) fptr << "</Spectrum>" << endl; + + if(s!=NULL) break; + + //track load time + getExactTime(startTime); + if(cs.boxcar==0){ + r.readFile(NULL,curSpec); + //case 1: nr.DeNoise(curSpec); break; + } else { + if(cs.boxcarFilter>0) nr.DeNoiseC(curSpec); + else nr.DeNoiseD(curSpec); + } + getExactTime(stopTime); + tmpTime1=toMicroSec(stopTime); + tmpTime2=toMicroSec(startTime); + loadTime+=tmpTime1-tmpTime2; + + } else { + + bFirst=false; //mark that the first scan has been processed + + } + + //Write scan information to output file. + if(curSpec.getScanNumber()!=0){ + if(!bMem){ + if(cs.scan.iUpper>0 && curSpec.getScanNumber()>cs.scan.iUpper) break; + if(cs.reducedOutput) WriteScanLine(curSpec,fptr,2); + else if(cs.xml) WriteScanLine(curSpec,fptr,1); + else WriteScanLine(curSpec,fptr,0); + } else { + currentScanNumber = curSpec.getScanNumber(); + } + } else { + break; //exit if there is no spectrum left to analyze + } + TotalScans++; + + //Preprocess spectrum + //If we have an empty spectrum, go on to the next one + if(curSpec.size()==0) continue; + + getExactTime(startTime); + if(cs.smooth>0) SG_Smooth(curSpec,cs.smooth,4); + //if(curSpec.getScanNumber()==1999){ + // for(int xx=0;xx<curSpec.size();xx++) cout << curSpec[xx].mz << "\t" << curSpec[xx].intensity << endl; + //} + + //Check our spectrum for file type. Zoom and UltraZoom scans do not + //need splitting. + if(cs.fileFormat==zs || cs.fileFormat==uzs){ + + sa.clear(); + sa.setParams(cs); + sa.setSpectrum(curSpec); + sa.FindPeaks(); + sa.PredictPeptides(); + + //do not analyze spectrum with 0 predicted peaks; Keep count of these occurrances. + if(sa.predPeak->size()==0){ + zeroPep++; + continue; + } + + AnalyzePeaks(sa); + + } else { + + //Reinitialize our split spectrum + cSS=new CSplitSpectrum(&curSpec,cs); + cSS->SetAveragine(averagine); + cSS->SetMercury(mercury); + + //Check if data already centroided + if(cs.centroid) { + if(cs.chargeMode=='F' || cs.chargeMode=='P' || cs.chargeMode=='S'){ + cout << "-cdm settings of F, P, and S (FFT, Patterson, Senko) only work on profile data." << endl; + cout << "Please choose settings of Q or C (QuickCharge, Complete)" << endl; + exit(5); + } + //This function directly copies the already centroided spectra to the CSS object + cSS->Centroid(curSpec); + + //if not, process the data here (ultimately includes centroiding) + } else { + if(cs.boxcarFilter>0){ //TODO: Figure out how filtering interferes here + cs.sn=0; + cSS->Centroid(curSpec); + } else if(cs.staticSN) { + if(cs.sn==0) cSS->NoSplitAnalysis(); + else cSS->NewSNPass(cs.snWindow); + } else { + cSS->OverlappingAnalysis(cs.snWindow); + if(cs.iAnalysis) cSS->IntersectionAnalysis(); + else cSS->UnionAnalysis(); + } + } + + //Split the spectrum + cSS->MakeAnalysis(cs.winSize); + + //Analyze each window + for(winCount=0;winCount<cSS->getNumWindows();winCount++){ + sa = cSS->getWindow(winCount); + sa.setParams(cs); + sa.PredictPeptides(); + + //do not analyze spectrum with 0 predicted peaks; Keep count of these occurrances. + if(sa.predPeak->size()==0){ + zeroPep++; + continue; + } + + AnalyzePeaks(sa); + + } + + //clean up cSS object + delete cSS; + + } + + //Update the percentage indicator + if(bEcho){ + if (r.getPercent() > iPercent){ + if(iPercent<10) cout << "\b"; + else cout << "\b\b"; + cout.flush(); + iPercent=r.getPercent(); + cout << iPercent; + cout.flush(); + } + } + + if(!bMem && cs.xml) { + fptr << "</Spectrum>" << endl; + fptr << "</File>" << endl; + fptr << "</Hardklor>" << endl; + } + + } //loop to next spectrum (while) + + //Close the output file and clear it so it can be reused. + if(!bMem){ + fptr.close(); + fptr.clear(); + } + + if(bEcho) { + cout << "\n" << endl; + + switch(cs.algorithm){ + case SemiComplete: + cout << "SemiComplete analysis:" << endl; + break; + case SemiCompleteFast: + cout << "SemiCompleteFast analysis:" << endl; + break; + case Dynamic: + cout << "Dynamic analysis:" << endl; + break; + case DynamicSemiComplete: + cout << "DynamicSemiComplete analysis:" << endl; + break; + case SemiSubtractive: + cout << "SemiSubtractive analysis:" << endl; + break; + case FewestPeptides: + cout << "FewestPeptides analysis:" << endl; + break; + case FewestPeptidesChoice: + cout << "FewestPeptidesChoice analysis:" << endl; + break; + case FastFewestPeptides: + cout << "FastFewestPeptides analysis:" << endl; + break; + case FastFewestPeptidesChoice: + cout << "FastFewestPeptidesChoice analysis:" << endl; + break; + case Basic: + default: + cout << "Basic analysis:" << endl; + break; + } + } + + //Output the simple statistics + if(bEcho) cout << " Total number of scans analyzed: " << TotalScans << endl; + //cout << " Number of (sub)scans not analyzed:" << endl; + //cout << " No Peptides Predicted: " << zeroPep << endl; + //cout << " Intensity Below Limit: " << lowSigPep << endl; + //cout << " Number of scans with more predicted peptides than were analyzed: " << manyPep << endl; + //cout << " Total Correlations Made: " << TotalIterations << endl; + + //Output the time to analyze this file. + if(bEcho){ + i=(int)timeToSec(loadTime,timerFrequency); + minutes = (int)(i/60); + seconds = i - (60*minutes); + cout << "\nFile access time: " << minutes << " minutes, " << seconds << " seconds." << endl; + i=(int)timeToSec(splitTime,timerFrequency); + minutes = (int)(i/60); + seconds = i - (60*minutes); + cout << "Split Time: " << minutes << " minutes, " << seconds << " seconds." << endl; + i=(int)timeToSec(analysisTime,timerFrequency); + minutes = (int)(i/60); + seconds = i - (60*minutes); + cout << "Analysis Time: " << minutes << " minutes, " << seconds << " seconds." << endl; + + if (minutes==0 && seconds==0){ + cout << "IMPOSSIBLE!!!" << endl; + } else if(minutes <=2){ + cout << "HOLY FRIJOLE!!" << endl; + } else if(minutes<=5) { + cout << "Like lightning!" << endl; + } else if(minutes<=10){ + cout << "That's pretty damn fast!" << endl; + } else if(minutes<=20){ + cout << "Monkeys calculate faster than that!" << endl; + } else if(minutes<=30){ + cout << "You should have taken a lunch break." << endl; + } else if(minutes<=40){ + cout << "Oi! Too freakin' slow!!" << endl; + } else { + cout << "You might be able to eek out some better performance by adjusting your parameters." << endl; + } + } + + PT=NULL; + +} + +bool CHardklor::AnalyzePeaks(CSpecAnalyze& sa){ + + int i; + SSObject bsso; + + //Arrays for combinatorial analysis + float *match; + float *mismatch; + + //Track analysis times + getExactTime(startTime); + + //Make an averagine distribution for every variant specified in the conf file. + sa.MakePredictions(pepVariants); + + //if there are no possible peptides, stop the analysis here. + if(sa.predPep->size()==0) { + getExactTime(stopTime); + tmpTime1=toMicroSec(stopTime); + tmpTime2=toMicroSec(startTime); + analysisTime+=tmpTime1-tmpTime2; + return false; + } + + //Restructure mismatch arrays for faster correlation analysis + sa.BuildMismatchArrays(); + + //Send the distributions, and the observed data points from the spectrum to a recursive + //algorithm that will sum up every combination of every peptide in each of its chlorinated + //forms to find the combination that best fits the data. + + //Dimension our arrays + match = new float[sa.peaks.size()]; + for(i=0;i<sa.peaks.size();i++) match[i]=0; + + if(sa.mismatchSize>0){ + mismatch = new float[sa.mismatchSize]; + for(i=0;i<sa.mismatchSize;i++) mismatch[i]=0; + } else { + mismatch = new float[1]; + mismatch[0] = 0; + } + + //clear prior data and select analysis algorithm + bsso.clear(); + switch(cs.algorithm){ + case SemiComplete: + SemiCompleteMethod(match,mismatch,&bsso,1,cs.depth,0); + break; + case SemiCompleteFast: + SemiCompleteFastMethod(match,mismatch,&bsso,1,cs.depth,0); + break; + case Dynamic: + DynamicMethod(match,mismatch,&bsso,1,cs.depth,0,0); + break; + case DynamicSemiComplete: + DynamicSemiCompleteMethod(match,mismatch,&bsso,1,cs.depth,0,0); + break; + case SemiSubtractive: + SemiSubtractiveMethod(&bsso,cs.depth); + break; + case FewestPeptides: + FewestPeptidesMethod(&bsso,cs.depth); + break; + case FewestPeptidesChoice: + FewestPeptidesChoiceMethod(&bsso,cs.depth); + break; + case FastFewestPeptides: + FastFewestPeptidesMethod(&bsso,cs.depth); + break; + case FastFewestPeptidesChoice: + FastFewestPeptidesChoiceMethod(&bsso,cs.depth); + break; + case Basic: + default: + BasicMethod(match,mismatch,&bsso,1,cs.depth,sa.predPep->size()-1); + break; + } + + //Clean up memory + delete [] match; + delete [] mismatch; + + //Track analysis times + getExactTime(stopTime); + tmpTime1=toMicroSec(stopTime); + tmpTime2=toMicroSec(startTime); + analysisTime+=tmpTime1-tmpTime2; + + //if we exceeded our threshold, output the data to file or store it in memoryt + if(bsso.corr > cs.corr) { + if(!bMem){ + if(cs.reducedOutput) WritePepLine(bsso,PT,fptr,2); + else if(cs.xml) WritePepLine(bsso,PT,fptr,1); + else WritePepLine(bsso,PT,fptr,0); + } else { + ResultToMem(bsso,PT); + } + } + + return true; +} + +double CHardklor::LinReg(float *match, float *mismatch){ + + int i,sz; + double sxx=0,syy=0,sxy=0; + vector<sFloat> v; + sFloat tmp; + + //Correlate matches + for(i=0;i<sa.peaks.size();i++){ + tmp.fLower = sa.peaks.at(i).intensity; + tmp.fUpper = match[i]; + v.push_back(tmp); + } + + //Correlate mismatches with 0 + for(i=0;i<sa.mismatchSize;i++){ + if(mismatch[i]>0){ + tmp.fLower = 0; + tmp.fUpper = mismatch[i]; + v.push_back(tmp); + } + } + + //Cosine angle correlation + sxy=0; + sxx=0; + syy=0; + sz=(int)v.size(); + for(i=0;i<sz;i++){ + sxy += (v.at(i).fLower*v.at(i).fUpper); + sxx += (v.at(i).fLower*v.at(i).fLower); + syy += (v.at(i).fUpper*v.at(i).fUpper); + } + + if(sxx>0 && syy>0 && sxy>0) return sxy/sqrt(sxx*syy); + else return 0; + +} + + +void CHardklor::BasicMethod(float *match, float *mismatch,SSObject *combo, + int depth, int maxDepth, int start){ + + SSObject bestCombo = *combo; + SSObject re... [truncated message content] |