# entrypoint.py from Bio import SeqIO from sqlalchemy.orm import Session from app.database import engine, SessionLocal, Base from app.models import Sequence, Feature import json # Tworzenie tabeli w bazie danych Base.metadata.create_all(bind=engine) def get_db(): db = SessionLocal() try: yield db finally: db.close() def load_genbank_to_db(file_path: str): db = next(get_db()) with open(file_path, 'r') as file: record = SeqIO.read(file, "genbank") # Zapisz sekwencjÄ™ do bazy danych sequence_data = Sequence( name=record.name, description=record.description, sequence=str(record.seq) ) db.add(sequence_data) db.commit() # Zapisz cechy (features) do bazy danych for feature in record.features: feature_data = Feature( type=feature.type, location=str(feature.location), sequence=str(record.seq[feature.location.start:feature.location.end]), qualifiers=json.dumps(feature.qualifiers), sequence_id=sequence_data.id ) db.add(feature_data) db.commit() print(f"Loaded {file_path} to database.") if __name__ == "__main__": load_genbank_to_db("data/pET-28+(a).gb")