Example #1
0
    virtual void read(const std::string& filename, const std::string& head, MSData& result, int runIndex = 0) const
    {
        if (runIndex != 0)
            throw ReaderFail("[Reader_mzML::read] multiple runs not supported");

        shared_ptr<istream> is(new pwiz::util::random_access_compressed_ifstream(filename.c_str()));
        if (!is.get() || !*is)
            throw runtime_error(("[Reader_mzML::read] Unable to open file " + filename).c_str());

        switch (type(*is))
        {
            case Type_mzML:
            {
                Serializer_mzML::Config config;
                config.indexed = false;
                Serializer_mzML serializer(config);
                serializer.read(is, result);
                break;
            }
            case Type_mzML_Indexed:
            {
                Serializer_mzML serializer;
                serializer.read(is, result);
                break;
            }
            case Type_Unknown:
            default:
            {
                throw runtime_error("[MSDataFile::Reader_mzML] This isn't happening.");
            }
        }

        fillInCommonMetadata(filename, result);
    }
void testHasBinaryData(SpectrumListPtr sl)
{
    if (os_) *os_ << "testHasBinaryData:\n";

    MSData msd;
    examples::initializeTiny(msd);

    shared_ptr<stringstream> ss(new stringstream);
    Serializer_mzML serializer;
    serializer.write(*ss, msd);

    MSData msd2;
    serializer.read(ss, msd2);

    sl = msd2.run.spectrumListPtr;

    {
        SpectrumList_Filter filter(sl, HasBinaryDataPredicate(DetailLevel_FullMetadata));
        unit_assert(filter.empty());
    }

    {
        SpectrumList_Filter filter(sl, HasBinaryDataPredicate(DetailLevel_FullData));
    
        if (os_) 
        {
            printSpectrumList(filter, *os_);
            *os_ << endl;
        }

        unit_assert_operator_equal(4, filter.size());
    }
}