PacificBiosciences / pbbioconda

PacBio Secondary Analysis Tools on Bioconda. Contains list of PacBio packages available via conda.
BSD 3-Clause Clear License
252 stars 44 forks source link

Bug in actc --chunk #605

Closed gevro closed 1 year ago

gevro commented 1 year ago

Hi, I'm running actc version:

actc 0.4.0

Using:
  actc     : 0.4.0 (commit 0.4.0)
  pbbam    : 2.4.99 (commit v2.4.0-23-g59248fe)
  pbcopper : 2.3.99 (commit v2.3.0-9-g4eb7ac8)
  boost    : 1.81
  htslib   : 1.17
  zlib     : 1.2.13

This command:

sbatch -a 1-20 -t 360 --mem=48G --wrap "actc -j 4 --chunk \$SLURM_ARRAY_TASK_ID/20 subreads.bam aligned.ccs.bam aligned.ccs.actc.\$SLURM_ARRAY_TASK_ID.bam"

For some reason it is consistently outputting empty fasta (and therefore empty BAM) for most of the chunks, and the same chunks every time are empty. Other chunks are running fine. It must be a bug in the chunk feature of actc

armintoepfer commented 1 year ago

Are your ccs reads sorted by ZMW id? If not, sort the file using samtools sort -t zm, or wait another week as I just implemented chunking for unsorted input

armintoepfer commented 1 year ago

Try this, it's a work in progress https://github.com/PacificBiosciences/actc/commit/9157141ef29f2b2c46348e63beddd1aaac109376

gevro commented 1 year ago

No, the ccs reads are sorted by chromosome position because they are post-pbmm2 alignment + sort.

Thanks for the quick update. I will try it.

gevro commented 1 year ago

I'm getting a build error:

[127/332] Compiling C++ object subprojects/pbbam/tools/ccs-kinetics-bys...ify.p/ccs-kinetics-bystrandify_src_CcsKineticsBystrandifyWorkflow.cpp.
In file included from /share/apps/boost/1.74.0/intel/include/boost/mpl/int.hpp:20,
                 from /share/apps/boost/1.74.0/intel/include/boost/mpl/lambda_fwd.hpp:23,
                 from /share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/na_spec.hpp:18,
                 from /share/apps/boost/1.74.0/intel/include/boost/mpl/has_xxx.hpp:20,
                 from /share/apps/boost/1.74.0/intel/include/boost/range/detail/extract_optional_type.hpp:19,
                 from /share/apps/boost/1.74.0/intel/include/boost/range/mutable_iterator.hpp:21,
                 from /share/apps/boost/1.74.0/intel/include/boost/range/iterator.hpp:20,
                 from /share/apps/boost/1.74.0/intel/include/boost/range/begin.hpp:20,
                 from /share/apps/boost/1.74.0/intel/include/boost/algorithm/string/predicate.hpp:16,
                 from ../subprojects/pbbam/tools/ccs-kinetics-bystrandify/src/CcsKineticsBystrandifyWorkflow.cpp:12:
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/static_cast.hpp:24:66: warning: useless cast to type ‘int’ [-Wuseless-cast]
 #   define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
                                                                  ^
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/integral_wrapper.hpp:36:95: note: in definition of macro ‘AUX_WRAPPER_INST’
 #       define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
                                                                                               ^~~~~
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/integral_wrapper.hpp:72:31: note: in expansion of macro ‘BOOST_MPL_AUX_STATIC_CAST’
     typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/static_cast.hpp:24:66: warning: useless cast to type ‘int’ [-Wuseless-cast]
 #   define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
                                                                  ^
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/integral_wrapper.hpp:36:95: note: in definition of macro ‘AUX_WRAPPER_INST’
 #       define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
                                                                                               ^~~~~
/share/apps/boost/1.74.0/intel/include/boost/mpl/aux_/integral_wrapper.hpp:73:31: note: in expansion of macro ‘BOOST_MPL_AUX_STATIC_CAST’
     typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../subprojects/pbbam/include/pbbam/Deleters.h:8,
                 from ../subprojects/pbbam/include/pbbam/BamRecordImpl.h:7,
                 from ../subprojects/pbbam/include/pbbam/BamRecord.h:7,
                 from ../subprojects/pbbam/include/pbbam/BamReader.h:8,
                 from ../subprojects/pbbam/tools/ccs-kinetics-bystrandify/src/CcsKineticsBystrandifyWorkflow.cpp:22:
