Giter VIP home page Giter VIP logo

mudskipper's People

Contributors

gmarcais avatar hosseinasghari avatar janoppelt avatar rob-p avatar sjbaker47 avatar tejastemker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mudskipper's Issues

Disagreement with the annotation when there is a spliced alignment

The code doesn't properly check the splicing when converting alignments.
For example in an alignment with CIGAR 9M477N41M86N25M, the middle matched segment should extend to the boundaries of the exon on both sides.
That means some spurious alignments might be reported due to this bug.

Differences in quantification when using transcriptome BAM from Muskipper or STAR

Hi, I would like to report some differences in the quantification produced by Salmon when doing pseudoalignment, when using transcriptomic BAM produced by STAR and when using the transcriptomic BAM produced by Mudskipper.

Pearson correlation of log2(raw counts)

salmon_mudskipper salmon_star salmon quant
salmon_mudskipper 1.000000 0.611192 0.578433
salmon_star 0.611192 1.000000 0.942535
salmon quant 0.578433 0.942535 1.000000

The results when using the transcriptomic BAM produced by STAR seems much more similar to the results when using the transcriptomic BAM from Mudskipper

Following is the command lines and software version.

STAR=v2.7.8a
mudskipper=commit 3717465
salmon=1.9.0

STAR  --runThreadN 10 --genomeDir /ensembl/hs104/ --readFilesIn SRR3670977.fastq --outSAMtype BAM Unsorted --genomeLoad NoSharedMemory --limitOutSJcollapsed 5000000 --outSAMunmapped Within --quantMode TranscriptomeSAM GeneCounts 

mudskipper bulk --gtf Homo_sapiens.GRCh38.104.primary_assembly.gtf --alignment Aligned.out.bam --out Aligned.mudskipperout.bam

salmon quant --libType A --alignments Aligned.mudskipperout.bam --targets Homo_sapiens.GRCh38.cdna.all.104.fa.gz --output salmon_mudskipper --threads 10

salmon quant --libType A --alignments Aligned.toTranscriptome.out.bam --targets Homo_sapiens.GRCh38.cdna.all.104.fa.gz --output salmon_star --threads 10

salmon quant --libType A --threads 10 --index Homo_sapiens.GRCh38.cdna.all.104.salmon_index --output salmon_quant -r SRR3670977.fastq

I wanted to know if you have some hints of what could happening here.

Support overhanging alignments

Currently if a read is overhanging on one end of the transcript, it will not be reported. However, we should improve on this by softclipping the overhanging bases.

No mapped read in output bam with gff file

Hello,

I want to convert my bam file mapped on genomic assembly (bam by bowtie2) to my predicted genes (gff by prokka). Next I want to use this bam as salmon input.

But when i use the mudskipper bulk command line no reads are mapped on the transcriptome.

I thinks, they have a bug when the gff is loading because This information are logged :
2024-04-18T16:04:35Z INFO mudskipper::bam] Number of reference sequences: 0

I also test our gff in tests folder and i have the same results.

mudskipper bulk -t 1 -a mudskipper/tests/NC_002333.2.sam -g mudskipper/tests/NC_002333.2.gff -o demo.bam
[2024-04-18T16:04:35Z INFO  mudskipper] Mudskipper started...
[2024-04-18T16:04:35Z INFO  mudskipper::annotation] reading the gff file and building the tree.
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 102/102
[2024-04-18T16:04:35Z INFO  mudskipper::annotation] building the tree
[2024-04-18T16:04:35Z INFO  mudskipper::annotation] Time to build the tree: 6.540013ms
[2024-04-18T16:04:35Z INFO  mudskipper::bam] Number of reference sequences: 0
[2024-04-18T16:04:35Z INFO  mudskipper::bam] thread count: 1
[2024-04-18T16:04:35Z INFO  mudskipper] Mudskipper finished.

When i use the gtf test file reference sequence are detected and sequence are mapped:

mudskipper bulk -t 1 -a mudskipper/tests/NC_002333.2.sam -g mudskipper/tests/NC_002333.2.gtf -o demo.bam
[2024-04-18T16:07:56Z INFO  mudskipper] Mudskipper started...
[2024-04-18T16:07:56Z INFO  mudskipper::annotation] reading the gtf file and building the tree.
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ 100/100
[2024-04-18T16:07:56Z INFO  mudskipper::annotation] building the tree
[2024-04-18T16:07:56Z INFO  mudskipper::annotation] Time to build the tree: 9.174297ms
[2024-04-18T16:07:56Z INFO  mudskipper::bam] Number of reference sequences: 24
[2024-04-18T16:07:56Z INFO  mudskipper::bam] thread count: 1
[2024-04-18T16:07:56Z INFO  mudskipper] Mudskipper finished.

Regards,

Steven

assertion failure: last>=first

I am attempting to do a bulk RNA-Seq genome alignment conversion to transcriptome coordinates and keep encountering this error:

thread 'main' panicked at 'assertion failed: last >= first', /home/lkmack/.cargo/registry/src/github.com-1ecc6299db9ec823/coitrees-0.2.1/src/lib.rs:196:9
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

I'm having a hard time figuring out if this is indicating an issue in my bam files or in my gtf file.

So far, I have checked the gtf file to ensure the start and stop coordinates are correct which they are. I have also run a second samtools sort attempt on my bam files in case this was the issue with no luck. Any pointers are appreciated.

Unable to run with spatial bam

Hi, I am running into what looks like a similar issue as in #24 , but I am not sure if this is very related. Some important context is that I am trying to convert an aligned bam file output from the spaceranger count (version 3.0.1) pipeline using this dataset. My goal is to get a transcript-level alignment for this dataset, which I do not believe is provided by design in the spaceranger count pipeline, as it aligns reads to the transcriptome positions using STAR but uses a probe set reference which map to genes, not transcripts, in the final alignment. As such, I downloaded what I believe to be the exact reference transcriptome files used in the transcriptome I ran 10x's pipeline with.

Soon afterwards, I came across this repository, which seems like a promising alternative to the old sam-xlate tool which I have not been able to successfully get running. I am able to successfully download and install mudskipper with no issues, but I am not able to make the conversion step happen. I am able to construct an index from my .gtf file, but after doing so I get the following error:

$ RUST_BACKTRACE=debug mudskipper sc --index mudskipper_index/ --alignment possorted_genome_bam.bam --out mudskipper_modulated.bam           
[2024-07-05T23:01:35Z INFO  mudskipper] Mudskipper started...
thread 'main' panicked at src/main.rs:241:62:
called `Option::unwrap()` on a `None` value 
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic
   3: core::option::unwrap_failed
   4: mudskipper::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

I also ran it directly on my .gtf file directly with a full backtrace from rust, which produces the same error:

