Thomas 3 лет назад
Родитель
Сommit
d56b99e73e
1 измененных файлов с 15 добавлено и 15 удалено
  1. 15 15
      src/lib.rs

+ 15 - 15
src/lib.rs

@@ -49,17 +49,17 @@ pub enum TagValue {
     Str(String)
 }
 
-pub type BamRead = (
-    i32,                    // ref_id
-    i32,                    // pos
-    u8,                     // mapq
-    u16,                    // flag
-    String,                 // read_name
-    Vec<(String, u32)>,     // cigar
-    BamSequence,            // sequence
-    Vec<u8>,                // phred
-    Vec<(String, TagValue)> // tags
-);
+pub struct BamRead {
+    ref_id: i32,                  // ref_id
+    pos: i32,                     // pos
+    mapq: u8,                     // mapq
+    flag: u16,                    // flag
+    read_name: String,            // read_name
+    cigar: Vec<(String, u32)>,    // cigar
+    sequence: BamSequence,        // sequence
+    phred: Vec<u8>,               // phred
+    tags: Vec<(String, TagValue)> // tags
+}
 
 pub struct BamReader {
     reader: BGZFReader<fs::File>,
@@ -300,10 +300,10 @@ impl BamReader {
             };
             tags.push((tag, tag_v));
 
-            // if block_size - current_read == 0 { break; }
             if self.reader.bgzf_pos() - pos_start >= block_size as u64 { break; }
         }
-        Ok((ref_id, pos, mapq, flag, read_name, cigar, sequence, phred, tags))
+        Ok(BamRead {ref_id, pos, mapq, flag, read_name, cigar, sequence, phred, tags})
+        // Ok((ref_id, pos, mapq, flag, read_name, cigar, sequence, phred, tags))
     }
 }
 
@@ -331,12 +331,12 @@ mod tests {
         let bam_reader = BamReader::new(bam_path).unwrap();
         
         let reads = bam_reader
-        .filter(|br| flags.contains(&br.3))
+        .filter(|br| flags.contains(&br.flag))
         .take(1000)
         .collect::<Vec<BamRead>>();
 
         assert_eq!(
-            reads[0].4,
+            reads[0].read_name,
             "NB501645:337:HCCMVAFX2:3:11505:17842:2102_GATGGGACGG".to_string()
         );
     }