Skip to content

Commit

Permalink
feat: update noodles (#596)
Browse files Browse the repository at this point in the history
  • Loading branch information
tshauck authored Aug 6, 2024
1 parent 4a458f5 commit 86776f7
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 39 deletions.
34 changes: 17 additions & 17 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ arrow = { version = "52.2.0" }
async-trait = "0.1.81"
datafusion = { version = "40", features = ["compression", "parquet"] }
futures = "0.3"
noodles = { version = "0.78" }
noodles = { version = "0.79" }
object_store = { version = "0.10.2" }
tokio = { version = "1", features = ["io-util"] }
tokio-util = { version = "0.7.11", features = ["compat"] }
Expand Down
4 changes: 2 additions & 2 deletions exon/exon-bam/src/array_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use arrow::{
use exon_common::ExonArrayBuilder;
use exon_sam::TagsBuilder;
use noodles::sam::{
alignment::record::{cigar::op::Kind, Cigar, Name},
alignment::record::{cigar::op::Kind, Cigar},
Header,
};

Expand Down Expand Up @@ -104,7 +104,7 @@ impl BAMArrayBuilder {
match col_idx {
0 => {
if let Some(name) = record.record().name() {
let sam_read_name = std::str::from_utf8(name.as_bytes())?;
let sam_read_name = std::str::from_utf8(name)?;

self.names.append_value(sam_read_name);
} else {
Expand Down
30 changes: 14 additions & 16 deletions exon/exon-core/src/datasources/cram/table_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -162,17 +162,6 @@ impl ListingCRAMTableOptions {
let stream_reader = Box::pin(get_result.into_stream().map_err(ExonError::from));
let stream_reader = StreamReader::new(stream_reader);

let mut cram_reader = noodles::cram::AsyncReader::new(stream_reader);

cram_reader.read_file_definition().await?;
let header = cram_reader.read_file_header().await?;
let header: Header = header
.to_owned()
.parse()
.map_err(|_| DataFusionError::Execution("Unable to parse header".to_string()))?;

let mut schema_builder = SAMSchemaBuilder::default();

let reference_sequence_repository = match &self.fasta_reference {
Some(reference) => {
let object_store_adapter = ObjectStoreFastaRepositoryAdapter::try_new(
Expand All @@ -186,11 +175,20 @@ impl ListingCRAMTableOptions {
None => noodles::fasta::Repository::default(),
};

if let Some(Ok(record)) = cram_reader
.records(&reference_sequence_repository, &header)
.next()
.await
{
let mut cram_reader = noodles::cram::r#async::io::reader::Builder::default()
.set_reference_sequence_repository(reference_sequence_repository)
.build_from_reader(stream_reader);

cram_reader.read_file_definition().await?;
let header = cram_reader.read_file_header().await?;
let header: Header = header
.to_owned()
.parse()
.map_err(|_| DataFusionError::Execution("Unable to parse header".to_string()))?;

let mut schema_builder = SAMSchemaBuilder::default();

if let Some(Ok(record)) = cram_reader.records(&header).next().await {
schema_builder = schema_builder.with_tags_data_type_from_data(record.data())?;
} else {
return Err(ExonError::ExecutionError(
Expand Down
5 changes: 2 additions & 3 deletions exon/exon-cram/src/array_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use exon_common::ExonArrayBuilder;
use exon_sam::TagsBuilder;
use noodles::{
cram::Record as CramRecord,
sam::alignment::record::{cigar::op::Kind, Cigar, Name},
sam::alignment::record::{cigar::op::Kind, Cigar},
};

use crate::CRAMConfig;
Expand Down Expand Up @@ -80,8 +80,7 @@ impl CRAMArrayBuilder {
match col_idx {
0 => {
if let Some(name) = record.name() {
let sam_read_name = name.as_bytes();
self.names.append_value(std::str::from_utf8(sam_read_name)?);
self.names.append_value(std::str::from_utf8(name)?);
} else {
self.names.append_null();
}
Expand Down

0 comments on commit 86776f7

Please sign in to comment.