$ RUST_BACKTRACE=full mudskipper sc -a possorted_genom
e_bam.bam -g gencode.v32.primary_assembly.annotation.gtf -o mudskipper_out.bam                                                                                                  
[2024-07-05T22:46:07Z INFO  mudskipper] Mudskipper started...                                                                                                               
thread 'main' panicked at src/main.rs:241:62:                                                                                                                               
called `Option::unwrap()` on a `None` value                                                                                                                                 
stack backtrace:                                                                                                                                                            
   0:     0x556c626f2f35 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1e1a1972118942ad                                             
   1:     0x556c627196db - core::fmt::write::hc090a2ffd6b28c4a                                                                                                              
   2:     0x556c626f058f - std::io::Write::write_fmt::h8898bac6ff039a23                                                                                                     
   3:     0x556c626f2d0e - std::sys_common::backtrace::print::ha96650907276675e                                                                                             
   4:     0x556c626f4179 - std::panicking::default_hook::{{closure}}::h215c2a0a8346e0e0                                                                                     
   5:     0x556c626f3ebd - std::panicking::default_hook::h207342be97478370                                                                                                  
   6:     0x556c626f4613 - std::panicking::rust_panic_with_hook::hac8bdceee1e4fe2c                                                                                          
   7:     0x556c626f44bb - std::panicking::begin_panic_handler::{{closure}}::h00d785e82757ce3c                                                                              
   8:     0x556c626f33f9 - std::sys_common::backtrace::__rust_end_short_backtrace::h1628d957bcd06996                                                                        
   9:     0x556c626f4227 - rust_begin_unwind                                                                                                                                
  10:     0x556c6247ce53 - core::panicking::panic_fmt::hdc63834ffaaefae5                                                                                                    
  11:     0x556c6247cefc - core::panicking::panic::h75b3c9209f97d725                                                                                                        
  12:     0x556c6247cdf9 - core::option::unwrap_failed::h4b4353bf890a85df                                                                                                   
  13:     0x556c624a1561 - mudskipper::main::h2ccab52c507eab22                                                                                                              
  14:     0x556c6249ac03 - std::sys_common::backtrace::__rust_begin_short_backtrace::h05a55dc8165240b4                                                                      
  15:     0x556c624bde69 - std::rt::lang_start::{{closure}}::h84d4a2e6defe585d                                                                                              
  16:     0x556c626e8cd0 - std::rt::lang_start_internal::h3ed4fe7b2f419135                                                                                                  
  17:     0x556c624a23c5 - main                                                                                                                                             
  18:     0x7fdd9511dd90 - __libc_start_call_main                                                                                                                           
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16                                                                                        
  19:     0x7fdd9511de40 - __libc_start_main_impl                                                                                                                           
                               at ./csu/../csu/libc-start.c:392:3                                                                                                           
  20:     0x556c6247d505 - _start                                                                                                                                           
  21:                0x0 - <unknown>

Any assistance with this issue would be greatly appreciated. Here are some details of my setup (Ubuntu 22.04) in case these will be of any help:

$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/chris/.rustup

stable-x86_64-unknown-linux-gnu (default)
rustc 1.79.0 (129f3b996 2024-06-10)
$ git show
commit effd3fac03bc09d313e84fa680f18fdc6f3a16a0 (HEAD -> main, origin/main, origin/HEAD)
Merge: 6aabf25 257247d
Author: gmarcais <[email protected]>
Date:   Tue May 28 10:13:08 2024 -0400

    Merge pull request #41 from OceanGenomics/bugfix
    
    Some documentation.
$ salmon --version
salmon 1.10.3

Supporting supplementary alignments

Currently the code does not support supplementary alignments. An example from ERR188079 sample...
Here are the alignments from STAR:

HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    chr2    190930498       255     35S40M  =       190930482       0       GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     chr2    190930482       255     74M1S   =       190930514       67      GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 83      chr2    190930514       255     35M40S  =       190930482       -67     GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:0   SA:Z:chr2,190930498,-,35S40M,255,0;

The first and third alignments in are supplementary. But mudskipper reports this:

HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000412247.1       34      255     74M1S   =       50      -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000412247.1       50      255     35S40M  =       34      59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000409626.5       525     255     74M1S   =       541     -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000409626.5       541     255     35S40M  =       525     59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000457316.5       513     255     74M1S   =       529     -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000457316.5       529     255     35S40M  =       513     59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000320717.8       1735    255     74M1S   =       1751    -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000320717.8       1751    255     35S40M  =       1735    59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000409215.5       84      255     74M1S   =       100     -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000409215.5       100     255     35S40M  =       84      59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000409428.5       105     255     74M1S   =       121     -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000409428.5       121     255     35S40M  =       105     59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 163     ENST00000338435.8       1722    255     74M1S   =       1738    -59     GTTGTCCCCAATGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATG      BC@FFFFFHHGHGHIGIJJJCHHIGJJHIJIJGFHEIJIJIGGIGGEGIIIGIIIJJHIJIJCGGGIIJJJ;DHH     NH:i:1  HI:i:1  AS:i:103        nM:i:2  NM:i:2
HWI-ST758:71:C06LWACXX:1:1101:2171:2414 2129    ENST00000338435.8       1738    255     35S40M  =       1722    59      GTCTCCTCCTCTGGATAAGATGGGCAACAGTGTTATGGGTATGATGTGCTGGTCTCCTCCTCTGGATAAGATGGG      FFDEHEAJJIJJJHGGIIJJJJJJJHHHHCEIGIHIJIGGIIJJIIIIJJJIGIGJHGIIIJHHHHFFFFFFC@@     NH:i:1  HI:i:1  AS:i:39 nM:i:0  NM:i:0  SA:Z:chr2,190930514,-,35M40S,255,0;

This makes things confusing for Salmon as it complains:

WARNING: Detected suspicious pair ---
        The proper-pair statuses are inconsistent:
read1 [HWI-ST758:71:C06LWACXX:1:1101:2171:2414] : proper-pair; mapped; matemapped

read2 : [HWI-ST758:71:C06LWACXX:1:1101:2171:2414] : no proper-pair; mapped; matemapped

'main' panicked at 'index out of bounds: the len is 1 but the index is 1'

Built the index first using gencode v40

mudskipper index --gtf /SAN/vyplab/vyplab_reference_genomes/annotation/human/GRCh38/gencode.v40.annotation.gtf --dir-index /SAN/vyplab/vyplab_reference_genomes/mudskipper_indices/human.gencode.v40

And then tried to convert with

mudskipper bulk --index /SAN/vyplab/vyplab_reference_genomes/mudskipper_indices/human.gencode.v40/ --alignment my.sorted.bam --out my.mud.bam --threads 4

However this freaks out immediately with:


