yat/omic/BamReadFilter.cc

Code
Comments
Other
Rev Date Author Line
2994 10 Mar 13 peter 1 // $Id$
2994 10 Mar 13 peter 2
2994 10 Mar 13 peter 3 /*
4359 23 Aug 23 peter 4   Copyright (C) 2013, 2018 Peter Johansson
2994 10 Mar 13 peter 5
2994 10 Mar 13 peter 6   This file is part of the yat library, http://dev.thep.lu.se/yat
2994 10 Mar 13 peter 7
2994 10 Mar 13 peter 8   The yat library is free software; you can redistribute it and/or
2994 10 Mar 13 peter 9   modify it under the terms of the GNU General Public License as
2994 10 Mar 13 peter 10   published by the Free Software Foundation; either version 3 of the
2994 10 Mar 13 peter 11   License, or (at your option) any later version.
2994 10 Mar 13 peter 12
2994 10 Mar 13 peter 13   The yat library is distributed in the hope that it will be useful,
2994 10 Mar 13 peter 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
2994 10 Mar 13 peter 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2994 10 Mar 13 peter 16   General Public License for more details.
2994 10 Mar 13 peter 17
2994 10 Mar 13 peter 18   You should have received a copy of the GNU General Public License
3752 17 Oct 18 peter 19   along with yat. If not, see <http://www.gnu.org/licenses/>.
2994 10 Mar 13 peter 20 */
2994 10 Mar 13 peter 21
2994 10 Mar 13 peter 22 #include <config.h>
2994 10 Mar 13 peter 23
2994 10 Mar 13 peter 24 #include "BamReadFilter.h"
2994 10 Mar 13 peter 25
2994 10 Mar 13 peter 26 #include "BamRead.h"
2994 10 Mar 13 peter 27
2994 10 Mar 13 peter 28 namespace theplu {
2994 10 Mar 13 peter 29 namespace yat {
2994 10 Mar 13 peter 30 namespace omic {
2994 10 Mar 13 peter 31
2994 10 Mar 13 peter 32   BamReadFilter::BamReadFilter(unsigned char q, unsigned int filtered,
2994 10 Mar 13 peter 33                                unsigned int required)
2994 10 Mar 13 peter 34     : mapQ_(q), filtered_(filtered), required_(required)
2994 10 Mar 13 peter 35   {
2994 10 Mar 13 peter 36   }
2994 10 Mar 13 peter 37
2994 10 Mar 13 peter 38
3361 24 Nov 14 peter 39   bool BamReadFilter::operator()(const BamRead& bam) const
2994 10 Mar 13 peter 40   {
2994 10 Mar 13 peter 41     if (bam.core().qual < mapQ_)
2994 10 Mar 13 peter 42       return false;
2994 10 Mar 13 peter 43     if (bam.core().flag & filtered_)
2994 10 Mar 13 peter 44       return false;
2994 10 Mar 13 peter 45     return (bam.core().flag & required_) == required_;
2994 10 Mar 13 peter 46   }
2994 10 Mar 13 peter 47
2994 10 Mar 13 peter 48 }}}