Jia-Jung Ho

@jjh

Joined on Feb 2, 2020

  • The Graphic User Interfaces (GUIs) of COSMOSS were written with the appdesigner of Matlb. I used to use GUIDE wordle for the GUIs but found the appdesigner is much scalable. Editing Main GUI To edit the GUIs, you need to call the appdesigner command with the '.mlapp' files. For example, to edit the main GUI, I can type the following in the Matlab working space[^PS]: > appdesigner COSMOSS You should see the appdesigner interface shows up as following: The above figure shows the design view, which allows you to edit the graphical elements. The other tab on the top right named 'Code View' will give you access to the source code for further editing:
     Like  Bookmark
  • Here is a list of tasks to improve COSMOSS in various aspects: Last edited: [name=JJHo] [time= Sep 21, 2020] [color=#ff4233] Documentations related Coding tutorials/documentations: [x] Need to update the isotope labeling tutorial [x] Write about the analysis tools
     Like  Bookmark
  • :::info COSMOSS is a Coupled OScillator MOdel Spectral Simulator ::: Initially COSMOSS was created for my PhD research projects. Using the coupled-oscillators framework, I simulated and extracted information from experimental spectrum[^GoogleScholar], mostly on 2D IR and 2D SFG. As the COSMOSS project moving forward, I couldn't help but wonder if I can make it more general (as its name implied), i.e. works for different molecules, with a user-friendly GUI, support other spectral types, and most important of all, it is open source! So here is it, hope you enjoy it. What can COSMOSS do? COSMOSS can help you generate model structures and simulated their vibrational spectrum, currently includes:
     Like  Bookmark
  • COSMOSS is a Matlab based program. The Graphic User Interfaces(GUI) end can be break down in to three parts: Structure model generation (model_GUIs) Spectral simulations (main_GUI) Spectral analysis (tool_GUIs) graph LR subgraph Summary of GUIs A1(Two-coupled oscillators) -->B
     Like  Bookmark
  • In this tutorial, I will layout a step-by-step process about how to run COSMOSS from workspace (command line mode). One of the major benefits is to run it in a batch mode. Running in batch mode allows one to explore the "change" from some acting variables. For example, given two molecules, if you want to know how would spectral features change when you pull them away, you can run simulations in a for-loop instead of laborious mouse-clickings. Even better is that you can visualize the result as a movie! :::info Objective: Generating the movie of FTIR spectral change while pulling two molecules away from 3 to 7Å. ::: Constructing the TCO model :::warning Before we start, make sure you've already run COSMOSS at least once so all the paths to relevant function are set!
     Like  Bookmark
  • All the generated information of a structure model is collected in a class named 'StructureData'. Using this object oriented coding framework, one can take advantage of the default handle class in Matlab for ease of passing data between GUIs without redundant copy and renaming of data[^Matlab]. Note, the trick in How to modify coupling matrixes in COSMOSS is made possible by inheriting the handle class. [^Matlab]: See Matlab help center for more information. The class definition locates in: /COSMOSS/MoleculeConstruction/@StructureData Here is the properties and the methods defined in the StructureData class:
     Like  Bookmark
  • Here I document the data structure within COSMOSS. Before getting into the map, I want to explain the box diagram (Class diagram) used to depict the data structure map. classDiagram class Example_Class{ Property A Property B Property C Property ... ChildA()
     Like  Bookmark
  • COSMOSS currently can be used to simulate: Fourier Transform Infrared spectrum (FTIR) Sum-Frequency Generation spectrum (SFG) Two-dimensional Infrared spectrum (2D IR) Two-dimensional Sum-Frequency Generation spectrum (2D SFG) No matter which type of the spectral simulation mentioned above, their signal can all be calculated in the following framework: $$
     Like  Bookmark
  • Within the COSMOSS directroy, you will see 'COSMOSS.mlapp'. Double click on it or type in 'COSMOSS' in the working space will bring up the main GUI interface: Select a structure model by clicking the 'Constructing structural model' button on the top left 'Build Model Structure' panel. You should see another GUI shows up. Take the two coupled oscillators model for example, you should see the GUI like this: Adjusting the parameters on the model_GUI then click the 'Generate' button to pass the 'Structure Data' back to the main GUI (COSMOSS) for spectral simulations. You can also visualize the constructed molecule by clicking the 'Draw' button on the model_GUI to confirm the desired structure. After generating the molecule one can simulate spectrum by clicking the corresponding spectral type on the button row of the Main_GUI. The figure below shows example FTIR, SFG, 2DIR, and 2DSFG spectrum of the above constructed carboxylic acid dimer. Note that the FTIR and the SFG provides the same information as the diagonal slice of the corresponding 2D spectrum. With 2D spectrum, one have extra information form the second dimension, including the off-diagonal peaks (mode coupling), off-diagonal line width (possibility to separate homogeneous and inhomogeneous line with on the diagonal), and many more subtle features that may need further spectral analysis to extra information. For spectral analysis, the bottom right 'Analysis tool' panel provides buttons or different tool_GUIs. :::info
     Like  Bookmark
  • What is COSMOSS? Downlaod the Matlab App [target=_blank] Tutorials How to use COSMOSS? Structure models Coupling models Theoretical backgound Manually modify system coupling
     Like  Bookmark
  • Here are resources I collected for how to use Git to collaborate. I hope these tutorials will help you understand how to pull the latest source code and fork/pull request to contribute to this project! Topics specific resources Fork/Pull request 1.3: Forks and Pull Requests - Git and GitHub for Poets Definitely watch this one, the speak is very energetic! Git & GitHub Tutorial for Beginners #12 - Forking (& Contributing) Definitely watch this one, a tone down version with hands one steps.
     Like  Bookmark
  • Given the structure of a molecule, this Matlab code simulates the vibrational spectrum based upon on the coupled oscillator model. Currently, COSMOSS supports the following structural construction models: Two coupled-oscillators Amide-I modes of peptide from PDB file 2D-Grid built from formatted quantum simulation outputs, such as Gaussian 09. Amide-I modes of an ideal beta-sheet Combination of any two models above Construct your own model COSMOSS is designed to be expandable! You can generate the molecule that you are interested in and use the COSMOSS core to calculate its spectrum. Check the definition of the StructureData Class for more information.
     Like  Bookmark
  • The off-diagonal matrix elements of the one-exciton system Hamiltonian ($\hat{H}$) is determined by the selected coupling model. Current implemented models are: TDC: Transition Dipole Coupling model NN_Mix_TDC: Nearest-Neighbor modified TDC Jansen_TDC: Jansen $\phi/\psi$ angle map modified TDC Zero: Zero coupling for testing purpose Transition Dipole Coupling (TDC) model
     Like  Bookmark
  • To study molecular structure in a larger system, it is helpful to move some local mode frequencies away from the others and see how the spectral features change.^isotope For vibrational spectroscopy, this can be done by substituting the atoms within the interested modes with their isotopes. For example, $^{12}C$ can be replaced by $^{13}C$ in amide-I vibration modes. This modification usually reduce the local mode frequencies. To simulate the spectral effect of the isotopic labeling, COSMOSS allows users to manually modify the 'label index' and their shifted frequencies in the Model_GUIs. Let's use the 'Model TCO' as an example: In the 'Local mode setting' panel, the 'Labeled Freq.' specifies the shifted frequency while the 'Label Index' specifies which oscillators will be modified. In this example, I modify the first modes with the local mode frequencies equal to 1630 $cm^{-1}$. Here is the comparison between the non-labeled and the labeled spectrum: You can see a little peak appears around 1620 $cm^{-1}$ due to the isotopic labeling.
     Like  Bookmark
  • This method only works for version 2.3.0 and newer so please download the latest version of the COSMOSS. For the demonstration, let’s use the Two-Coupled Oscillator (TCO) model as an example. Her how you modify system coupling matrix: Generate the TCO structure Call the TCO model from the Main GUI. This should bring up the sub-GUI, Model_TCO: Click on the "Generate" button will pass the structural data to the main GUI. Export the coupling matrix from the main GUI You can export the spectral data class (Data_COSMOSS) by clicking the ‘Export Data'.
     Like  Bookmark