[2022-05-02T12:43:07Z INFO  mudskipper] Mudskipper started...
[2022-05-02T12:43:07Z INFO  mudskipper::annotation] Loading parsed GTF...
[2022-05-02T12:43:08Z INFO  mudskipper::bam] Number of reference sequences: 246624
[2022-05-02T12:43:09Z INFO  mudskipper::bam] thread count: 4 in total
[2022-05-02T12:43:09Z INFO  mudskipper::bam] thread count: 2 for reading
[2022-05-02T12:43:09Z INFO  mudskipper::bam] thread count: 2 for writing
thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 1', src/query_bam_records.rs:165:33
stack backtrace:
   0:     0x5599e7546c2d - std::backtrace_rs::backtrace::libunwind::trace::hee598835bc88d35b
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x5599e7546c2d - std::backtrace_rs::backtrace::trace_unsynchronized::h9cdc730ba5cf5d72
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x5599e7546c2d - std::sys_common::backtrace::_print_fmt::h75aeaf7ed30e43fa
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x5599e7546c2d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h606862f787600875
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x5599e7569a9c - core::fmt::write::he803f0f418caf762
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/fmt/mod.rs:1190:17
   5:     0x5599e7542fc8 - std::io::Write::write_fmt::h70bc45872f37e7bb
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/io/mod.rs:1657:15
   6:     0x5599e7548cd7 - std::sys_common::backtrace::_print::h64d038cf8ac3e13e
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x5599e7548cd7 - std::sys_common::backtrace::print::h359300b4a7fccf65
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x5599e7548cd7 - std::panicking::default_hook::{{closure}}::hf51be35e2f510149
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:295:22
   9:     0x5599e75489a0 - std::panicking::default_hook::h03ca0f22e1d2d25e
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:314:9
  10:     0x5599e7549429 - std::panicking::rust_panic_with_hook::h3b7380e99b825b63
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:698:17
  11:     0x5599e7549117 - std::panicking::begin_panic_handler::{{closure}}::h8e849d0710154ce0
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:588:13
  12:     0x5599e75470f4 - std::sys_common::backtrace::__rust_end_short_backtrace::hedcdaddbd4c46cc5
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/sys_common/backtrace.rs:138:18
  13:     0x5599e7548e29 - rust_begin_unwind
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:584:5
  14:     0x5599e737dcb3 - core::panicking::panic_fmt::he1bbc7336d49a357
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:143:14
  15:     0x5599e737dbf2 - core::panicking::panic_bounds_check::h7777e18766a27b0b
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/panicking.rs:85:5
  16:     0x5599e73a4d1f - mudskipper::query_bam_records::BAMQueryRecordReader::group_records::h3e557bbfbf98c5b3
  17:     0x5599e73a55cd - mudskipper::query_bam_records::BAMQueryRecordReader::get_next_query_records::hd44f4b13b6418ce6
  18:     0x5599e73946dd - mudskipper::bam::bam2bam::h107271027deeb930
  19:     0x5599e739069c - mudskipper::main::hd9af9ad03c0768b5
  20:     0x5599e7393d23 - std::sys_common::backtrace::__rust_begin_short_backtrace::h6d04830762f92fce
  21:     0x5599e73a6249 - std::rt::lang_start::{{closure}}::h3a11e2c99d3705be
  22:     0x5599e7546311 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hb7014f43484a8b4e
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:259:13
  23:     0x5599e7546311 - std::panicking::try::do_call::h7bc9dc436daeb8c7
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:492:40
  24:     0x5599e7546311 - std::panicking::try::h653d68a27ff5f175
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:456:19
  25:     0x5599e7546311 - std::panic::catch_unwind::h9d739f9f59895e68
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panic.rs:137:14
  26:     0x5599e7546311 - std::rt::lang_start_internal::{{closure}}::hf006f2bc7ce22bbe
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/rt.rs:128:48
  27:     0x5599e7546311 - std::panicking::try::do_call::hfb39d6df61a2e69f
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:492:40
  28:     0x5599e7546311 - std::panicking::try::h13e2d225134958ac
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:456:19
  29:     0x5599e7546311 - std::panic::catch_unwind::h3bd49b5a5dfb1a50
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panic.rs:137:14
  30:     0x5599e7546311 - std::rt::lang_start_internal::h2ba92edce36c035e
                               at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/rt.rs:128:20
  31:     0x5599e7391632 - main
  32:     0x2b9c394ed555 - __libc_start_main
  33:     0x5599e737e4e9 - <unknown>
  34:                0x0 - <unknown>

I get the same error on a few other BAMs I've tried as well

And the same error persist if I do this

mudskipper bulk --gtf /SAN/vyplab/vyplab_reference_genomes/annotation/human/GRCh38/gencode.v40.annotation.gtf --alignment my.sorted.bam --out my.mud.bam --threads 4

Off by one error in setting the number of threads

In setting the number of threads for BAM/SAM reader/writer, the function accepts the extra number of threads, not the total. That means the current implementation is assigning one more threads in case of multi-threading.

Handle unmapped reads more properly

Currently if one mate of the read is aligned while the other mate is unaligned, mudskipper treats it as a single-end read. This is not quite right. In the transcriptome bam, also one end should remain unmapped (with proper bit in FLAG set and also * as target).

Error in reading annotation file.

hello! I hope this message finds you well. I'm excited to use this tool. I am getting the following output from mudskipper:

mudskipper index -g genome.gtf -d mdsk_idx 
[2023-11-10T21:36:10Z INFO  mudskipper] Mudskipper started...
[2023-11-10T21:36:10Z INFO  mudskipper::annotation] reading the gtf file and building the tree.
thread 'main' panicked at 'Error in reading annotation file.: Failed to read GFF from "genome.gtf"

Caused by:
    No such file or directory (os error 2)', src/annotation.rs:34:62
