示例#1
0
    def setUp(self):
        lib = Library(name="JBS")
        lib.save()

        for frag_code in ["j001", "j002"]:
            frag = Fragment(library=lib, code=frag_code, smiles="C")
            frag.save()
示例#2
0
    def setUp(self):
        mylib = Library(name="FragMAXlib")
        mylib.save()

        frag = Fragment(library=mylib,
                        code="VT00249",
                        smiles="O=C1N[C@@H](CO1)C1=CC=CC=C1")
        frag.save()
示例#3
0
    def test_frag_svg(self):
        """
        check that we can generate valid SVG for a simple fragment
        """
        lib = Library(name="ZeLib")
        lib.save()
        frag = Fragment(library=lib, code="F1", smiles="C")
        frag.save()

        resp = self.client.get(reverse("fragment_svg", args=(frag.id, )))

        self.assertEqual(200, resp.status_code)
        self.assertEqual(resp["Content-Type"], "image/svg+xml")
        self._assert_svg(resp.content)
示例#4
0
def get_fragment_by_id(fragment_id: str) -> Fragment:
    try:
        fragment = Fragment.get_by_id(fragment_id)
    except Fragment.DoesNotExist:
        raise Http404(f"no fragment with id '{fragment_id}' exist")

    return fragment
示例#5
0
def get_crystals_fragment(crystal) -> Optional[Fragment]:
    """
    get Crystal's Fragment, returns None for apo crystals
    """
    if crystal.is_apo():
        return None

    return Fragment.get_by_id(crystal.fragment_id)
示例#6
0
    def get_fragment_id(crystal: Crystal) -> Optional[str]:
        fragment = crystal.get_fragment()
        if fragment is None:
            # pony ORM uses empty string as 'None'
            return ""

        db_frag = Fragment.get(fragment.library, fragment.code)
        return str(db_frag.id)
示例#7
0
def _create_library(lib_desc: Dict):
    lib_name = lib_desc["name"]

    # check if this library already exist
    if Library.objects.filter(name=lib_name).exists():
        raise CommandError(
            f"Fragments library '{lib_name}' already exists, refusing to overwrite."
        )

    lib = Library(name=lib_name)
    lib.save()

    for code, smiles in lib_desc["fragments"].items():
        frag = Fragment(library=lib, code=code, smiles=smiles)
        frag.save()

    num_frags = len(lib_desc["fragments"].keys())
    print(f"added library '{lib_name}' with {num_frags} fragments")
示例#8
0
def get_project_libraries(project: Project) -> Set[Library]:
    libs = set()

    for crystal in project.get_crystals():
        if crystal.is_apo():
            continue

        frag = Fragment.get_by_id(crystal.fragment_id)
        libs.add(frag.library)

    return libs
示例#9
0
    def _setup_frags_lib(self):
        library = Library(name="TSLib")
        library.save()

        for n in range(3):
            Fragment(library=library, code=f"T{n}", smiles="C").save()
示例#10
0
    def setUp(self):
        mylib = Library(name="MyLib")
        mylib.save()

        frag = Fragment(library=mylib, code="VT000", smiles="CN1CCCC1CO")
        frag.save()