Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_frac_gc():
pytest.importorskip("pysam")
chromsizes = bioframe.read_chromsizes(testdir+"/test_data/test.chrom.sizes")
fasta_records = bioframe.load_fasta(testdir+"/test_data/test.fa")
unmapped_bp = (
0
== bioframe.frac_mapped(
bioframe.binnify(chromsizes, 1), fasta_records, return_input=False
).values
)
assert np.isnan(
bioframe.frac_gc(
bioframe.binnify(chromsizes, 1),
fasta_records,
return_input=False,
mapped_only=True,
).values[unmapped_bp]
).all()
def test_digest():
pytest.importorskip("Bio")
fasta_records = bioframe.load_fasta(testdir+"/test_data/test.fa")
assert len(fasta_records) == 2
### no HindIII sites in the test.fa fasta records, so shouldn't change shape[0]
assert bioframe.digest(fasta_records, "HindIII").shape == (2, 3)
### one DpnII site on chrTEST2, shape[0] should increase by one
assert bioframe.digest(fasta_records, "DpnII").shape == (3, 3)
### DpnII site is on chrTEST2 position 3, first interval of chrTEST2 should end at 3
assert bioframe.digest(fasta_records, "DpnII").iloc[1].end == 3
def test_frac_mapped():
pytest.importorskip("pysam")
chromsizes = bioframe.read_chromsizes(testdir+"/test_data/test.chrom.sizes")
fasta_records = bioframe.load_fasta(testdir+"/test_data/test.fa")
unmapped = np.array([1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0])
assert (
unmapped
== bioframe.frac_mapped(
bioframe.binnify(chromsizes, 1), fasta_records, return_input=False
).values
).all()
unmapped = np.array([0.8, 0.8, 0])
assert (
unmapped
== bioframe.frac_mapped(
bioframe.binnify(chromsizes, 5), fasta_records, return_input=False
).values
).all()