stack backtrace:
   0:     0x561cf43f92bc - std::backtrace_rs::backtrace::libunwind::trace::h09f7e4e089375279
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x561cf43f92bc - std::backtrace_rs::backtrace::trace_unsynchronized::h1ec96f1c7087094e
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x561cf43f92bc - std::sys_common::backtrace::_print_fmt::h317b71fc9a5cf964
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x561cf43f92bc - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he3555b48e7dfe7f0
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x561cf441a4ec - core::fmt::write::h513b07ca38f4fb1b
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/fmt/mod.rs:1149:17
   5:     0x561cf43f5e75 - std::io::Write::write_fmt::haf8c932b52111354
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/io/mod.rs:1697:15
   6:     0x561cf43fac50 - std::sys_common::backtrace::_print::h195c38364780a303
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x561cf43fac50 - std::sys_common::backtrace::print::hc09dfdea923b6730
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x561cf43fac50 - std::panicking::default_hook::{{closure}}::hb2e38ec0d91046a3
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:211:50
   9:     0x561cf43fa805 - std::panicking::default_hook::h60284635b0ad54a8
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:228:9
  10:     0x561cf43fb304 - std::panicking::rust_panic_with_hook::ha677a669fb275654
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:606:17
  11:     0x561cf43fade0 - std::panicking::begin_panic_handler::{{closure}}::h976246fb95d93c31
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:502:13
  12:     0x561cf43f9764 - std::sys_common::backtrace::__rust_end_short_backtrace::h38077ee5b7b9f99a
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:139:18
  13:     0x561cf43fad49 - rust_begin_unwind
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:498:5
  14:     0x561cf422d6c1 - core::panicking::panic_fmt::h35f3a62252ba0fd2
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
  15:     0x561cf422d7b3 - core::result::unwrap_failed::hb53671404b9e33c2
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/result.rs:1613:5
  16:     0x561cf425dcf9 - mudskipper::annotation::build_tree::ha6690eb761e85bf6
  17:     0x561cf423c21f - mudskipper::main::he54c8a7786ae8869
  18:     0x561cf42358a3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2f9d51d9957b9fc3
  19:     0x561cf4252bc9 - std::rt::lang_start::{{closure}}::hfb6f3d7d04aa35da
  20:     0x561cf43f8f4b - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h7e688d7cdfeb7e00
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:259:13
  21:     0x561cf43f8f4b - std::panicking::try::do_call::h4be824d2350b44c9
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
  22:     0x561cf43f8f4b - std::panicking::try::h0a6fc7affbe5088d
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
  23:     0x561cf43f8f4b - std::panic::catch_unwind::h22c320f732ec805e
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
  24:     0x561cf43f8f4b - std::rt::lang_start_internal::{{closure}}::hd38309c108fe679d
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:128:48
  25:     0x561cf43f8f4b - std::panicking::try::do_call::h8fcaf501f097a28e
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
  26:     0x561cf43f8f4b - std::panicking::try::h20e906825f98acc1
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
  27:     0x561cf43f8f4b - std::panic::catch_unwind::h8c5234dc632124ef
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
  28:     0x561cf43f8f4b - std::rt::lang_start_internal::hc4dd8cd3ec4518c2
                               at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:128:20
  29:     0x561cf423e2a2 - main
  30:     0x7f10d908009b - __libc_start_main
  31:     0x561cf422de61 - <unknown>

i tried to convert to other formats using agat and gffread, but still get the same message. in fact no matter the extension it says Failed to read GFF, so i wonder if it is correctly registering the file extension/type, but even when i have a gff it still fails. i am not very familiar with rust and was hoping you might help me interpret the backtrace or have ideas on the issue with my gtf.

btw i am using the following container: docker://quay.io/biocontainers/mudskipper:0.1.0--h9f5acd7_1.

Build a unmapped barcode frequency table

For some advanced features of alevin-fry, it needs a map that contains the number of unmapped reads for each barcode. Since that map is not required for performing quantification using alevin-fry for now, mudskipper creates an empty map. This should be modified with the proper content.

Inconsistent CIGAR strings

On sample ERR188079, Salmon prints this warning message when consuming mudskipper output generated from STAR alignments:

[2021-11-17 20:55:50.696] [jointLog] [warning] (in logLikelihood()) CIGAR string for read [HWI-ST758:71:C06LWACXX:1:1101:2482:20383] seems inconsistent. It refers to non-existant positions in the reference! Transcript name is ENST00000528619.5, length is 731, id is 145760. Read things refid is 145766
[2021-11-17 20:55:50.696] [jointLog] [warning] (in logLikelihood()) CIGAR string for read [HWI-ST758:71:C06LWACXX:1:1101:2482:20383] seems inconsistent. It refers to non-existant positions in the reference! Transcript name is ENST00000529421.5, length is 801, id is 145761. Read things refid is 145757
[2021-11-17 20:55:50.696] [jointLog] [warning] (in logLikelihood()) CIGAR string for read [HWI-ST758:71:C06LWACXX:1:1101:2482:20383] seems inconsistent. It refers to non-existant positions in the reference! Transcript name is ENST00000379060.8, length is 764, id is 145766. Read things refid is 145759
transcript index = 569, transcript length = 348

Wrong pairing of alignments

Again from ERR188079 sample... STAR reports:

HWI-ST758:71:C06LWACXX:1:1101:11011:4002        163     chr22   37225967        255     74M1S   =       37226011        748     CGGGGTGCCATCAGGCTTTGGGTGGGGATCCTGGAGGATCAGACCCATCTAGGTGGGAGCGCTGGGGTGCAACCC     @@CFFADDDFHHFIIIJIIJJJHJIGIJFIIIJJHIJGIJJJIIJJJJHHHHHHFFDBDCDDDDDDD8@BCDDDD     NH:i:1  HI:i:1  AS:i:147        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11011:4002        83      chr22   37226011        255     29M631N44M2S    =       37225967        -748    CCATCTAGGTGGGAGCGCTGGGGTGCAACCCCTAGAGGAGGCTGCAGGCGCGCTTCTGCTGCCGCGTGGGCTGGG     DDDDDDDDDCDDDDDDDDDDDDDDBDB@DDEEECFEFFFHHHGIJIJJIIJFIJJJIJJJJJHHHHHFFFFFC@C     NH:i:1  HI:i:1  AS:i:147        nM:i:0  NM:i:0

while mudskipper reports:

HWI-ST758:71:C06LWACXX:1:1101:11011:4002        99      ENST00000406508.5       662     255     73M2S   =       705     -32     CCATCTAGGTGGGAGCGCTGGGGTGCAACCCCTAGAGGAGGCTGCAGGCGCGCTTCTGCTGCCGCGTGGGCTGGG     DDDDDDDDDCDDDDDDDDDDDDDDBDB@DDEEECFEFFFHHHGIJIJJIIJFIJJJIJJJJJHHHHHFFFFFC@C     NH:i:1  HI:i:1  AS:i:147        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11024:4004        147     ENST00000406508.5       705     255     74M1S   =       662     32      CGGGGTGCCATCAGGCTTTGGGTGGGGATCCTGGAGGATCAGACCCATCTAGGTGGGAGCGCTGGGGTGCAACCC     ?@@D==@BDFBC<?BBDG?DHHIG:@@G@?DDHJGGIDFGIGIEIIHHFHHHG=CBDACBDDDDDDD8@DDDCDD     NH:i:1  HI:i:1  AS:i:149        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11011:4002        99      ENST00000249071.11      659     255     73M2S   =       702     -32     CCATCTAGGTGGGAGCGCTGGGGTGCAACCCCTAGAGGAGGCTGCAGGCGCGCTTCTGCTGCCGCGTGGGCTGGG     DDDDDDDDDCDDDDDDDDDDDDDDBDB@DDEEECFEFFFHHHGIJIJJIIJFIJJJIJJJJJHHHHHFFFFFC@C     NH:i:1  HI:i:1  AS:i:147        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11024:4004        147     ENST00000249071.11      702     255     74M1S   =       659     32      CGGGGTGCCATCAGGCTTTGGGTGGGGATCCTGGAGGATCAGACCCATCTAGGTGGGAGCGCTGGGGTGCAACCC     ?@@D==@BDFBC<?BBDG?DHHIG:@@G@?DDHJGGIDFGIGIEIIHHFHHHG=CBDACBDDDDDDD8@DDDCDD     NH:i:1  HI:i:1  AS:i:149        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11011:4002        99      ENST00000481215.1       363     255     73M2S   =       406     -32     CCATCTAGGTGGGAGCGCTGGGGTGCAACCCCTAGAGGAGGCTGCAGGCGCGCTTCTGCTGCCGCGTGGGCTGGG     DDDDDDDDDCDDDDDDDDDDDDDDBDB@DDEEECFEFFFHHHGIJIJJIIJFIJJJIJJJJJHHHHHFFFFFC@C     NH:i:1  HI:i:1  AS:i:147        nM:i:0  NM:i:0
HWI-ST758:71:C06LWACXX:1:1101:11024:4004        147     ENST00000481215.1       406     255     74M1S   =       363     32      CGGGGTGCCATCAGGCTTTGGGTGGGGATCCTGGAGGATCAGACCCATCTAGGTGGGAGCGCTGGGGTGCAACCC     ?@@D==@BDFBC<?BBDG?DHHIG:@@G@?DDHJGGIDFGIGIEIIHHFHHHG=CBDACBDDDDDDD8@DDDCDD     NH:i:1  HI:i:1  AS:i:149        nM:i:0  NM:i:0

