NMRLipids / Databank

NMRlipids databank
GNU General Public License v3.0
4 stars 31 forks source link

Software-specific branching in several places should be avoided. Branching must be enveloped somehow. #205

Open comcon1 opened 1 day ago

comcon1 commented 1 day ago

I have already seen software-specific branching in several places. At the moment the organization makes adding new software or file formats for an old software very tedious. We should think how to resolve it. In general, the good thing is to make application general - software independent via drivers, which are software specific. So, a driver - middle-layer API, should take care of all software-specific manipulations producing a standardized output, from which the following steps should be done. Then, if software specific modifications are needed, they should be done in one place, instead of introducing modifications to many different files throughout the project.

_Originally posted by @pbuslaev in https://github.com/NMRLipids/Databank/pull/201#discussion_r1834394129_

comcon1 commented 1 day ago

Continue citing @pbuslaev

At the moment the organization makes adding new software or file formats for an old software very tedious. We should think how to resolve it. In general, the good thing is to make application general - software independent via drivers, which are software specific. So, a driver - middle-layer API, should take care of all software-specific manipulations producing a standardized output, from which the following steps should be done. Then, if software specific modifications are needed, they should be done in one place, instead of introducing modifications to many different files throughout the project.

We should agree here, how we ask people to provide topology, and how we will use the topology. Now, NMRlipids uses TPR for GROMACS and doesn't use topology files from other engines, which is quite strange because, I see that MDanalysis actually does allow using various formats: https://docs.mdanalysis.org/1.1.1/documentation_pages/topology/init.html

... including for example PSF. We also allow PSF in namd_dict (see databank_defs.py )

    "TOP": {
        "REQUIRED": False,
        "TYPE": "file",
        "EXTENSION": ("psf"),
    },

But then we... just don't use it and use PDB instead!