/share/apps/htslib/1.14/intel/include/htslib/sam.h: In function ‘const uint8_t* sam_format_aux1(const uint8_t*, uint8_t, const uint8_t*, const uint8_t*, kstring_t*)’:
/share/apps/htslib/1.14/intel/include/htslib/sam.h:1495:45: warning: implicit conversion from ‘float’ to ‘double’ when passing argument to function [-Wdouble-promotion]
             ksprintf(ks, "f:%g", le_to_float(s));
                                  ~~~~~~~~~~~^~~
In file included from /share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:28,
                 from /share/apps/boost/1.74.0/intel/include/boost/icl/discrete_interval.hpp:16,
                 from ../subprojects/pbcopper/include/pbcopper/data/Interval.h:9,
                 from ../subprojects/pbcopper/include/pbcopper/data/ReadId.h:6,
                 from ../subprojects/pbcopper/include/pbcopper/data/Read.h:11,
                 from ../subprojects/pbcopper/include/pbcopper/data/MappedRead.h:8,
                 from ../subprojects/pbbam/include/pbbam/BamRecord.h:20,
                 from ../subprojects/pbbam/include/pbbam/BamReader.h:8,
                 from ../subprojects/pbbam/tools/ccs-kinetics-bystrandify/src/CcsKineticsBystrandifyWorkflow.cpp:22:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval_bounds.hpp: In function ‘boost::icl::interval_bounds boost::icl::inner_bounds(boost::icl::interval_bounds, boost::icl::interval_bounds)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval_bounds.hpp:54:64: warning: useless cast to type ‘class boost::icl::interval_bounds’ [-Wuseless-cast]
 { return interval_bounds(x1.reverse_right() | x2.reverse_left()); }
                                                                ^
In file included from /share/apps/boost/1.74.0/intel/include/boost/icl/discrete_interval.hpp:16,
                 from ../subprojects/pbcopper/include/pbcopper/data/Interval.h:9,
                 from ../subprojects/pbcopper/include/pbcopper/data/ReadId.h:6,
                 from ../subprojects/pbcopper/include/pbcopper/data/Read.h:11,
                 from ../subprojects/pbcopper/include/pbcopper/data/MappedRead.h:8,
                 from ../subprojects/pbbam/include/pbbam/BamRecord.h:20,
                 from ../subprojects/pbbam/include/pbbam/BamReader.h:8,
                 from ../subprojects/pbbam/tools/ccs-kinetics-bystrandify/src/CcsKineticsBystrandifyWorkflow.cpp:22:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::mpl::and_<boost::icl::is_static_left_open<Type>, boost::icl::is_discrete<typename boost::icl::interval_traits<Type>::domain_type> >, Type>::type boost::icl::singleton(const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:111:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:112:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::icl::is_discrete_static_open<Type>, Type>::type boost::icl::singleton(const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:124:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:125:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::mpl::and_<boost::icl::is_static_left_open<Type>, boost::detail::is_incrementable<typename boost::icl::interval_traits<Type>::domain_type> >, Type>::type boost::icl::detail::unit_trail(const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:180:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:181:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::mpl::and_<boost::icl::is_static_open<Type>, boost::icl::is_discrete<typename boost::icl::interval_traits<Type>::domain_type> >, Type>::type boost::icl::detail::unit_trail(const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:197:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:198:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::icl::is_static_left_open<Type>, Type>::type boost::icl::hull(const typename boost::icl::interval_traits<Type>::domain_type&, const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:293:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::icl::is_static_open<Type>, Type>::type boost::icl::hull(const typename boost::icl::interval_traits<Type>::domain_type&, const typename boost::icl::interval_traits<Type>::domain_type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:326:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::mpl::and_<boost::mpl::or_<boost::icl::is_static_right_open<Type>, boost::icl::is_static_open<Type> >, boost::icl::is_discrete<typename boost::icl::interval_traits<Type>::domain_type> >, typename boost::icl::interval_traits<Type>::domain_type>::type boost::icl::last(const Type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:424:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:425:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp: In function ‘typename boost::enable_if<boost::icl::is_discrete_interval<Type>, typename boost::icl::interval_traits<Type>::domain_type>::type boost::icl::last(const Type&)’:
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:436:60: warning: typedef ‘domain_type’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_type    domain_type;
                                                            ^~~~~~~~~~~
/share/apps/boost/1.74.0/intel/include/boost/icl/concept/interval.hpp:437:60: warning: typedef ‘domain_compare’ locally defined but not used [-Wunused-local-typedefs]
     typedef typename interval_traits<Type>::domain_compare domain_compare;
                                                            ^~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
armintoepfer commented 1 year ago

Aligned reads are not supported.