Salmon correctly throws warning:

WARNING: Detected suspicious pair ---
        The names are different:
        read1 : HWI-ST758:71:C06LWACXX:1:1101:11011:4002
        read2 : HWI-ST758:71:C06LWACXX:1:1101:11024:4004

cargo build --release!

cargo build --release running for Mudskipper installation get me the error, Your help to fix it is so appreciated!

error[E0308]: mismatched types
--> src/annotation.rs:198:25
|
198 | strand: exon_strand,
| ^^^^^^^^^^^ expected enum Strand, found enum bio_types::strand::Strand
|
= note: perhaps two different versions of crate bio_types are being used?

For more information about this error, try rustc --explain E0308.
error: could not compile mudskipper due to previous error

Compile errors

MacBook M1 Max Pro

Dockerfile:

FROM ubuntu:focal as build

ARG MUDSKIPPER_VERSION

ENV DEBIAN_FRONTEND=noninteractive
ENV PATH=/root/.cargo/bin:$PATH

ADD https://github.com/OceanGenomics/mudskipper/archive/refs/tags/v${MUDSKIPPER_VERSION}.tar.gz mudskipper.tgz

RUN apt update \
    && apt install -y curl build-essential cmake \
    && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
    && mkdir mudskipper \
    && tar -C mudskipper --strip-components=1 -xzf mudskipper.tgz \
    && cd mudskipper \
    && cargo build --release \
    && mv target/release/mudskipper /usr/local/bin

FROM ubuntu:focal

COPY --from=build /usr/local/bin/mudskipper /usr/local/bin/mudskipper

Docker command: docker build -f Dockerfile.mudskipper -t mudskipper --build-arg MUDSKIPPER_VERSION=0.1.0 .

Errors:

