File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -475,7 +475,9 @@ impl<W: Write> BinseqWriter<W> {
475475 write_flag ( & mut self . inner , record. flag ( ) . unwrap_or ( 0 ) ) ?;
476476 }
477477
478- if record. is_paired ( ) != self . encoder . header . is_paired ( ) {
478+ // Check paired status - writer can require paired (record must have R2),
479+ // but if writer is single-end, we simply ignore any R2 data in the record.
480+ if self . encoder . header . is_paired ( ) && !record. is_paired ( ) {
479481 return Err ( WriteError :: ConfigurationMismatch {
480482 attribute : "paired" ,
481483 expected : self . encoder . header . is_paired ( ) ,
@@ -484,7 +486,7 @@ impl<W: Write> BinseqWriter<W> {
484486 . into ( ) ) ;
485487 }
486488
487- if record . is_paired ( ) {
489+ if self . encoder . header . is_paired ( ) {
488490 if let Some ( ( sbuffer, xbuffer) ) = self
489491 . encoder
490492 . encode_paired ( record. s_seq , record. x_seq . unwrap_or_default ( ) ) ?
Original file line number Diff line number Diff line change @@ -277,8 +277,9 @@ impl ColumnarBlock {
277277 . into ( ) ) ;
278278 }
279279
280- // Check paired status - must match exactly since it affects record structure
281- if self . header . is_paired ( ) != record. is_paired ( ) {
280+ // Check paired status - writer can require paired (record must have R2),
281+ // but if writer is single-end, we simply ignore any R2 data in the record.
282+ if self . header . is_paired ( ) && !record. is_paired ( ) {
282283 return Err ( WriteError :: ConfigurationMismatch {
283284 attribute : "paired" ,
284285 expected : self . header . is_paired ( ) ,
Original file line number Diff line number Diff line change @@ -513,8 +513,9 @@ impl<W: Write> VBinseqWriter<W> {
513513 /// writer.finish().unwrap();
514514 /// ```
515515 pub fn push ( & mut self , record : SequencingRecord ) -> Result < bool > {
516- // Check paired status - must match exactly since it affects record structure
517- if record. is_paired ( ) != self . header . paired {
516+ // Check paired status - writer can require paired (record must have R2),
517+ // but if writer is single-end, we simply ignore any R2 data in the record.
518+ if self . header . paired && !record. is_paired ( ) {
518519 return Err ( WriteError :: ConfigurationMismatch {
519520 attribute : "paired" ,
520521 expected : self . header . paired ,
You can’t perform that action at this time.
0 commit comments