File size: 1,509 Bytes
7155827 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | """Keep the corrected UTR SFT mapping separate from scalar regression inputs."""
import hashlib
import importlib.util
from pathlib import Path
import unittest
ROOT = Path(__file__).resolve().parents[1]
spec = importlib.util.spec_from_file_location('sft_mapping', ROOT / 'train_sft.py')
sft = importlib.util.module_from_spec(spec)
spec.loader.exec_module(sft)
class SFTDataMappingTests(unittest.TestCase):
def test_utr_wet_uses_fixed_utr_generation_data(self):
preset = sft.PROJECTS['utr-wet']
self.assertEqual(preset['directory'], 'utrgen')
self.assertEqual(preset['length'], 512)
self.assertEqual(preset['batch'], 2)
self.assertEqual(preset['steps'], -1)
expected = {
'train.txt': '48f7e5986a4d5816bdc5f5dc8cab2f2acdc8ba6872879c9d3fff0799a49def4a',
'valid.txt': '139b7462887a63eabacb7273948bf896699eb5a1668b9a9381d595646efe0bb1',
}
for name, digest in expected.items():
path = sft.local_path(preset['directory'] + '/' + name)
self.assertEqual(hashlib.sha256(path.read_bytes()).hexdigest(), digest)
with path.open() as stream:
self.assertTrue(all(line.startswith('~$predict_utr') for line in stream if line.strip()))
self.assertEqual(path.read_bytes(), (ROOT / 'utrgen' / name).read_bytes())
def test_ribozyme_wet_mapping_is_unchanged(self):
self.assertEqual(sft.PROJECTS['ribozyme-wet']['directory'], 'ribozymegen-figure7/filteredwet')
|