#0 131.0 error[E0308]: mismatched types
#0 131.0    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:152:16
#0 131.0     |
#0 131.0 152 |             s: sam_copy.as_ptr() as *mut i8,
#0 131.0     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.0     |
#0 131.0     = note: expected raw pointer `*mut u8`
#0 131.0                found raw pointer `*mut i8`
#0 131.0 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:583:17
#0 131.1     |
#0 131.1 583 |                 c_str.as_ptr() as *mut i8,
#0 131.1     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:678:49
#0 131.1     |
#0 131.1 678 |                 let c_str = ffi::CStr::from_ptr(aux.offset(TYPE_ID_LEN).cast::<i8>());
#0 131.1     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*const i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:798:21
#0 131.1     |
#0 131.1 798 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:799:21
#0 131.1     |
#0 131.1 799 |                     b'A' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 799 |                     (b'A' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:805:21
#0 131.1     |
#0 131.1 805 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:806:21
#0 131.1     |
#0 131.1 806 |                     b'c' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 806 |                     (b'c' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:812:21
#0 131.1     |
#0 131.1 812 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:813:21
#0 131.1     |
#0 131.1 813 |                     b'C' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 813 |                     (b'C' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:819:21
#0 131.1     |
#0 131.1 819 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:820:21
#0 131.1     |
#0 131.1 820 |                     b's' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 820 |                     (b's' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:826:21
#0 131.1     |
#0 131.1 826 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:827:21
#0 131.1     |
#0 131.1 827 |                     b'S' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 827 |                     (b'S' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:833:21
#0 131.1     |
#0 131.1 833 |                     ctag,
#0 131.1     |                     ^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1     = note: expected raw pointer `*const u8`
#0 131.1                found raw pointer `*mut i8`
#0 131.1 
#0 131.1 error[E0308]: mismatched types
#0 131.1    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:834:21
#0 131.1     |
#0 131.1 834 |                     b'i' as i8,
#0 131.1     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.1     |
#0 131.1 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.1     |
#0 131.1 834 |                     (b'i' as i8).try_into().unwrap(),
#0 131.1     |                     +          +++++++++++++++++++++
#0 131.1 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:840:21
#0 131.2     |
#0 131.2 840 |                     ctag,
#0 131.2     |                     ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:841:21
#0 131.2     |
#0 131.2 841 |                     b'I' as i8,
#0 131.2     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.2     |
#0 131.2 841 |                     (b'I' as i8).try_into().unwrap(),
#0 131.2     |                     +          +++++++++++++++++++++
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:847:21
#0 131.2     |
#0 131.2 847 |                     ctag,
#0 131.2     |                     ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:848:21
#0 131.2     |
#0 131.2 848 |                     b'f' as i8,
#0 131.2     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.2     |
#0 131.2 848 |                     (b'f' as i8).try_into().unwrap(),
#0 131.2     |                     +          +++++++++++++++++++++
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:855:21
#0 131.2     |
#0 131.2 855 |                     ctag,
#0 131.2     |                     ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:856:21
#0 131.2     |
#0 131.2 856 |                     b'd' as i8,
#0 131.2     |                     ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.2     |
#0 131.2 856 |                     (b'd' as i8).try_into().unwrap(),
#0 131.2     |                     +          +++++++++++++++++++++
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:864:25
#0 131.2     |
#0 131.2 864 |                         ctag,
#0 131.2     |                         ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:865:25
#0 131.2     |
#0 131.2 865 |                         b'Z' as i8,
#0 131.2     |                         ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.2     |
#0 131.2 865 |                         (b'Z' as i8).try_into().unwrap(),
#0 131.2     |                         +          +++++++++++++++++++++
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:874:25
#0 131.2     |
#0 131.2 874 |                         ctag,
#0 131.2     |                         ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:875:25
#0 131.2     |
#0 131.2 875 |                         b'H' as i8,
#0 131.2     |                         ^^^^^^^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2 help: you can convert an `i8` to a `u8` and panic if the converted value doesn't fit
#0 131.2     |
#0 131.2 875 |                         (b'H' as i8).try_into().unwrap(),
#0 131.2     |                         +          +++++++++++++++++++++
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:884:25
#0 131.2     |
#0 131.2 884 |                         ctag,
#0 131.2     |                         ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:891:25
#0 131.2     |
#0 131.2 891 |                         ctag,
#0 131.2     |                         ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.2 error[E0308]: mismatched types
#0 131.2    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:900:25
#0 131.2     |
#0 131.2 900 |                         ctag,
#0 131.2     |                         ^^^^ expected `u8`, found `i8`
#0 131.2     |
#0 131.2     = note: expected raw pointer `*const u8`
#0 131.2                found raw pointer `*mut i8`
#0 131.2 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:907:25
#0 131.3     |
#0 131.3 907 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:916:25
#0 131.3     |
#0 131.3 916 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:923:25
#0 131.3     |
#0 131.3 923 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:932:25
#0 131.3     |
#0 131.3 932 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:939:25
#0 131.3     |
#0 131.3 939 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:948:25
#0 131.3     |
#0 131.3 948 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.3 error[E0308]: mismatched types
#0 131.3    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:955:25
#0 131.3     |
#0 131.3 955 |                         ctag,
#0 131.3     |                         ^^^^ expected `u8`, found `i8`
#0 131.3     |
#0 131.3     = note: expected raw pointer `*const u8`
#0 131.3                found raw pointer `*mut i8`
#0 131.3 
#0 131.4 error[E0308]: mismatched types
#0 131.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:964:25
#0 131.4     |
#0 131.4 964 |                         ctag,
#0 131.4     |                         ^^^^ expected `u8`, found `i8`
#0 131.4     |
#0 131.4     = note: expected raw pointer `*const u8`
#0 131.4                found raw pointer `*mut i8`
#0 131.4 
#0 131.4 error[E0308]: mismatched types
#0 131.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:971:25
#0 131.4     |
#0 131.4 971 |                         ctag,
#0 131.4     |                         ^^^^ expected `u8`, found `i8`
#0 131.4     |
#0 131.4     = note: expected raw pointer `*const u8`
#0 131.4                found raw pointer `*mut i8`
#0 131.4 
#0 131.4 error[E0308]: mismatched types
#0 131.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:980:25
#0 131.4     |
#0 131.4 980 |                         ctag,
#0 131.4     |                         ^^^^ expected `u8`, found `i8`
#0 131.4     |
#0 131.4     = note: expected raw pointer `*const u8`
#0 131.4                found raw pointer `*mut i8`
#0 131.4 
#0 131.4 error[E0308]: mismatched types
#0 131.4    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:987:25
#0 131.4     |
#0 131.4 987 |                         ctag,
#0 131.4     |                         ^^^^ expected `u8`, found `i8`
#0 131.4     |
#0 131.4     = note: expected raw pointer `*const u8`
#0 131.4                found raw pointer `*mut i8`
#0 131.4 
#0 131.4 error[E0308]: mismatched types
#0 131.4     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/record.rs:1009:17
#0 131.4      |
#0 131.4 1009 |                 c_str.as_ptr() as *mut i8,
#0 131.4      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.4      |
#0 131.4      = note: expected raw pointer `*const u8`
#0 131.4                 found raw pointer `*mut i8`
#0 131.4 
#0 131.5 error[E0308]: mismatched types
#0 131.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/mod.rs:268:55
#0 131.5     |
#0 131.5 268 |             let _ = htslib::sam_hdr_line_name(header, b"SQ".as_ptr().cast::<i8>(), 0);
#0 131.5     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.5     |
#0 131.5     = note: expected raw pointer `*const u8`
#0 131.5                found raw pointer `*const i8`
#0 131.5 
#0 131.5    Compiling bio v0.41.0
#0 131.5 error[E0308]: mismatched types
#0 131.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/mod.rs:943:17
#0 131.5     |
#0 131.5 943 |                 text as *const i8,
#0 131.5     |                 ^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.5     |
#0 131.5     = note: expected raw pointer `*const u8`
#0 131.5                found raw pointer `*const i8`
#0 131.5 
#0 131.5 error[E0308]: mismatched types
#0 131.5    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/mod.rs:946:27
#0 131.5     |
#0 131.5 946 |             (*rec).text = text as *mut i8;
#0 131.5     |             -----------   ^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.5     |             |
#0 131.5     |             expected due to the type of this binding
#0 131.5     |
#0 131.5     = note: expected raw pointer `*mut u8`
#0 131.5                found raw pointer `*mut i8`
#0 131.5 
#0 131.5 error[E0308]: mismatched types
#0 131.5     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/mod.rs:1212:66
#0 131.5      |
#0 131.5 1212 |             let rec = htslib::sam_hdr_parse((l_text + 1) as u64, text as *const i8);
#0 131.5      |                                                                  ^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.5      |
#0 131.5      = note: expected raw pointer `*const u8`
#0 131.5                 found raw pointer `*const i8`
#0 131.5 
#0 131.6 error[E0308]: mismatched types
#0 131.6     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bam/mod.rs:1213:27
#0 131.6      |
#0 131.6 1213 |             (*rec).text = text as *mut i8;
#0 131.6      |             -----------   ^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.6      |             |
#0 131.6      |             expected due to the type of this binding
#0 131.6      |
#0 131.6      = note: expected raw pointer `*mut u8`
#0 131.6                 found raw pointer `*mut i8`
#0 131.6 
#0 131.6 error[E0308]: mismatched types
#0 131.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/header.rs:118:17
#0 131.6     |
#0 131.6 118 |                 name_pointers.as_ptr() as *const *mut i8,
#0 131.6     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.6     |
#0 131.6     = note: expected raw pointer `*const *mut u8`
#0 131.6                found raw pointer `*const *mut i8`
#0 131.6 
#0 131.6 error[E0308]: mismatched types
#0 131.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/header.rs:341:17
#0 131.6     |
#0 131.6 341 |                 c_str.as_ptr() as *mut i8,
#0 131.6     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.6     |
#0 131.6     = note: expected raw pointer `*const u8`
#0 131.6                found raw pointer `*mut i8`
#0 131.6 
#0 131.6 error[E0308]: mismatched types
#0 131.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/header.rs:366:17
#0 131.6     |
#0 131.6 366 |                 c_str_tag.as_ptr() as *mut i8,
#0 131.6     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.6     |
#0 131.6     = note: expected raw pointer `*const u8`
#0 131.6                found raw pointer `*mut i8`
#0 131.6 
#0 131.6 error[E0308]: mismatched types
#0 131.6    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/header.rs:403:17
#0 131.6     |
#0 131.6 403 |                 c_str.as_ptr() as *const i8,
#0 131.6     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.6     |
#0 131.6     = note: expected raw pointer `*const u8`
#0 131.6                found raw pointer `*const i8`
#0 131.6 
#0 131.7 error[E0308]: mismatched types
#0 131.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/header.rs:431:17
#0 131.7     |
#0 131.7 431 |                 c_str.as_ptr() as *const i8,
#0 131.7     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.7     |
#0 131.7     = note: expected raw pointer `*const u8`
#0 131.7                found raw pointer `*const i8`
#0 131.7 
#0 131.7 error[E0308]: mismatched types
#0 131.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:319:68
#0 131.7     |
#0 131.7 319 |             htslib::bcf_update_id(self.header().inner, self.inner, c_str.as_ptr() as *mut i8)
#0 131.7     |                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.7     |
#0 131.7     = note: expected raw pointer `*const u8`
#0 131.7                found raw pointer `*mut i8`
#0 131.7 
#0 131.7 error[E0308]: mismatched types
#0 131.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:332:68
#0 131.7     |
#0 131.7 332 |             htslib::bcf_update_id(self.header().inner, self.inner, c_str.as_ptr() as *mut i8)
#0 131.7     |                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.7     |
#0 131.7     = note: expected raw pointer `*const u8`
#0 131.7                found raw pointer `*mut i8`
#0 131.7 
#0 131.7 error[E0308]: mismatched types
#0 131.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:344:73
#0 131.7     |
#0 131.7 344 |         if unsafe { htslib::bcf_add_id(self.header().inner, self.inner, c_str.as_ptr() as *mut i8) }
#0 131.7     |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.7     |
#0 131.7     = note: expected raw pointer `*const u8`
#0 131.7                found raw pointer `*mut i8`
#0 131.7 
#0 131.7 error[E0308]: mismatched types
#0 131.7    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:591:17
#0 131.7     |
#0 131.7 591 |                 ptrs.as_mut_ptr(),
#0 131.7     |                 ^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.7     |
#0 131.7     = note: expected raw pointer `*mut *const u8`
#0 131.7                found raw pointer `*mut *const i8`
#0 131.7 
#0 131.8 error[E0308]: mismatched types
#0 131.8    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:825:17
#0 131.8     |
#0 131.8 825 |                 tag_c_str.as_ptr() as *mut i8,
#0 131.8     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.8     |
#0 131.8     = note: expected raw pointer `*const u8`
#0 131.8                found raw pointer `*mut i8`
#0 131.8 
#0 131.8 error[E0308]: mismatched types
#0 131.8    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:872:17
#0 131.8     |
#0 131.8 872 |                 tag_c_str.as_ptr() as *mut i8,
#0 131.8     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.8     |
#0 131.8     = note: expected raw pointer `*const u8`
#0 131.8                found raw pointer `*mut i8`
#0 131.8 
#0 131.8 error[E0308]: mismatched types
#0 131.8    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:873:17
#0 131.8     |
#0 131.8 873 |                 c_ptrs.as_slice().as_ptr() as *mut *const i8,
#0 131.8     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.8     |
#0 131.8     = note: expected raw pointer `*mut *const u8`
#0 131.8                found raw pointer `*mut *const i8`
#0 131.8 
#0 131.9 error[E0308]: mismatched types
#0 131.9    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:918:17
#0 131.9     |
#0 131.9 918 |                 tag_c_str.as_ptr() as *mut i8,
#0 131.9     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.9     |
#0 131.9     = note: expected raw pointer `*const u8`
#0 131.9                found raw pointer `*mut i8`
#0 131.9 
#0 131.9 error[E0308]: mismatched types
#0 131.9    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:973:17
#0 131.9     |
#0 131.9 973 |                 tag_c_str.as_ptr() as *mut i8,
#0 131.9     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.9     |
#0 131.9     = note: expected raw pointer `*const u8`
#0 131.9                found raw pointer `*mut i8`
#0 131.9 
#0 131.9 error[E0308]: mismatched types
#0 131.9     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:1234:17
#0 131.9      |
#0 131.9 1234 |                 c_str.as_ptr() as *mut i8,
#0 131.9      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.9      |
#0 131.9      = note: expected raw pointer `*const u8`
#0 131.9                 found raw pointer `*mut i8`
#0 131.9 
#0 131.9 error[E0308]: mismatched types
#0 131.9     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:1349:17
#0 131.9      |
#0 131.9 1349 |                 c_str.as_ptr() as *mut i8,
#0 131.9      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 131.9      |
#0 131.9      = note: expected raw pointer `*const u8`
#0 131.9                 found raw pointer `*mut i8`
#0 131.9 
#0 132.0 error[E0308]: mismatched types
#0 132.0     --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/rust-htslib-0.38.2/src/bcf/record.rs:1385:17
#0 132.0      |
#0 132.0 1385 |                 c_str.as_ptr() as *mut i8,
#0 132.0      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `i8`
#0 132.0      |
#0 132.0      = note: expected raw pointer `*const u8`
#0 132.0                 found raw pointer `*mut i8`
#0 132.0 
#0 132.1 For more information about this error, try `rustc --explain E0308`.
#0 132.1 error: could not compile `rust-htslib` due to 62 previous errors
#0 132.1 warning: build failed, waiting for other jobs to finish...
#0 137.5 error: build failed

