New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support CIF #51
Support CIF #51
Conversation
61c0123
to
b0575f5
Compare
History is a bit messy because I moved some changes that were due to changing editor setup to the dev branch in order to keep the diff here only related to the new feature. |
* Convert CLI main to C++ * Add GEMMI as submodule
…s as in regular PDB files. Handle insertion codes in CIF files.
165524b
to
1e29035
Compare
Did some rebasing to make the commits clearer |
Addressed AltLoc CIF bug in structure_from_doc
* Add C++ lib to travis packages. * Change travis language to C++. * Test all branches in travis. * Add -lsubunit linking for unit tests. * Comment out unstable test.
… lacking freesasa_structure building implementation.
…ication; unable to remove duplication of func structure_from_doc with std::is_same, need to try something else.
…separate-models PR
…ty; tests are still needed.
Fix allocation issues in node_atom
Output CIF
Super excited! Let me know if you encounter any bugs you need me to address! |
src/cif.cc
Outdated
friend std::ostream &operator<<(std::ostream &os, const freesasa_MCRA &mcra) | ||
{ | ||
os << "Atom(" << mcra._model << " " << mcra._chain << " " << mcra._res_num << " [" << mcra._residue << "] " << mcra._atom << ")"; | ||
return os; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume this was only used for debugging?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was initially for debugging but allows for a nice output of the atom. You can keep it or drop it. I don't think its currently being used anywhere.
So I'm going through everything one last time, and have committed a few minor things. A few things are stylistic. And I found a better solution for handling output. There is an option I noticed we are missing docs for CIF output, so I'll fix that too. |
…alues available or not.
Awesome! yeah I originally wrote it to output to a file so I am glad you added that additional capability back. |
I made one other minor change. RSA-values are output regardless of
|
Yeah I made it output RSA regardless bc why not. Its a separate block if you don't need it then ignore it. If values are missing then they will be either I don't see the change you made? |
See c204ce7 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So one thing that is missing from all this is where you specify the unit of the freeSASA value. In your original output there is a unit and I did not know where to place that in the output? Maybe it should go in the docs?
Yeah I thought about that too. I think the docs probably makes the most sense, otherwise we would need to add it to all the fields, I assume: |
Yeah it looks super clunky. I think the docs is a better place. |
I'm done for the day, but think we're really close now! |
One more thing, if you can think of any CLI tests that we can use to check that everything works and catch regressions later that would be great. At least we should have one simple case where we compare with a stored CIF output so that we get an error if future modifications changes the format by accident. |
Im not sure I understand? Gemmi writes out the format and enforces it? if we did not follow the cif format then gemmi would error out? Could you elaborate/clarify exactly the kind of test you want? |
I was simply thinking of one or more test that runs through the different branches of the CIF output code, so that if something breaks we catch it automatically. For instance if the |
Add more regression tests for CIF-related CLI options.
I added a few, that's probably enough for now. |
…ch for the same purpose.
I've been through the code enough times now to be pretty sure this is ok to publish. Thanks so much for your effort, really nice to collaborate! I will merge it to the dev-branch and add some version information, etc, before merging to master. As mentioned I will release it as 2.1-beta to allow it to mature a little bit more. That means anyone who clones the repository will get the new features, but they won't be in the published docs yet, and we are still free to make minor changes to for example CLI options, etc, if we realize something is inconsistent in the interface. |
Related to #48. Using gemmi (https://gemmi.readthedocs.io/en/latest/index.html).
Support all CLI options also for CIF
--hetatm
--unkown
--separate-models
--join-models
--separate-chains
--chain-groups
Testing