Skip to content

[Feature Request] We need another LabeledSystem input and output format, such as extxyz #708

Closed

Description

@QuantumMisaka

Summary

We wanna transform a training set stored by deepmd/raw and deepmd/npy format to another format which can be parsed by ASE or Ovito. and we need Energy/Force label in the same time.

We've tried all output in dpdata, but there're no another output for LabeledSystem valid but only deepmd/npy and deepmd/raw, only system without label can be output in xyz format and another format which only include coordinates, but not label information.

I do consider that dpdata need another io-format for LabeledSystem (not just read-in, but alos write-out),

Extxyz format is a widely used LabeledSystem and MultiSystems format, which I do think dpdata should include

Detailed Description

extxyz format information:
https://wiki.fysik.dtu.dk/ase/ase/io/formatoptions.html#extxyz

Further Information, Files, and Links

ABACUS MD_dump file and another trajectory output will also transform to extxyz format, see deepmodeling/abacus-develop#5022

Activity

  1. ZhouXY-PKU commented on Aug 31, 2024

    @ZhouXY-PKU
    Contributor

    Another related issue: I have tried LabeledSystem.to_quip_gap_xyz(), which is showed with pressing the tab key after "LabeledSystem.", but sadly it cannot be used at all with the error message like "QUIPXYZFORMAT do not support System.to". So why not try to ban it from being showed with pressing the tab key after "LabeledSystem."?

  2. njzjz commented on Sep 2, 2024

    @njzjz
    Member

    We wanna transform a training set stored by deepmd/raw and deepmd/npy format to another format which can be parsed by ASE

    Note that you can directly convert the dpdata.System to ase.Atoms, no need to have an intermediate format.

  3. QuantumMisaka commented on Sep 3, 2024

    @QuantumMisaka
    Author

    Note that you can directly convert the dpdata.System to ase.Atoms, no need to have an intermediate format.

    Is there an simple method/function for dpdata to convert dpdata.System to ase.Atoms in a high-thoughput way? From users' side, there is much better to have a once-for-all function, instead of coding when needed

  4. robinzyb commented on Sep 3, 2024

    @robinzyb
    Collaborator

    What do you mean by "high-throughput way"? The Labeledsystem.to_ase_structures() should return a list of ase Atoms objects.

  5. njzjz commented on Sep 3, 2024

    @njzjz
    Member

    Labeledsystem.to_ase_structures()

    It's LabeledSystem.to_ase_structure().

    I think the more important issue is that the documentation lacks maintenance and organization, so it is not easy to find all features in the dpdata package. I don't have enough time to write documentation, though.

  6. ZhouXY-PKU commented on Sep 4, 2024

    @ZhouXY-PKU
    Contributor
  7. ZhouXY-PKU commented on Sep 4, 2024

    @ZhouXY-PKU
    Contributor

    What do you mean by "high-throughput way"? The Labeledsystem.to_ase_structures() should return a list of ase Atoms objects.

    Thank you!

  8. ZhouXY-PKU commented on Sep 4, 2024

    @ZhouXY-PKU
    Contributor

    Labeledsystem.to_ase_structures()

    It's LabeledSystem.to_ase_structure().

    I think the more important issue is that the documentation lacks maintenance and organization, so it is not easy to find all features in the dpdata package. I don't have enough time to write documentation, though.

    Thank you! I have also fixed some small bugs(#717), and now it can work.

  9. QuantumMisaka commented on Sep 4, 2024

    @QuantumMisaka
    Author

    Beside Labeledsystem.to_ase_structures(), is there a way read from ase Atoms to dpdata.LabeledSystems ?

  10. ZhouXY-PKU commented on Sep 4, 2024

    @ZhouXY-PKU
    Contributor

    Beside Labeledsystem.to_ase_structures(), is there a way read from ase Atoms to dpdata.LabeledSystems ?

    LS = dpdata.LabeledSystem().from_ase_structure(Atoms) can work.

  11. ZhouXY-PKU commented on Sep 4, 2024

    @ZhouXY-PKU
    Contributor

    Labeledsystem.to_ase_structures()

    It's LabeledSystem.to_ase_structure().

    I think the more important issue is that the documentation lacks maintenance and organization, so it is not easy to find all features in the dpdata package. I don't have enough time to write documentation, though.

    If possible, could you please add a column of "capabilities" to the table at https://docs.deepmodeling.com/projects/dpdata/en/master/formats.html, just like the table at https://wiki.fysik.dtu.dk/ase/ase/io/io.html?

  12. njzjz commented on Sep 4, 2024

    @njzjz
    Member

    If possible, could you please add a column of "capabilities" to the table at https://docs.deepmodeling.com/projects/dpdata/en/master/formats.html, just like the table at https://wiki.fysik.dtu.dk/ase/ase/io/io.html?

    There has already been a Supported Conversions column.

  13. DQM520 commented on Sep 28, 2024

    @DQM520

    #717
    I met the same problem:I want to convert my .npy file to extxyz file(energy and force included) like this,how can I get it ? Can you give me some concrete procedures? I'm not familiar with dpdata and ase, thank you very much! .npy file and extxyz file attached.
    68032a9902623ad5efd049bfcbe7e4d

    30ff63cd9d7731d99ef10740cc77d76
    9763d73b23c5f29264133cfdd86ac5c

  14. DQM520 commented on Sep 29, 2024

    @DQM520

    #717
    I met the same problem:I want to convert my .npy file to extxyz file(energy and force included) like this,how can I get it ? Can you give me some concrete procedures? I'm not familiar with dpdata and ase, thank you very much! .npy file and extxyz file attached.
    68032a9902623ad5efd049bfcbe7e4d

    30ff63cd9d7731d99ef10740cc77d76 9763d73b23c5f29264133cfdd86ac5c

    I have solved this problem, thank you !

  15. linked a pull request that will close this issuefeat(xyz): add extended XYZ format alias #881on Aug 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions