Push mtzqmmrlmzzx #34
@@ -412,13 +412,7 @@ impl PersistentBitMatrixBuilder {
|
|||||||
let path = col_path(&self.dir, self.n_cols);
|
let path = col_path(&self.dir, self.n_cols);
|
||||||
self.n_cols += 1;
|
self.n_cols += 1;
|
||||||
let mut b = PersistentBitVecBuilder::new(self.n, &path)?;
|
let mut b = PersistentBitVecBuilder::new(self.n, &path)?;
|
||||||
let view = src.view();
|
b.or_where(src.view(), |v| v > 0);
|
||||||
for slot in 0..self.n {
|
|
||||||
if view.primary_bytes()[slot] > 0 { b.set(slot, true); }
|
|
||||||
}
|
|
||||||
for (slot, _) in view.overflow_entries() {
|
|
||||||
b.set(slot, true);
|
|
||||||
}
|
|
||||||
b.close()
|
b.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,9 +53,7 @@ pub trait MatrixGroupOps {
|
|||||||
let n = counts.len();
|
let n = counts.len();
|
||||||
let n_required = g.indices.len() as u32;
|
let n_required = g.indices.len() as u32;
|
||||||
let mut b = TempBitVecBuilder::new(n)?;
|
let mut b = TempBitVecBuilder::new(n)?;
|
||||||
for slot in 0..n {
|
b.or_where(counts.view(), |v| v >= n_required);
|
||||||
if counts.get(slot) >= n_required { b.set(slot, true); }
|
|
||||||
}
|
|
||||||
b.freeze()
|
b.freeze()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,9 +62,7 @@ pub trait MatrixGroupOps {
|
|||||||
let counts = self.partial_group_presence_count(g, threshold)?;
|
let counts = self.partial_group_presence_count(g, threshold)?;
|
||||||
let n = counts.len();
|
let n = counts.len();
|
||||||
let mut b = TempBitVecBuilder::new(n)?;
|
let mut b = TempBitVecBuilder::new(n)?;
|
||||||
for slot in 0..n {
|
b.or_where(counts.view(), |v| v == 0);
|
||||||
if counts.get(slot) == 0 { b.set(slot, true); }
|
|
||||||
}
|
|
||||||
b.freeze()
|
b.freeze()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,9 +107,7 @@ impl Layer<()> {
|
|||||||
fs::create_dir_all(&presence_dir).map_err(OLMError::Io)?;
|
fs::create_dir_all(&presence_dir).map_err(OLMError::Io)?;
|
||||||
let mut mb = PersistentBitMatrixBuilder::new(n_kmers, &presence_dir).map_err(OLMError::Io)?;
|
let mut mb = PersistentBitMatrixBuilder::new(n_kmers, &presence_dir).map_err(OLMError::Io)?;
|
||||||
let mut col = mb.add_col().map_err(OLMError::Io)?;
|
let mut col = mb.add_col().map_err(OLMError::Io)?;
|
||||||
for slot in 0..n_kmers {
|
col.not();
|
||||||
col.set(slot, true);
|
|
||||||
}
|
|
||||||
col.close().map_err(OLMError::Io)?;
|
col.close().map_err(OLMError::Io)?;
|
||||||
mb.close().map_err(OLMError::Io)
|
mb.close().map_err(OLMError::Io)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user