3 added 119 characters in body
source | link

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,(* import returns coordinates in picometers for some reason*)
    (* I need Most here because when imported the table has an extra {} element@ *)Import[
    Most @ Import["https"https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1","Table"] "Table"
];
mode = 100 * mode;
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[025];
   range = Join[range, Reverse @ Function[range];
          plot[v_] := ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + #v * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H"atoms, "H"},
                    "EdgeRules" -> bonds
                }
            ]];
      ListAnimate @ ]Map[plot,
        range
    ]
]range] 

enter image description here

When importing the mode file, it returns an empty list as the last element so I need to use Most to make it a matrix. Then I multiplied it by 100 to convert to picometers. Finally I had to precompute the bonds, because as the molecule moves along the normal coordinate, the atoms could get far enough apart that the bonds wouldn't be detected by MoleculePlot3D.

Sources:

  1. Connectivity in a molecule and permutations
  2. How can I access the internal function that plots a molecule from a formatted XYZ file?
  3. Visualizing .xyz file in Mathematica

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,(* import returns coordinates in picometers for some reason*)
    (* I need Most here because when imported the table has an extra {} element *)
    Most @ Import["https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1","Table"]
];
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[
        Function[
            ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + # * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H"},
                    "EdgeRules" -> bonds
                }
            ]
        ],
        range
    ]
] 

enter image description here

Sources:

  1. Connectivity in a molecule and permutations
  2. How can I access the internal function that plots a molecule from a formatted XYZ file?
  3. Visualizing .xyz file in Mathematica

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Most @ Import[
    "https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1", "Table"
];
mode = 100 * mode;
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Range[-0.5, 0.5, 0.025];
range = Join[range, Reverse @ range];
plot[v_] := ImportExport`MoleculePlot3D[
    {
        "VertexCoordinates" -> (coords + v * mode),
        "VertexTypes" -> atoms, "EdgeRules" -> bonds
    }
];
ListAnimate @ Map[plot, range] 

enter image description here

When importing the mode file, it returns an empty list as the last element so I need to use Most to make it a matrix. Then I multiplied it by 100 to convert to picometers. Finally I had to precompute the bonds, because as the molecule moves along the normal coordinate, the atoms could get far enough apart that the bonds wouldn't be detected by MoleculePlot3D.

Sources:

  1. Connectivity in a molecule and permutations
  2. How can I access the internal function that plots a molecule from a formatted XYZ file?
  3. Visualizing .xyz file in Mathematica
2 added 497 characters in body
source | link

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,(* import returns coordinates in picometers for some reason*)
    (* I need Most here because when imported the table has an extra {} element *)
    Most @ Import["https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1",
        "Table"
    ]"Table"]
];
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[
        Function[
            ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + # * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H"},
                    "EdgeRules" -> bonds
                }
            ]
        ],
        range
    ]
] 

enter image description here

Sources:

  1. Connectivity in a molecule and permutations
  2. How can I access the internal function that plots a molecule from a formatted XYZ file?
  3. Visualizing .xyz file in Mathematica

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,
    Most @ Import["https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1",
        "Table"
    ]
];
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[
        Function[
            ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + # * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H"},
                    "EdgeRules" -> bonds
                }
            ]
        ],
        range
    ]
] 

enter image description here

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,(* import returns coordinates in picometers for some reason*)
    (* I need Most here because when imported the table has an extra {} element *)
    Most @ Import["https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1","Table"]
];
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[
        Function[
            ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + # * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H"},
                    "EdgeRules" -> bonds
                }
            ]
        ],
        range
    ]
] 

enter image description here

Sources:

  1. Connectivity in a molecule and permutations
  2. How can I access the internal function that plots a molecule from a formatted XYZ file?
  3. Visualizing .xyz file in Mathematica
1
source | link

Using a few undocumented functions that have been discussed here on the stack exchange before,

{atoms, coords} = Import[
    "https://www.dropbox.com/s/q3rwpedngv5wbqi/ben.xyz?dl=1",
    {"XYZ", {"VertexTypes", "VertexCoordinates"}}
];
mode = Times[
    100,
    Most @ Import["https://www.dropbox.com/s/3pjxams7ndr0l7h/19.mode?dl=1",
        "Table"
    ]
];
bonds = Graphics`MoleculePlotDump`InferBonds[atoms, coords, 40, 25];
range = Function[Join[#, Reverse @ #]][Range[-0.5, 0.5, 0.025]];
ListAnimate[
    Map[
        Function[
            ImportExport`MoleculePlot3D[
                {
                    "VertexCoordinates" -> (coords + # * mode),
                    "VertexTypes" -> {"C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H"},
                    "EdgeRules" -> bonds
                }
            ]
        ],
        range
    ]
] 

enter image description here