test_bam2bam fails

The test test_bam2bam on line 32 of tests/bam_test.rs currently fails. It was failing before because the return type of read_and_process was not right. I fixed that, but this test is still failing. It should fail to find / write 33 records, but has 0. Actually since bam2bam didn't return an integer, it is unclear how this value is to be calculated, so I took a best guess (probably wrong). Can you advise @sjbaker47 and @HosseinAsghari (cc @mohsenzakeri, @haghshenas).

Thanks!
Rob

Reading from SAM with multiple threads

In the implementation for getting all alignments of a query at once, I use bam::Reader::read() function. For some reason, when we turn on multi-threading for this reader, when reading from SAM, it gets stuck after reading all the records. However, that works fine for BAM!
Tried to re-produce the bug using a smaller code but failed. Needs more investigation!

Compiling error on MacOS

Hi team,

The following error on MacOS:

The following warnings were emitted during compilation:

warning: curl/lib/connect.c: In function 'singleipconnect':
warning: curl/lib/connect.c:1279:10: warning: implicit declaration of function '__builtin_available'; did you mean '__builtin_scalbl'? [-Wimplicit-function-declaration]
warning: 1279 | if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
warning: | ^~~~~~~~~~~~~~~~~~~
warning: | __builtin_scalbl
warning: curl/lib/connect.c:1279:30: error: 'macOS' undeclared (first use in this function)
warning: 1279 | if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
warning: | ^~~~~
warning: curl/lib/connect.c:1279:30: note: each undeclared identifier is reported only once for each function it appears in
warning: curl/lib/connect.c:1279:35: error: expected ')' before numeric constant
warning: 1279 | if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
warning: | ~ ^~~~~~
warning: | )

error: failed to run custom build command for curl-sys v0.4.52+curl-7.81.0

Caused by:
process didn't exit successfully: /Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-9b4192310196e29f/build-script-build (exit status: 1)
--- stdout
cargo:rerun-if-changed=curl
cargo:rustc-link-lib=clang_rt.osx
cargo:rustc-link-search=/opt/homebrew/Cellar/llvm/13.0.1/lib/clang/13.0.1/lib/darwin
cargo:root=/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out
cargo:include=/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/include
cargo:static=1
cargo:rustc-cfg=libcurl_vendored
cargo:rustc-cfg=link_libz
/Library/Developer/CommandLineTools
unable to determine Xcode version, assuming >= 9
TARGET = Some("aarch64-apple-darwin")
OPT_LEVEL = Some("3")
HOST = Some("aarch64-apple-darwin")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = None
HOST_CC = None
CC = None
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("aes,crc,dit,dotprod,dpb,dpb2,fcma,fhm,flagm,fp,fp16,frintts,jsconv,lor,lse,neon,pan,pauth,pmuv3,ras,rcpc,rcpc2,rdm,sb,sha2,sha3,ssbs,v8.1a,v8.2a,v8.3a,v8.4a,vh")
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/conncache.o" "-c" "curl/lib/conncache.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/asyn-thread.o" "-c" "curl/lib/asyn-thread.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/content_encoding.o" "-c" "curl/lib/content_encoding.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/bufref.o" "-c" "curl/lib/bufref.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/altsvc.o" "-c" "curl/lib/altsvc.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/base64.o" "-c" "curl/lib/base64.c"
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/connect.o" "-c" "curl/lib/connect.c"
cargo:warning=curl/lib/connect.c: In function 'singleipconnect':
cargo:warning=curl/lib/connect.c:1279:10: warning: implicit declaration of function '__builtin_available'; did you mean '__builtin_scalbl'? [-Wimplicit-function-declaration]
cargo:warning= 1279 | if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
cargo:warning= | ^~~~~~~~~~~~~~~~~~~
cargo:warning= | __builtin_scalbl
cargo:warning=curl/lib/connect.c:1279:30: error: 'macOS' undeclared (first use in this function)
cargo:warning= 1279 | if(builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, )) {
cargo:warning= | ^~~~~
cargo:warning=curl/lib/connect.c:1279:30: note: each undeclared identifier is reported only once for each function it appears in
cargo:warning=curl/lib/connect.c:1279:35: error: expected ')' before numeric constant
cargo:warning= 1279 | if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, )) {
cargo:warning= | ~ ^~~~~~
cargo:warning= | )
exit status: 1
running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void
" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void
" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE
" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/cookie.o" "-c" "curl/lib/cookie.c"
exit status: 0
exit status: 0
exit status: 0
exit status: 0
exit status: 0
exit status: 0
exit status: 0

--- stderr
fatal: not a git repository (or any of the parent directories): .git

error occurred: Command "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "curl/lib" "-I" "curl/include" "-I" "/Users/jianshuzhao/Github/mudskipper/target/release/build/libz-sys-4a0742c61ab93e89/out/include" "-fvisibility=hidden" "-DBUILDING_LIBCURL" "-DCURL_DISABLE_DICT" "-DCURL_DISABLE_GOPHER" "-DCURL_DISABLE_IMAP" "-DCURL_DISABLE_LDAP" "-DCURL_DISABLE_LDAPS" "-DCURL_DISABLE_POP3" "-DCURL_DISABLE_RTSP" "-DCURL_DISABLE_SMB" "-DCURL_DISABLE_SMTP" "-DCURL_DISABLE_TELNET" "-DCURL_DISABLE_TFTP" "-DCURL_STATICLIB" "-DENABLE_IPV6" "-DHAVE_ASSERT_H" "-DOS="unknown"" "-DHAVE_ZLIB_H" "-DHAVE_LONGLONG" "-DHAVE_LIBZ" "-DHAVE_BOOL_T" "-DHAVE_STDBOOL_H" "-DHAVE_GETADDRINFO" "-DHAVE_GETPEERNAME" "-DHAVE_GETSOCKNAME" "-DCURL_DISABLE_NTLM" "-DUSE_SECTRANSP" "-DHAVE_BUILTIN_AVAILABLE=1" "-DRECV_TYPE_ARG1=int" "-DHAVE_PTHREAD_H" "-DHAVE_ARPA_INET_H" "-DHAVE_ERRNO_H" "-DHAVE_FCNTL_H" "-DHAVE_NETDB_H" "-DHAVE_NETINET_IN_H" "-DHAVE_NETINET_TCP_H" "-DHAVE_POLL_H" "-DHAVE_FCNTL_O_NONBLOCK" "-DHAVE_SYS_SELECT_H" "-DHAVE_SYS_STAT_H" "-DHAVE_UNISTD_H" "-DHAVE_RECV" "-DHAVE_SELECT" "-DHAVE_SEND" "-DHAVE_SOCKET" "-DHAVE_STERRROR_R" "-DHAVE_SOCKETPAIR" "-DHAVE_STRUCT_TIMEVAL" "-DHAVE_SYS_UN_H" "-DUSE_THREADS_POSIX" "-DUSE_UNIX_SOCKETS" "-DRECV_TYPE_ARG2=void*" "-DRECV_TYPE_ARG3=size_t" "-DRECV_TYPE_ARG4=int" "-DRECV_TYPE_RETV=ssize_t" "-DSEND_QUAL_ARG2=const" "-DSEND_TYPE_ARG1=int" "-DSEND_TYPE_ARG2=void*" "-DSEND_TYPE_ARG3=size_t" "-DSEND_TYPE_ARG4=int" "-DSEND_TYPE_RETV=ssize_t" "-DSIZEOF_CURL_OFF_T=8" "-DSIZEOF_INT=4" "-DSIZEOF_SHORT=2" "-D__APPLE__" "-Dmacintosh" "-DHAVE_MACH_ABSOLUTE_TIME" "-DSIZEOF_SSIZE_T=8" "-DSIZEOF_SIZE_T=8" "-DSIZEOF_LONG=8" "-o" "/Users/jianshuzhao/Github/mudskipper/target/release/build/curl-sys-fd2b0ac6e5689972/out/build/curl/lib/connect.o" "-c" "curl/lib/connect.c" with args "cc" did not execute successfully (status code exit status: 1).

warning: build failed, waiting for other jobs to finish...
error: build failed

Any idea

Thanks,

Jianshu

Negative coordinate in output BAM

I have seen a case where the output BAM record has negative coordinate! Sample input BAM file is attached. For this test case, Mudskipper should be run using the following GTF.

http://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_35/gencode.v35.annotation.gtf.gz

sample bam file

Dropping some alignments against overlapping transcripts

In sample ERR188079, I have seen a case where some overlapping transcripts are dropped from the output of mudskipper. Also there is some non-deterministic behavior of mudskipper in this case.

More specifically, read HWI-ST758:71:C06LWACXX:1:1101:4517:28047 is aligned to ENST00000376420.9 and ENST00000444096.5 transcripts in one run, while aligned to ENST00000462857.5 and ENST00000495946.5 in another run. These alternative transcripts are overlapping.

The point is that if alignment to any of these is valid, we should always get all of those alignments.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.