diff --git a/TUTORIAL.md b/TUTORIAL.md index 267b1dc..746ffe8 100644 --- a/TUTORIAL.md +++ b/TUTORIAL.md @@ -1,6 +1,6 @@ # SpecDB Tutorial -The purpose of the following tutorial is to provide examples of how to use SpecDB. There are six levels to the tutorial. _(1)_ SpecDB subcommands and help menus. _(2)_ how to instantiate a database, _(3)_ how to make forms, _(4)_ how to insert forms, _(5)_ viewing what is in the database, _(6)_ updating records in the database, _(7)_ querying information from the database. +The purpose of the following tutorial is to provide examples of how to use SpecDB. There are seven levels to the tutorial. _(1)_ SpecDB subcommands and help menus. _(2)_ how to instantiate a database, _(3)_ how to make forms, _(4)_ how to insert forms, _(5)_ viewing what is in the database, _(6)_ updating records in the database, and _(7)_ querying information from the database. ## 1. SpecDB help menus and subcommands @@ -8,27 +8,27 @@ The first entry point to look for guidance on SpecDB functions is to use the hel 1. `specdb create --db --backup` 2. `specdb forms --table --num` -3. `specdb insert --form --db` +3. `specdb insert --form --db --write` 4. `specdb summary --table --db` -5. `specdb query --sql --db --out` -6. `specdb backup --db --backup` -7. `specdb restore --backup --backup` +5. `specdb query --sql --db --out --star --indices` +6. `specdb backup --db --objects --shafile` +7. `specdb restore --backup --shafile --objects` The subcommands listed above in the logical order the commands are used in. Each subcommand has a separate help menu from `specdb --help` that can be accessed, (e.g `specdb forms --help`). Users first need to create a SpecDB SQLite database file with `create`. Next, users need to populate the database with information. The `forms` command makes the forms for the data fields needed for the SpecDB schema. With a filled form, users use `insert` to insert the form into their database. To verify/check what they inserted, users can use `summary` to investigate the contents of any SpecDB table. Users can pull data out of the database with `query`. With `query` users provide a SQL SELECT statement on the SpecDB summary view to pull data out of the database. `query` also allows for users to extract records from SpecDB by row-ids in the `summary` table. Commands `backup` and `restore` are for the incremental backup operations. ## 2. Instantiating a new SpecDB database -A SpecDB database can be created with `specdb create`. The location of the database .db file needs to be known by the users using the database, or an environment variable can be set. In this tutorial we are going to create a database for the sample data stored in this repository `./sample/`. +A SpecDB database can be created with `specdb create`. The location of the database _.db_ file needs to be known by the users using the database, or an environment variable can be set. In this tutorial we are going to create a database for the sample data stored in this repository `./sample/`. ``` -$ specdb create --db sample.db --backup sample.backup.db +$ specdb create --db sample.db --backup backup.db db configured and initalized Done ``` ## 3. Making forms -Now that a database has been made, we can start adding data to the database. To add data we need to populate a text file form to be read into the database. SpecDB uses YAML to build forms. An example can be seen in `/sample/sample_forms/` +Now that a database has been made, we can start adding data to the database. To add data we need to populate a text file form to be read into the database. SpecDB uses YAML to build forms. Examples can be seen in `/sample/sample_forms/` Running `specdb forms --table user` results in the user form being printed to screen. The output should be exactly as seen below. @@ -58,55 +58,55 @@ $ specdb forms --table user > user.yml Inspection of the resulting form shows that name of the table this form was created for was created for: `user`. On the same line lists the required items need to be filled into this form for insertion into SpecDB. All items not indicated as required are optional. (Note: optional SpecDB terms may be required for BMRB deposition however). -In the `sample/sample_forms/` directory is a users yaml form pre filled out with some user information as an example. Each line in the form file has a comment describing the restrictions on allowable values for that data item, as a well as an example of what can be used for that respective field. Viewing the `sample/sample_forms/users.yaml` we see there are actually multiple users filled in. The `specdb forms` command has the `--num` option for specifying the number of forms to make for a requested table. In the case of `sample/sample_forms/users.yaml` we requested 3. To make the template to do something like `users.yaml` is: +In the `sample/sample_forms/` directory is a users yaml form pre filled out with some user information as an example. Each line in the form file has a comment describing the restrictions on allowable values for that data item, as a well as an example of what can be used for that respective field. Viewing the `sample/sample_forms/users.yaml` we see there are actually multiple users provided. The `specdb forms` command has the `--num` option for specifying the number of forms to make for a requested table. In the case of `sample/sample_forms/users.yaml` we requested 3. To make the template to do something like `users.yaml` is the following command: ``` $ specdb forms --table user --num 3 -user: # # provide information about a user, REQUIRED: `user_id` +user: # provide information about a user, REQUIRED: `user_id` 0: - user_id: '' # no spaces, must be unique, len <= 8, Ex: KJF - given_name: '' # len <= 64, Ex: Keith - family_name: '' # len <= 64, Ex: Fraga - middle_initials: '' # len <= 16, Ex: J - department_and_institution: '' # len <= 128, Ex: MCB UCD - country: '' # len <= 32, Ex: USA - state_province: '' # len <= 32, Ex: NY - city: '' # len <= 32, Ex: Troy - postal_code: '' # len <= 32, Ex: 12180 - role: '' # len <= 64, Ex: postdoc - organization_type: '' # len <= 64, Ex: academic - email_address: '' # no spaces, must have `@`, len <= 64, Ex: user@mail.com + user_id: # no spaces, must be unique, len <= 8, Ex: KJF + given_name: # len <= 64, Ex: Keith + family_name: # len <= 64, Ex: Fraga + middle_initials: # len <= 16, Ex: J + department_and_institution: # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: # no spaces, must have `@`, len <= 64, Ex: user@mail.com 1: - user_id: '' # no spaces, must be unique, len <= 8, Ex: KJF - given_name: '' # len <= 64, Ex: Keith - family_name: '' # len <= 64, Ex: Fraga - middle_initials: '' # len <= 16, Ex: J - department_and_institution: '' # len <= 128, Ex: MCB UCD - country: '' # len <= 32, Ex: USA - state_province: '' # len <= 32, Ex: NY - city: '' # len <= 32, Ex: Troy - postal_code: '' # len <= 32, Ex: 12180 - role: '' # len <= 64, Ex: postdoc - organization_type: '' # len <= 64, Ex: academic - email_address: '' # no spaces, must have `@`, len <= 64, Ex: user@mail.com + user_id: # no spaces, must be unique, len <= 8, Ex: KJF + given_name: # len <= 64, Ex: Keith + family_name: # len <= 64, Ex: Fraga + middle_initials: # len <= 16, Ex: J + department_and_institution: # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: # no spaces, must have `@`, len <= 64, Ex: user@mail.com 2: - user_id: '' # no spaces, must be unique, len <= 8, Ex: KJF - given_name: '' # len <= 64, Ex: Keith - family_name: '' # len <= 64, Ex: Fraga - middle_initials: '' # len <= 16, Ex: J - department_and_institution: '' # len <= 128, Ex: MCB UCD - country: '' # len <= 32, Ex: USA - state_province: '' # len <= 32, Ex: NY - city: '' # len <= 32, Ex: Troy - postal_code: '' # len <= 32, Ex: 12180 - role: '' # len <= 64, Ex: postdoc - organization_type: '' # len <= 64, Ex: academic - email_address: '' # no spaces, must have `@`, len <= 64, Ex: user@mail.com + user_id: # no spaces, must be unique, len <= 8, Ex: KJF + given_name: # len <= 64, Ex: Keith + family_name: # len <= 64, Ex: Fraga + middle_initials: # len <= 16, Ex: J + department_and_institution: # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: # no spaces, must have `@`, len <= 64, Ex: user@mail.com ``` This output can be redirected to any file and filled in the with appropriate information. -Forms can be made for different tables to be in the same form. A very common use for this is inserting a buffer into SpecDB. There are two tables in the SpecDB schema that describe buffers, `buffer` and `buffer_components`. `buffer` provides the name of the buffer, the `buffer_id` and the buffer's pH. The `buffer_components` table allows for variable number of components to be added to the buffer. For example, if a buffer with 3 components is needed to be added to SpecDB, the following command would generate the correct form: +Forms can be made to include information for different tables in the same form. A very common use for this is inserting a buffer into SpecDB. There are two tables in the SpecDB schema that describe buffers, `buffer` and `buffer_components`. `buffer` provides the name of the buffer as the `buffer_id`, and the buffer's pH. The `buffer_components` table allows for variable number of components to be added to the buffer. For example, if a buffer with 3 components is needed to be added to SpecDB, the following command would generate the correct form: ```$ specdb forms --table buffer buffer_components --num 1 3 buffer: # store all buffers used, their id and their pH, REQUIRED: `buffer_id`, `buffer_pH`, NOTE: the buffer components go in the `buffer_components` table @@ -130,10 +130,9 @@ buffer_components: # describe the component(s) of a buffer, REQUIRED: `buf buffer_component: # name of the component, len <= 64, Ex: NaCl buffer_component_value: # the numeric concentration value of the component, Ex: 100.0 buffer_component_unit: # unit of concentration, one of (`mM`, `% (v/v)`, `mg/mL`), Ex: mM - ``` -It is important to note that if the `--num` option is provided, that the number of iterations to take match the number of tables requested. In the above case, the `buffer` form was created once because of the `1` after the `--num` and three `buffer_components` were made because of the `3` after the `1` in the `--num` options. The number of options in `--table` and `--num` are in a one-to-one correspondence with each other. If no `--num` options are provided it is assumed that all tables are produced just once. +It is important to note that if the `--num` option is provided, that the number of iterations to take match the number of tables requested. In the above case, the `buffer` form was created once because of the `1` after the `--num` and three `buffer_components` were made because of the `3` after the `1` in the `--num` options. The number of options in `--table` and `--num` are in direct, sequential correspondence with each other. If no `--num` options are provided it is assumed that all tables are produced just once. Inspecting `sample/sample_forms/complete_sample.yaml` will find all the information required to describe a biomolecular NMR sample. It is recommended that users use `specdb forms` to create the forms when they need them because users can define multiple entities at a time, and one general form will not suffice. However, it is instructive to see all the metadata items that are tracked in SpecDB by looking at `complete_sample.yaml`. @@ -150,10 +149,10 @@ $ specdb forms --table session > session.yaml ## 4. Inserting forms -In this section, users can practice with the pre-filled forms in `sample/sample_forms/`. To first insert users in a group, the following insert command will insert the user information provided in `user.yaml`. +In this section, users can practice with the pre-filled forms in `sample/sample_forms/`. To first insert users in a group, the following insert command will insert the user information provided in `user.yaml`. We will be working off the sample forms in the RPISpecDB repository. To follow-along, just provide the path to where the repository is installed locally. ``` -$ specdb insert --db sample.db --form user.yaml +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/users.yaml information provided is new { "user_id": "KJF", @@ -173,25 +172,25 @@ Must set --write to insert provided information to database Aborting ``` -`sample.db` is the database created in section (2) of the tutorial. Running the above commnd results in a Aborting error. This means that SpecDB attempted the insert, but found that the requested information was new and could not complete the insertion. This check is in place to ensure users truly want to insert the requested information. Sometimes the provided information may be new, but new and unique because of a typo and the actual information being inserted is already in the database. To overwrite this check, the `--write` flag must be used. +`sample.db` is the database created in section (2) of the tutorial. Running the above commnd results in a _Aborting_ error. This means that SpecDB attempted the insert, but found that the requested information was new and could not complete the insertion. This check is in place to ensure users truly want to insert the requested information. Sometimes the provided information may be new, but new and unique because of a typo and the actual information being inserted is already in the database. To overwrite this check, the `--write` flag must be used. Essentially the `--write` flag is meant to check with the user if they really want to insert the provided information to the database. ``` -$ specdb insert --db sample.db --form sample_forms/users.yaml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_forms/users.yaml +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/users.yaml --write +Inserted data from json file at RPISpecDB/sample/sample_forms/users.yaml ``` The last line indicates the data was inserted. Running the `specdb insert` command on the `buffers.yaml` with the `--write` flag results in the following. ``` -$ specdb insert --db sample.db --form sample_forms/buffers.yaml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_forms/users.yaml +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/buffers.yaml --write +Inserted data from json file at RPISpecDB/sample/sample_forms/buffers.yaml ``` Now that the buffer is inserted, we can attempt to insert our information about a sample. To learn more about the relationships and definitions of each of the tables in the SpecDB manuscript refer to the manuscript. Each table, from `target` to `pst` needs to be inserted to fully describe a sample. However, typically for each table there is a subset of required data items, so not every data item is required for insertion. ``` -$ specdb insert --db sample.db --form sample_forms/sample.yaml --write +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/sample.yaml --write SQLite error on insert on table target Err Message: FOREIGN KEY constraint failed @@ -200,7 +199,7 @@ ensure all ids this table relates to (i.e constructs relate to targets) are inse Aborting ``` -This insertion results in a different error from before. Here, the error was not because the information was new because the `--write` was on. The error is coming from SQLite, that a foreign key constraint failed. A foreign key is a relationship between two tables. These foreign keys need to be present in the two tables for SpecDB to allow an insert. The error message is not clear on what column the constrain failure came on, but it says the error came from the `target` table and to inspect the form for what is required for a target. Using `forms` we can see what is required for `target`. +This insertion results in a different error from before. Here, the error was not because the information was new because the `--write` was on. The error is coming from SQLite, that a foreign key constraint failed. A foreign key is a relationship between two tables. These foreign keys need to be present in the two tables for SpecDB to allow an insert. The error message is not clear on what column the constraint failure came on, but it says the error came from the `target` table and to inspect the form for what is required for a target. Using `forms` we can see what is required for `target`. ``` $ specdb forms --table target @@ -232,25 +231,25 @@ target: # molecular target information, REQUIRED: `target_id` We inserted the user information for `GTM` but not the project id `DBh` this target is associated with. We can solve this by inserting the project information using the `sample/sample_forms/project.yaml` form. ``` -$ specdb insert --db sample.db --form project.yaml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_forms/project.yaml +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/project.yaml --write +Inserted data from json file at RPISpecDB/sample/sample_forms/project.yaml ``` Then re-doing the sample insert we get: ``` -specdb insert --db sample.db --form sample.yaml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_forms/sample.yaml +specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/sample.yaml --write +Inserted data from json file at RPISpecDB/sample/sample_forms/sample.yaml ``` To insert FIDs into SpecDB, we first need to insert the spectrometer information. ``` -$ specdb insert --db sample.db --form spectrometer.yaml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_forms/spectrometer.yaml +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/spectrometer.yaml --write +Inserted data from json file at RPISpecDB/sample/sample_forms/spectrometer.yaml ``` -Inserting FIDs into SpecDB are typically organized into sessions. When FIDs are recorded from a Bruker instrument, they are recorded into sub-directories of a data collection session directory. We mimiced this situation in `sample/sample_sessions/test00/`. In `test00/`, there are two subdirectories, each with a time domain dataset. There is also a `specdb.session.yaml`. This file can be creatd with `specdb forms --table session`. The session yaml describe thes spectrometer this data collection was at, the user who conducted the session, and the sample tube the data was collected at. Contents of this session is displayed below: +Inserting FIDs into SpecDB are typically organized into sessions. When FIDs are recorded from a Bruker instrument, they are recorded into sub-directories of a data collection session directory. We mimicked this situation in `sample/sample_sessions/`. In `example1/`, there are two subdirectories, each with a time domain dataset. There is also a `specdb.session.yaml`. This file can be creatd with `specdb forms --table session`. The session yaml describe the spectrometer this data collection was done on, the user who conducted the session, and the sample tube the data was collected of. Contents of this session is displayed below: ``` session: # describe a data collection session, REQUIRED: `session_preparer`, `spectrometer_id`, `pst_id` @@ -265,12 +264,15 @@ All three items in this session are required. Performing the insert on this session yaml file results in: ``` -$ specdb insert --db sample.db --form sample_sessions/test00/specdb.session.yaml --write +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_sessions/example1/specdb.session.yaml --write a ./1/uxnmr.par a ./1/prosol_History a ./1/pulseprogram a ./1/format.temp a ./1/audita.txt +a ./1/pdata/1/proc +a ./1/pdata/1/title +a ./1/pdata/1/procs a ./1/fid a ./1/scon2 a ./1/acqu @@ -282,45 +284,188 @@ a ./2/acqu2s a ./2/format.temp a ./2/audita.txt a ./2/acqu2 +a ./2/pdata/1/proc +a ./2/pdata/1/proc2 +a ./2/pdata/1/title +a ./2/pdata/1/proc2s +a ./2/pdata/1/procs a ./2/cpdprg3 a ./2/ser a ./2/scon2 a ./2/acqu a ./2/acqus -Inserted data from form file at /Users/kfraga/RESEARCH/SpecDB/code/sample/sample_sessions/test00/specdb.session.yaml -``` - -SpecDB is finding what sub directories have time domain data, finding the parameter files, and inserting the time domain data into the database. The session yaml file changes, reflecting all the information the `specdb insert` found: - -``` -session: - session_preparer: TAR - spectrometer_id: Hu800 - pst_id: Db0515A.000 - folder_name: test00 -time_domain_data: - '1': - subdir_name: '1' - pulse_sequence_nickname: - probe_id: - session_id: 1 - md5checksum: f1d80ff78a50d207b4d3b13af239b839 - temperature_from_data: 293.0 - experiment_date: '2010-09-26 21:33:06.812' - pulse_sequence: zgpr - probe_info: 1.7_mm_CPTCI_1H-13C/15N/D_Z-GRD_Z108160/0002 - pst_id: Db0515A.000 - '2': - subdir_name: '2' - pulse_sequence_nickname: - probe_id: - session_id: 1 - md5checksum: e3c4e84d0ae67e8ca1160ebf6d5b6838 - temperature_from_data: 293.0 - experiment_date: '2010-09-26 22:16:43.706' - pulse_sequence: hsqcetf3gpsi - probe_info: 1.7_mm_CPTCI_1H-13C/15N/D_Z-GRD_Z108160/0002 - pst_id: Db0515A.000 +Inserted data from form file at RPISpecDB/sample/sample_sessions/example1/specdb.session.yaml +``` + +SpecDB is finding what sub directories that have time domain data, finding the parameter files, and inserting the time domain data into the database. The lines that get printed with `a ./*` reflect the files that SpecDB is finding and placing into a tar archive to ultimately be inserted into SpecDB. The session yaml file changes, reflecting all the information the `specdb insert` found: + +``` +session: # describe a data collection session, REQUIRED: pst_id (if not none, just use 'NONE') + 0: + session_preparer: TAR # `user_id` of the person who prepared and collected the session, must already be in user table, Ex: KJF + spectrometer_id: Hu800 # `spectrometer_id` session was collected at, must already be in spectrometer table, Ex: Hu800 + pst_id: Db0515A.000 # `pst_id` the session is for +time_domain_dataset: # record information about a time domain dataset, REQUIRED: `subdir_name` + 0: + subdir_name: '1' # path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ + pst_id: Db0515A.000 # `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname: # nickname for pulse sequence, controlled vocabulary + probe_id: # `probe_id` for the probe, if blank probe information pulled from fid directory + 1: + subdir_name: '2' # path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ + pst_id: Db0515A.000 # `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname: # nickname for pulse sequence, controlled vocabulary + probe_id: # `probe_id` for the probe, if blank probe information pulled from fid directory +``` + +Other points to make note of, SpecDB does search for processing scripts and processing parameter files in a `pdata/` directories. However, no processed data is archived in a SpecDB instance. The sample session `example1/` did not have a `nmrpipe` processing scripts. The session `example3` does. Inserting `example3` looks like: + +``` +$ specdb insert --db sample.db --form RPISpecDB/sample/sample_sessions/example3/specdb.yaml --write +a ./10_Chsqc-800/uxnmr.par +a ./10_Chsqc-800/pulseprogram +a ./10_Chsqc-800/.DS_Store +a ./10_Chsqc-800/acqu2s +a ./10_Chsqc-800/proc.com +a ./10_Chsqc-800/format.temp +a ./10_Chsqc-800/audita.txt +a ./10_Chsqc-800/acqu2 +a ./10_Chsqc-800/pdata/1/proc +a ./10_Chsqc-800/pdata/1/proc2 +a ./10_Chsqc-800/pdata/1/title +a ./10_Chsqc-800/pdata/1/proc2s +a ./10_Chsqc-800/pdata/1/procs +a ./10_Chsqc-800/cpdprg2 +a ./10_Chsqc-800/overflow_log_dru1.txt +a ./10_Chsqc-800/uxnmr.info +a ./10_Chsqc-800/ser +a ./10_Chsqc-800/fid.com +a ./10_Chsqc-800/scon2 +a ./10_Chsqc-800/acqu +a ./10_Chsqc-800/acqus +a ./10_Chsqc-800/specpar +Inserted data from form file at /Users/kfraga/RESEARCH/RPISpecDB/sample/sample_sessions/example3/specdb.yaml +``` + +The `*.com` scripts are `nmrpipe` scripts that were used to process that specific FID, which are saved separated in SpecDB. + +SpecDB also allows users to insert default processing scripts for pulse sequences used in their research group. To insert a default processing script, you can use `specdb forms` to inspect what is required. + +``` +$ specdb forms --table default_processing_scripts +default_processing_scripts: # record a default nmrpipe processing script for every pulse sequence + 0: + pulse_sequence_name: # name of pulse sequence, from Bruker it is the value of the PULPROG tag + nickname: # user provided nickname, references the pulse_sequence_nicknames table + default_processing: # path to text file of a nmrpipe processing script that read a FID for this pulse sequence type +``` + +You can use `specdb summary` view the possible pulse sequence nicknames to use: + +``` +$ specdb summary ---specdb summary --db sample.db --table pulse_sequence_names + + id nickname + 55 13C-(1H) hetNOE + 54 15N-(1H) hetNOE + 80 15N-1H solid-sta... + 2 1D 13C + 3 1D 15N + 66 1D 15N CPMG + 57 1D 15N T1 + 63 1D 15N T1rho + 60 1D 15N T2 + 1 1D 1H + 4 1D 31P + 90 1H-detected (H)N... + 61 2D 15N T2 + 18 2D (HB)CB(CGCD)HD + 71 2D 13C-13C DARR + 88 2D 13C-detected ... + 89 2D 13C-detected NCA + 84 2D 13C/13C PDSD + 85 2D 13C/13C TOBSY + 67 2D 15N CPMG + 58 2D 15N T1 + 64 2D 15N T1rho + 82 2D 15N-13C TEDOR + 5 2D 1H-13C HMQC + 9 2D 1H-13C HSQC + 11 2D 1H-13C HSQC a... + 12 2D 1H-13C HSQC a... + 10 2D 1H-13C HSQC/HMQC + 6 2D 1H-15N HSQC + 7 2D 1H-15N HSQC N... + 8 2D 1H-15N TROSY + 16 2D 1H-1H COSY + 17 2D 1H-1H NOESY + 14 2D 1H-1H ROESY + 13 2D 1H-1H TOCSY + 70 2D DARR + 15 2D DQF-COSY + 87 2D HBCBCGCD + 86 2D HBCBCGCDCEHE + 36 3D (C)CCH-TOCSY + 38 3D 13C-separated... + 68 3D 15N CPMG + 59 3D 15N T1 + 65 3D 15N T1rho + 62 3D 15N T2 + 56 3D 15N,13C sim N... + 37 3D 15N-separated... + 41 3D 1H-13C NOESY + 42 3D 1H-13C NOESY ... + 43 3D 1H-13C NOESY ... + 39 3D 1H-15N NOESY + 40 3D 1H-15N TOCSY + 23 3D C(CO)NH + 21 3D CBCACONH + 22 3D CBCANH + 33 3D CCH-TOCSY + 34 3D H(CCO)NH + 30 3D HBHA(CO)NH + 26 3D HBHANH + 47 3D HCACO + 46 3D HCCH-COSY + 35 3D HCCH-TOCSY + 28 3D HN(CA)CO + 31 3D HN(CO)CA + 32 3D HN(CO)CACB + 48 3D HN(COCA)CB + 25 3D HNCA + 27 3D HNCACB + 29 3D HNCACO + 24 3D HNCO + 44 3D HNHA + 45 3D HNHB + 77 3D NCACX + 76 3D NCOCX + 91 3D RNCSA + 92 3D ROCSA + 50 4D 13C-separated... + 49 4D CC NOESY + 51 5D APSY CBCACONH + 52 5D APSY HACACONH + 53 5D HN(CA)CONH + 72 CANcoCX + 83 CN TEDOR + 75 CONCA + 69 DARR + 81 FS-REDOR + 19 JR NOESY + 20 L-PROSY NOESY + 73 NCACX + 74 NCOCX + 78 PAIN + 79 PAR + +``` + +Section 5 below discusses more how to use `specdb summary`. To submit a default processing script then you can make `default_processing_script` yaml file and use `specdb insert` to insert it. The `default_processing` tag is expecting a filesystem path to where a text file for processing script wants to submit. There is an example default processing script yaml in the repo at `sample/sample_forms/` + +``` +$ $ specdb insert --db sample.db --form RPISpecDB/sample/sample_forms/default.processing.yaml --write +Inserted data from form file at RPISpecDB/sample/sample_forms/default.processing.yaml ``` ## 5. View what is in the database @@ -329,72 +474,77 @@ Each time we inserted a form into the database, we did not check that the provid ``` -$ specdb summary --table user --db sample.db +$ specdb summary --db sample.db --table user id user_id given_name family_name middle_initial department_and country state_province city postal_code \ - 3 GTM Gaetano Montelione T None None None None None - 1 KJF Keith Fraga J UC MCB None None None None - 2 TAR Theresa Ramelot A None None None None None + 3 GTM Gaetano Montelione None None None None None None + 2 KJF Keith Fraga J RPI None None None None + 1 NONE None None None None None None None None + 4 TAR Theresa Ramelot A None None None None None - role organization_t email_address - None None monteg3@rpi.edu - None None kjfraga@ucdavis.edu - None None ramelt2@rpi.edu + role organization_t email_address + None None monteg3@rpi.edu + postdoc None kjfraga@ucdavis.edu + None None None + None None ramelt2@rpi.edu ``` A simple table is printed to screen of the current items in the database. Try it on any other table. ## 6. Update a record in SpecDB -It is often the case that information already in the database needs to be amended or added to. Suppose we want to update a user's information. The strategy is to pull out the information already in the database into a yaml form, edit the form, write it back to the database with the write flag. SpecDB detected when in a form, only a table id is provided, like `user_id`, and the rest of the items are blank. In that case, SpecDB understands that what is being requested is the rest of information for that user. We are going to use this functionality to update a record. +It is often the case that information already in the database needs to be amended or added to. Suppose we want to update a user's information. The strategy is to pull out the information already in the database into a yaml form, edit the form, write it back to the database with the write flag. SpecDB detects when in a form only a table id is provided, like `user_id`, and the rest of the items are blank. In that case, SpecDB understands that what is being requested is the rest of information for that user. We are going to use this functionality to update a record. First, make an empty user form. ``` $ specdb forms --table user > utest.yml + ``` -Add only the id of the user we want to edit. In this case we are changing `KJF`. Use any text editor you are comfortable. +Add only the id of the user we want to edit. In this case we are only adding `KJF` to the `user_id` tag. ``` -cat utest.yml -user: # provide information about a user, REQUIRED: `user_id` - user_id: 'KJF' # no spaces, must be unique, len <= 8, Ex: KJF - given_name: '' # len <= 64, Ex: Keith - family_name: '' # len <= 64, Ex: Fraga - middle_initials: '' # len <= 16, Ex: J - department_and_institution: '' # len <= 128, Ex: MCB UCD - country: '' # len <= 32, Ex: USA - state_province: '' # len <= 32, Ex: NY - city: '' # len <= 32, Ex: Troy - postal_code: '' # len <= 32, Ex: 12180 - role: '' # len <= 64, Ex: postdoc - organization_type: '' # len <= 64, Ex: academic - email_address: '' # no spaces, must have `@`, len <= 64, Ex: user@mail.com +$ cat utest.yml +user: # provide information about a user, REQUIRED: `user_id` + 0: + user_id: KJF # no spaces, must be unique, len <= 8, Ex: KJF + given_name: # len <= 64, Ex: Keith + family_name: # len <= 64, Ex: Fraga + middle_initials: # len <= 16, Ex: J + department_and_institution: # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: # no spaces, must have `@`, len <= 64, Ex: user@mail.com ``` -User `specdb insert` to pull the information for user `KJF` out from the database. +Using `specdb insert` to pull the information for user `KJF` out from the database. ``` $ specdb insert --db sample.db --form utest.yml -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/utest.yml +Inserted data from form file at utest.yml $ cat utest.yml -user: - user_id: KJF - given_name: Keith - family_name: Fraga - middle_initials: J - department_and_institution: UC MCB - country: '' - state_province: '' - city: '' - postal_code: '' - role: '' - organization_type: '' - email_address: kjfraga@ucdavis.edu +user: # provide information about a user, REQUIRED: `user_id` + 0: + user_id: KJF # no spaces, must be unique, len <= 8, Ex: KJF + given_name: Keith # len <= 64, Ex: Keith + family_name: Fraga # len <= 64, Ex: Fraga + middle_initials: J # len <= 16, Ex: J + department_and_institution: RPI # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: postdoc # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: kjfraga@ucdavis.edu # no spaces, must have `@`, len <= 64, Ex: user@mail.com ``` -Edit `utest.yml` to change the first name from Keith to Kevin. (Any example would suffice). Re-insert `utest.yml`. First without `--write`, then with. +As you can see, the other tags defined for user `KJF` have been pulled in. We can then edit `utest.yml` to change the first name from Keith to Kevin. (Any example would suffice). Re-insert `utest.yml`. First without `--write`, then with. ``` $ specdb insert --db sample.db --form utest.yml @@ -405,12 +555,12 @@ input information: "given_name": "Kevin", "family_name": "Fraga", "middle_initials": "J", - "department_and_institution": "UC MCB", + "department_and_institution": "RPI", "country": null, "state_province": null, "city": null, "postal_code": null, - "role": null, + "role": "postdoc", "organization_type": null, "email_address": "kjfraga@ucdavis.edu" } @@ -420,18 +570,18 @@ database information: "given_name": "Keith", "family_name": "Fraga", "middle_initials": "J", - "department_and_institution": "UC MCB", + "department_and_institution": "RPI", "country": null, "state_province": null, "city": null, "postal_code": null, - "role": null, + "role": "postdoc", "organization_type": null, "email_address": "kjfraga@ucdavis.edu" } Aborting $ specdb insert --db sample.db --form utest.yml --write -Inserted data from json file at /Users/kfraga/RESEARCH/SpecDB/code/sample/utest.yml +Inserted data from form file at utest.yml ``` Using `summary`, we can see the change. @@ -440,14 +590,16 @@ Using `summary`, we can see the change. $ specdb summary --db sample.db --table user id user_id given_name family_name middle_initial department_and country state_province city postal_code \ - 3 GTM Gaetano Montelione T None None None None None - 4 KJF Kevin Fraga J UC MCB None None None None - 2 TAR Theresa Ramelot A None None None None None + 3 GTM Gaetano Montelione None None None None None None + 5 KJF Kevin Fraga J RPI None None None None + 1 NONE None None None None None None None None + 4 TAR Theresa Ramelot A None None None None None - role organization_t email_address - None None monteg3@rpi.edu - None None kjfraga@ucdavis.edu - None None ramelt2@rpi.edu + role organization_t email_address + None None monteg3@rpi.edu + postdoc None kjfraga@ucdavis.edu + None None None + None None ramelt2@rpi.edu ``` ## 7. Query information from SpecDB @@ -458,44 +610,364 @@ To query information from SpecDB, some FID data must be inserted first. The `spe $ specdb summary --db sample.db --table summary id experiment_dat pulse_sequence pulse_sequence md5checksum session_id session_prepar \ - 1 2010-09-26 21:33... None zgpr f1d80ff78a50d207... 1 TAR - 2 2010-09-26 22:16... None hsqcetf3gpsi e3c4e84d0ae67e8c... 1 TAR + 11 2010-09-26 21:33... None zgpr f1d80ff78a50d207... 1 TAR + 12 2010-09-26 22:16... None hsqcetf3gpsi e3c4e84d0ae67e8c... 1 TAR + 13 2021-03-01 19:01... None hsqcetgp 335f5a0ef63cb690... 2 KJF temperature buffer_id pst_id pst_preparer batch_id batch_preparer sample_sequenc expression_id \ - 293.0 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A - 293.0 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + 293.0000 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + 293.0000 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + 297.9658 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A expression_pre construct_id construct_prep target_id target_prepare target_sequenc project \ TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh + TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh construct_sequ spectrometer_i field probe_id probehd tube_type zipped_dir MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 1.7_mm_CPTCI_1H-... NMR tube b'\x1f\x8b\x08\x... - MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 1.7_mm_CPTCI_1H-... NMR tube b'\x1f\x8b\x08\x... + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 1.7_mm_CPTCI_1H-... NMR tube b'\x1f\x8b\x08\x... + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 5_mm_CPTCI_1H-13... NMR tube b'\x1f\x8b\x08\x... ``` In this example we are going to query for FIDs produced from an HSQC. This can be accomplished with the following query: ``` -specdb query --db sample.db --sql "SELECT * FROM summary WHERE pulse_sequence LIKE '%hsqc%'" --out results -/Users/kfraga/RESEARCH/SpecDB/code/sample/results/TAR_Db0515A.000_20100926 -``` - -The above command made a directory `results/` and put the query results in this folder. The naming of the subdirectories underneath `results` goes `{user_id}_{pst_id}_{date}`. Then underneath this results subdirectory is the FID that was found as a result of the query. Note that the whole directory the `ser` file was in was also saved, keeping the auxillary files that were made in during the `ser` file collection. - -To produce a NMR-STAR file for this result, just use the `--star` command to produce a STAR file in the directory where the `ser` file is. - - +$ specdb query --sql "SELECT * FROM summary WHERE pulse_sequence LIKE '%hsqc%'" --db sample.db + id experiment_dat pulse_sequence pulse_sequence md5checksum session_id session_prepar \ + 12 2010-09-26 22:16... None hsqcetf3gpsi e3c4e84d0ae67e8c... 1 TAR + 13 2021-03-01 19:01... None hsqcetgp 335f5a0ef63cb690... 2 KJF + temperature buffer_id pst_id pst_preparer batch_id batch_preparer sample_sequenc expression_id \ + 293.0000 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + 297.9658 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + expression_pre construct_id construct_prep target_id target_prepare target_sequenc project \ + TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh + TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh + construct_sequ spectrometer_i field probe_id probehd tube_type zipped_dir + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 1.7_mm_CPTCI_1H-... NMR tube b'\x1f\x8b\x08\x... + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 5_mm_CPTCI_1H-13... NMR tube b'\x1f\x8b\x08\x... +``` + +Without specifying an output directory, `specdb query` produces a table of records that were found in the query. This helps users dissect and refine their query to the records they ultimately want. Specifying an output directory results in those the FIDs being copied into the directory the user specifies. + +``` +$ specdb query --sql "SELECT * FROM summary WHERE pulse_sequence LIKE '%hsqc%'" --db sample.db --out query_results +$ tree query_results/ +query_results/ +├── TAR_Db0515A.000_20100926 +│   └── 2 +│   ├── acqu +│   ├── acqu2 +│   ├── acqu2s +│   ├── acqus +│   ├── audita.txt +│   ├── cpdprg3 +│   ├── format.temp +│   ├── pdata +│   │   └── 1 +│   │   ├── proc +│   │   ├── proc2 +│   │   ├── proc2s +│   │   ├── procs +│   │   └── title +│   ├── prosol_History +│   ├── pulseprogram +│   ├── scon2 +│   ├── ser +│   └── uxnmr.par +└── TAR_Db0515A.000_20210301 + └── 10_Chsqc-800 + ├── acqu + ├── acqu2 + ├── acqu2s + ├── acqus + ├── audita.txt + ├── cpdprg2 + ├── fid.com + ├── format.temp + ├── overflow_log_dru1.txt + ├── pdata + │   └── 1 + │   ├── proc + │   ├── proc2 + │   ├── proc2s + │   ├── procs + │   └── title + ├── proc.com + ├── pulseprogram + ├── scon2 + ├── ser + ├── specpar + ├── uxnmr.info + └── uxnmr.par +``` + +The above command made a directory `query_results/` and places the query results in this folder. The naming of the subdirectories underneath `results` goes `{user_id}_{pst_id}_{date}`. Then underneath this results subdirectory is the FID that was found as a result of the query. Note that the whole directory the `ser` file was in was also saved, keeping the auxillary files that were made in during the `ser` file collection. +To produce a NMR-STAR file for this result, just use the `--star` command to produce a STAR file in the directory where the `ser` file is. +``` +$ specdb query --sql "SELECT * FROM summary WHERE pulse_sequence LIKE '%hsqc%'" --db sample.db --out query_results --star +2022-06-21 14:49:41,207,207 WARNING [parser.py:161] Loop with no data on line: 33 +2022-06-21 14:49:41,207,207 WARNING [parser.py:161] Loop with no data on line: 72 +2022-06-21 14:49:41,208,208 WARNING [parser.py:161] Loop with no data on line: 84 +2022-06-21 14:49:41,208,208 WARNING [parser.py:161] Loop with no data on line: 93 +2022-06-21 14:49:41,208,208 WARNING [parser.py:161] Loop with no data on line: 130 +2022-06-21 14:49:41,208,208 WARNING [parser.py:161] Loop with no data on line: 161 +2022-06-21 14:49:41,208,208 WARNING [parser.py:161] Loop with no data on line: 200 +2022-06-21 14:49:41,209,209 WARNING [parser.py:161] Loop with no data on line: 237 +2022-06-21 14:49:41,209,209 WARNING [parser.py:161] Loop with no data on line: 280 +2022-06-21 14:49:41,209,209 WARNING [parser.py:161] Loop with no data on line: 304 +2022-06-21 14:49:41,209,209 WARNING [parser.py:161] Loop with no data on line: 390 +2022-06-21 14:49:41,210,210 WARNING [parser.py:161] Loop with no data on line: 403 +2022-06-21 14:49:41,604,604 WARNING [parser.py:161] Loop with no data on line: 33 +2022-06-21 14:49:41,605,605 WARNING [parser.py:161] Loop with no data on line: 72 +2022-06-21 14:49:41,605,605 WARNING [parser.py:161] Loop with no data on line: 84 +2022-06-21 14:49:41,605,605 WARNING [parser.py:161] Loop with no data on line: 93 +2022-06-21 14:49:41,605,605 WARNING [parser.py:161] Loop with no data on line: 130 +2022-06-21 14:49:41,605,605 WARNING [parser.py:161] Loop with no data on line: 161 +2022-06-21 14:49:41,606,606 WARNING [parser.py:161] Loop with no data on line: 200 +2022-06-21 14:49:41,606,606 WARNING [parser.py:161] Loop with no data on line: 237 +2022-06-21 14:49:41,606,606 WARNING [parser.py:161] Loop with no data on line: 280 +2022-06-21 14:49:41,606,606 WARNING [parser.py:161] Loop with no data on line: 304 +2022-06-21 14:49:41,607,607 WARNING [parser.py:161] Loop with no data on line: 390 +2022-06-21 14:49:41,607,607 WARNING [parser.py:161] Loop with no data on line: 403 +$ tree query_results/ +query_results/ +├── TAR_Db0515A.000_20100926 +│   └── 2 +│   ├── acqu +│   ├── acqu2 +│   ├── acqu2s +│   ├── acqus +│   ├── audita.txt +│   ├── cpdprg3 +│   ├── fid.star +│   ├── format.temp +│   ├── pdata +│   │   └── 1 +│   │   ├── proc +│   │   ├── proc2 +│   │   ├── proc2s +│   │   ├── procs +│   │   └── title +│   ├── prosol_History +│   ├── pulseprogram +│   ├── scon2 +│   ├── ser +│   └── uxnmr.par +└── TAR_Db0515A.000_20210301 + └── 10_Chsqc-800 + ├── acqu + ├── acqu2 + ├── acqu2s + ├── acqus + ├── audita.txt + ├── cpdprg2 + ├── fid.com + ├── fid.star + ├── format.temp + ├── overflow_log_dru1.txt + ├── pdata + │   └── 1 + │   ├── proc + │   ├── proc2 + │   ├── proc2s + │   ├── procs + │   └── title + ├── proc.com + ├── pulseprogram + ├── scon2 + ├── ser + ├── specpar + ├── uxnmr.info + └── uxnmr.par +``` + +Note that now NMR-STAR files have been created for those FIDs, `fid.star`. Also note, that the `pdata` directories have also been preserved and keep the same directory structure as from their original sources. + +Users can also query FIDs from a SpecDB instance by row ids in the summary table. Investigating the help menu for `specdb query` reveals arguments for providing row ids. + +``` +$ specdb query --help +usage: specdb query [-h] [--sql [ ...]] [--star] --db + [--out ] [--indices [ ...]] + +optional arguments: + -h, --help show this help message and exit + --sql [ ...] + query using sql syntax. The query can be on any table. + If no --output format is given, results are printed to + screen. + --star whether to write a NMR-STAR file for each FID in the + query results + --db path to specific specdb database file to use. use + `specdb create` to create a new database file + --out directory to place results of the query + --indices [ ...] + provide a list of row ids in the summary table to + collect users can provide a list of ids directly on + the command line space separated, or in a .csv file + with all ids comma separated on first line +``` + +We can use `--indices` to pull out the same data as before. First run the query tool with no output directory to determine the ids you would want: + +``` +$ specdb query --sql "SELECT * FROM summary WHERE pulse_sequence LIKE '%hsqc%'" --db sample.db + id experiment_dat pulse_sequence pulse_sequence md5checksum session_id session_prepar \ + 12 2010-09-26 22:16... None hsqcetf3gpsi e3c4e84d0ae67e8c... 1 TAR + 13 2021-03-01 19:01... None hsqcetgp 335f5a0ef63cb690... 2 KJF + temperature buffer_id pst_id pst_preparer batch_id batch_preparer sample_sequenc expression_id \ + 293.0000 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + 297.9658 h7.4n50 Db0515A.000 TAR Db0515A None GPLIEVLA Db0515A + expression_pre construct_id construct_prep target_id target_prepare target_sequenc project \ + TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh + TAR Db0515A KJF Db0515 GTM MGPLIEVLA DBh + construct_sequ spectrometer_i field probe_id probehd tube_type zipped_dir + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 1.7_mm_CPTCI_1H-... NMR tube b'\x1f\x8b\x08\x... + MGHHHHHHHSMGPLIEVLA Hu800 800 MHz None 5_mm_CPTCI_1H-13... NMR tube b'\x1f\x8b\x08\x... +``` + +Perhaps we only want the `ser` file from the 2010 date, so we can run the following command: + +``` +$ specdb query --db sample.db --indices 12 --out only_12 --star +2022-06-21 15:02:16,230,230 WARNING [parser.py:161] Loop with no data on line: 33 +2022-06-21 15:02:16,230,230 WARNING [parser.py:161] Loop with no data on line: 72 +2022-06-21 15:02:16,231,231 WARNING [parser.py:161] Loop with no data on line: 84 +2022-06-21 15:02:16,231,231 WARNING [parser.py:161] Loop with no data on line: 93 +2022-06-21 15:02:16,231,231 WARNING [parser.py:161] Loop with no data on line: 130 +2022-06-21 15:02:16,231,231 WARNING [parser.py:161] Loop with no data on line: 161 +2022-06-21 15:02:16,231,231 WARNING [parser.py:161] Loop with no data on line: 200 +2022-06-21 15:02:16,232,232 WARNING [parser.py:161] Loop with no data on line: 237 +2022-06-21 15:02:16,232,232 WARNING [parser.py:161] Loop with no data on line: 280 +2022-06-21 15:02:16,232,232 WARNING [parser.py:161] Loop with no data on line: 304 +2022-06-21 15:02:16,233,233 WARNING [parser.py:161] Loop with no data on line: 390 +2022-06-21 15:02:16,233,233 WARNING [parser.py:161] Loop with no data on line: 403 +$ tree only_12/ +only_12/ +└── TAR_Db0515A.000_20100926 + └── 2 + ├── acqu + ├── acqu2 + ├── acqu2s + ├── acqus + ├── audita.txt + ├── cpdprg3 + ├── fid.star + ├── format.temp + ├── pdata + │   └── 1 + │   ├── proc + │   ├── proc2 + │   ├── proc2s + │   ├── procs + │   └── title + ├── prosol_History + ├── pulseprogram + ├── scon2 + ├── ser + └── uxnmr.par +``` + +The `Loop with no data` warnings are coming from `pynmrstar`. If we wanted both records `12` and `13`, we just specify them both in the same `specdb query` statement. + +``` +$ specdb query --db sample.db --indices 12 13 --out both/ --star +2022-06-21 15:07:27,920,920 WARNING [parser.py:161] Loop with no data on line: 33 +2022-06-21 15:07:27,921,921 WARNING [parser.py:161] Loop with no data on line: 72 +2022-06-21 15:07:27,921,921 WARNING [parser.py:161] Loop with no data on line: 84 +2022-06-21 15:07:27,921,921 WARNING [parser.py:161] Loop with no data on line: 93 +2022-06-21 15:07:27,921,921 WARNING [parser.py:161] Loop with no data on line: 130 +2022-06-21 15:07:27,922,922 WARNING [parser.py:161] Loop with no data on line: 161 +2022-06-21 15:07:27,922,922 WARNING [parser.py:161] Loop with no data on line: 200 +2022-06-21 15:07:27,922,922 WARNING [parser.py:161] Loop with no data on line: 237 +2022-06-21 15:07:27,922,922 WARNING [parser.py:161] Loop with no data on line: 280 +2022-06-21 15:07:27,922,922 WARNING [parser.py:161] Loop with no data on line: 304 +2022-06-21 15:07:27,923,923 WARNING [parser.py:161] Loop with no data on line: 390 +2022-06-21 15:07:27,923,923 WARNING [parser.py:161] Loop with no data on line: 403 +2022-06-21 15:07:28,350,350 WARNING [parser.py:161] Loop with no data on line: 33 +2022-06-21 15:07:28,351,351 WARNING [parser.py:161] Loop with no data on line: 72 +2022-06-21 15:07:28,351,351 WARNING [parser.py:161] Loop with no data on line: 84 +2022-06-21 15:07:28,351,351 WARNING [parser.py:161] Loop with no data on line: 93 +2022-06-21 15:07:28,351,351 WARNING [parser.py:161] Loop with no data on line: 130 +2022-06-21 15:07:28,352,352 WARNING [parser.py:161] Loop with no data on line: 161 +2022-06-21 15:07:28,352,352 WARNING [parser.py:161] Loop with no data on line: 200 +2022-06-21 15:07:28,352,352 WARNING [parser.py:161] Loop with no data on line: 237 +2022-06-21 15:07:28,352,352 WARNING [parser.py:161] Loop with no data on line: 280 +2022-06-21 15:07:28,353,353 WARNING [parser.py:161] Loop with no data on line: 304 +2022-06-21 15:07:28,353,353 WARNING [parser.py:161] Loop with no data on line: 390 +2022-06-21 15:07:28,353,353 WARNING [parser.py:161] Loop with no data on line: 403 +$ tree both/ +both/ +├── TAR_Db0515A.000_20100926 +│   └── 2 +│   ├── acqu +│   ├── acqu2 +│   ├── acqu2s +│   ├── acqus +│   ├── audita.txt +│   ├── cpdprg3 +│   ├── fid.star +│   ├── format.temp +│   ├── pdata +│   │   └── 1 +│   │   ├── proc +│   │   ├── proc2 +│   │   ├── proc2s +│   │   ├── procs +│   │   └── title +│   ├── prosol_History +│   ├── pulseprogram +│   ├── scon2 +│   ├── ser +│   └── uxnmr.par +└── TAR_Db0515A.000_20210301 + └── 10_Chsqc-800 + ├── acqu + ├── acqu2 + ├── acqu2s + ├── acqus + ├── audita.txt + ├── cpdprg2 + ├── fid.com + ├── fid.star + ├── format.temp + ├── overflow_log_dru1.txt + ├── pdata + │   └── 1 + │   ├── proc + │   ├── proc2 + │   ├── proc2s + │   ├── procs + │   └── title + ├── proc.com + ├── pulseprogram + ├── scon2 + ├── ser + ├── specpar + ├── uxnmr.info + └── uxnmr.par +``` + +## 8. Incremental Backup of a SpecDB database + +To perform an incremental backup, you first need to run the `specdb backup` tool. By default, `specdb backup` will make a `objects/` directory to store the database pages if none is specified, and a `backup.txt` to store the sha256 hashes of the database. Then to restore the database (i.e backup it into a new SQLite database), you use `specdb restore`. + +``` +$ specdb restore --backup backup.db --shafile backup.txt --objects objects/ +``` + +After one makes changes to the original `sample.db` database, using `specdb backup` will result in modifications to the `objects/` directory and `backup.txt`. Performing `specdb restore` will only make the incremental changes to become current with the backed up state of `sample.db`. diff --git a/cli/specdb b/cli/specdb index 579d144..014ee9d 100755 --- a/cli/specdb +++ b/cli/specdb @@ -97,10 +97,10 @@ sdb_query.add_argument('--db', type=str, metavar='', required=True, help=''.join(( ('path to specific specdb database file to use.'), (' use `specdb create` to create a new database file')))) -sdb_query.add_argument('--out', type=str, metavar='', required=True, +sdb_query.add_argument('--out', type=str, metavar='', required=False, help='directory to place results of the query') sdb_query.add_argument('--indices', type=str, metavar='', nargs='+', - required=False, default=False, help=''.join(( + required=False, default=None, help=''.join(( ("provide a list of row ids in the summary table to collect\n"), ("users can provide a list of ids directly on the command line space "), ("separated, or in a .csv file with all ids comma separated "), @@ -184,10 +184,19 @@ elif sdb.command == 'summary': Summary.summary(db=sdb.db, table=sdb.table) elif sdb.command == 'query': +# print(sdb.indices) +# print(type(sdb.indices)) +# print(sdb.sql) + + if sdb.indices: + if len(sdb.indices) == 1: + if sdb.indices[0].endswith('.csv.'): + sdb.indices = str(sdb.indices[0]) + Query.query( db=sdb.db, - sql=sdb.sql[0], - indices=sdb.indices[0], + sql=str(sdb.sql[0]) if type(sdb.sql) == list else None, + indices=sdb.indices, star=sdb.star, output_dir=sdb.out) diff --git a/sample/sample_forms/complete_sample.yaml b/sample/sample_forms/complete_sample.yaml index 85b196a..aaa8fa7 100644 --- a/sample/sample_forms/complete_sample.yaml +++ b/sample/sample_forms/complete_sample.yaml @@ -1,94 +1,104 @@ -user: # provide information about a user, REQUIRED: `user_id` - user_id: '' # no spaces, must be unique, len <= 8, Ex: KJF - given_name: '' # len <= 64, Ex: Keith - family_name: '' # len <= 64, Ex: Fraga - middle_initials: '' # len <= 16, Ex: J - department_and_institution: '' # len <= 128, Ex: MCB UCD - country: '' # len <= 32, Ex: USA - state_province: '' # len <= 32, Ex: NY - city: '' # len <= 32, Ex: Troy - postal_code: '' # len <= 32, Ex: 12180 - role: '' # len <= 64, Ex: postdoc - organization_type: '' # len <= 64, Ex: academic - email_address: '' # no spaces, must have `@`, len <= 64, Ex: user@mail.com -project: # provide information describing a project, REQUIRED: `project_id` - structural_genomics: '' # not required, only yes or no - project_id: '' # required, must be unique, no spaces, len <= 32, Ex: SpikeFraga - project_details: '' # not required, short description, len <= 128, Ex: Spike protein project 2022 -target: # molecular target information, REQUIRED: `target_id` - target_id: '' # text identifier for target, must be unique, no spaces, len <= 32, Ex: Db0515 - target_comment: '' # free field comment, anything to note about target, len <= 128, Ex: from UW-Madison - target_sequence: '' # target's molecular seq., any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHHILVAM - organism_source: '' # organism name for target source, can indicate if target is synthetic, len <= 128, Ex: synthetic - gene_name: '' # gene name, len <= 64, Ex: SpikeCoV2 - project_id: '' # `project_id` target is a member of, must be in project table, Ex: SpikeFraga - target_preparer: '' # `user_id` that assigned the target, must be in user table, Ex: KJF -construct: # molecular construct from a target, REQUIRED: `construct_id`, `construct_sequence`, `target_id` - construct_id: '' # text identifier for construct, must be unique, no spaces, len <= 32, Ex: Db0515A - construct_sequence: '' # construct sequence, any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHINLVAE - target_id: '' # `target id` this construct was made for, must already be in target table, Ex: Db0515 - ext_coefficient_280: 0.0 # extinction coefficient at 280 nm, Ex: 108.7 - expected_mw: 0.0 # expected molecular weight of construct in Da, Ex: 1211.8 - construct_comment: '' # free field comment, anything to note about construct, len <= 128, Ex: with primers RE1A/RE1B - plasmid_id: '' # plasmid construct DNA sequence is cloned in, len <= 64, Ex: pET218(+) - plasmid_id_comment: '' # comments on plasmid, len <= 256, Ex: from Underwood lab - construct_preparer: '' # `user_id` who prepared the construct, must already be in user table, Ex: KJF - construct_company: '' # if the construct was produced by a company, indicate where it came from, len <= 128, Ex: Genscript -expression: # describe a molecular expression experiment/results, REQUIRED: `expression_id`, `construct_id` - expression_id: '' # text identifier for expression, must be unique, no spaces, len <= 32, Ex: Db0515A.X - expression_comment: '' # free field comment, anything of note for expression, len <= 128, Ex: reached 4.5 OD - construct_id: '' # `construct_id` this expression was for, must already be in construct table, Ex: Db0515A - expression_media: '' # growth media expression was in, len <= 32, Ex: MJ9 - strain: '' # cellular strain expression was in, len <= 32, Ex: BL21A (+) - expression_organism: '' # organism expression was in, len <- 32, Ex: E. colli - expression_preparer: '' # `user_id` of person who did the expression, must already be in user table, Ex: KJF -purification_batch: # describe the purification run for an expression product, REQUIRED: `batch_id`, `expression_id`, `sample_sequence` - batch_id: '' # text identifier for batch, must be unique, no spaces, len <= 32, Ex: Db0515.X.batch - expression_id: '' # expression run this purification batch is for, must already be in expression table Ex: Db0515.X - sample_sequence: '' # sequence of molecule after purification (i.e if there was tag cleaving), any type of code/alphabet, no spaces, len <= 1024, Ex: MQNGPILA - purif_comment: '' # free text comment about the purification, len <= 128, Ex: HPLC in RM 204 - production_method: '' # indicate the purification method, len <= 64, Ex: Ni column only - isotopic_labeling_remark: '' # provide the isotopic labeling, preferred method to indicate labeling in the appropriate column below, len <= 64, Ex: NC5 - iso_13c_enrichment: '' # 13C labeling percentage, must contain `% 13C`, len <= 32, Ex: 100% 13C - iso_15n_enrichment: '' # 15N labeling percentage, must contain `% 15N`, len <= 32, Ex: 99% 15N - iso_2h_enrichment: '' # 2H labeling percentage, must contain `% 2H`, len <= 32, Ex: 100% 2H - iso_19f_Trp_enrichment: '' # 19F-Trp labeling percentage, must contain `% 19F-Trp`, len <= 32, Ex: 11% 19F-Trp - iso_19f_Phe_enrichment: '' # 19F-Phe labeling percentage, must contain `% 19F-Phe`, len <= 32, Ex: 9.1% 19F-Phe - iso_1hd1_Leu_methyl_enrichment: '' # 1HD1-Leu stereospecific labeling percentage, must contain `% 1HD1-Leu`, len <= 32, Ex: 13.3% 1HD1-Leu - iso_1hd2_Leu_methyl_enrichment: '' # 1HD2-Leu stereospecific labeling percentage, must contain `% 1HD2-Leu`, len <= 32, Ex: 15% 1HD2-Leu - iso_1hd_Ile_methyl_enrichment: '' # 1HD-Ile labeling percentage, must contain `% 1HD-Ile`, len <= 32, Ex: 50% 1HD-Ile - iso_1hg1_Val_methyl_enrichment: '' # 1HG1-Val stererospecific labeling percentage, must contain `% 1HG1-Val`, len <= 32, Ex: 25% 1HG1-Val - iso_1hg2_Val_methyl_enrichment: '' # 1HG2-Val stereospecific labeling percentage, must contain `% 1HG2-Val`, len <= 32, Ex: 27%% 1HG2-Val - iso_1hb_Ala_methyl_enrichment: '' # 1HB-Ala labeling percentage, must contain `% 1HB-Ala`, len <= 32, Ex: 100% 1HB-Ala - batch_preparer: '' # `user_id` of person who did the purification, must already be in user table, Ex: KJF -buffer: # store all buffers used, their id and their pH, REQUIRED: `buffer_id`, `buffer_pH`, NOTE: the buffer components go in the `buffer_components` table - buffer_id: '' # text identifier for the buffer, must be unique, no spaces, len <= 32, Ex: hn4071 - buffer_ph: 0.0 # pH of buffer, must be a number, Ex: 8.1 - buffer_comment: '' # free text field for any notes about the buffer, len <= 128, Ex: made by KJF 12/04 -buffer_components: # describe the component(s) of a buffer, REQUIRED: `buffer_id`, `buffer_component`, `buffer_component_value`, `buffer_component_unit` - buffer_id: '' # `buffer_id` this component goes to, must already be in buffer table, Ex: hn4071 - buffer_component: '' # name of the component, len <= 64, Ex: NaCl - buffer_component_value: 0.0 # the numeric concentration value of the component, Ex: 100.0 - buffer_component_unit: '' # unit of concentration, one of (`mM`, `% (v/v)`, `mg/mL`), Ex: mM -pst: # description of a protein sample tube, not only proteins, REQUIRED: `pst_id`, `pst_preparer`, `sample_ph`, `total_volume`, `volume_unit`, `tube_type` - pst_id: '' # text identifier for the pst, must be unique, no spaces, len <= 32, Ex: Db0515A.001 - prev_pst_id: '' # if pst derived from another pst, give previous `pst_id`, must already be in pst table, Ex: Db0515A.000 - pst_preparer: '' # `user_id` of user that prepared the sample tube, must be in user table, Ex: KJF - pst_comment: '' # free field comment about pst, len <= 128, Ex: new sample - sample_type: '' # is sample a solution or solid-state sample, one of (`solution`, `solid state`), Ex: solution - solvent_system: '' # solvent system for the sample, len <= 64, Ex: DMSO - sample_ph: 0.0 # pst pH, can be different from buffer ph, Ex: 7.1 - total_volume: 0.0 # numeric volume for total volume in tube, Ex: 2.2 - volume_unit: '' # unit of volume for volume in tube, one of (`nL`, `uL`, `mL`, `L`), Ex: mL - curr_location: '' # current location of tube, len <= 64, Ex: NMR room - prev_location: '' # previous location of tube, len <= 64, Ex: Underwood lab - create_date: '' # date record added to database, format "YYYY-MM-DD", Ex: 2022-01-01 - buffer_id: '' # id of buffer in the tube, must already be in `buffer` table, no spaces, len <= 32, Ex: hn4071 - tube_type: '' # the tube type for sample tube, use `specdb summary --table tubes` to find allowable tube types, Ex: 1-mm Shigemi tube -batch_components: # describe the purification batches in a pst, REQUIRED: `pst_id`, `batch_id`, `volume`, `volume_unit`, `conc`, `conc_unit` - pst_id: '' # text id of sample tube being described, must already be in pst table, Ex: Db0515A.001 - batch_id: '' # text id of batch in the `pst_id` above, must already be in purification_batch table, Ex: Db0515A.X.batch - conc: 0.0 # concentration of sample in the sample tube, numeric, Ex: 10.2 - conc_unit: '' # concentration units, one of (`ug/mL`, `mg/mL`, `nM`, `uM`, `mM`), Ex: mM - mass: 0.0 # mg of protein sample in tube, Ex: 101.1 +user: # provide information about a user, REQUIRED: `user_id` + 0: + user_id: # no spaces, must be unique, len <= 8, Ex: KJF + given_name: # len <= 64, Ex: Keith + family_name: # len <= 64, Ex: Fraga + middle_initials: # len <= 16, Ex: J + department_and_institution: # len <= 128, Ex: MCB UCD + country: # len <= 32, Ex: USA + state_province: # len <= 32, Ex: NY + city: # len <= 32, Ex: Troy + postal_code: # len <= 32, Ex: 12180 + role: # len <= 64, Ex: postdoc + organization_type: # len <= 64, Ex: academic + email_address: # no spaces, must have `@`, len <= 64, Ex: user@mail.com +project: # provide information describing a project, REQUIRED: `project_id` + 0: + structural_genomics: # not required, only yes or no + project_id: # required, must be unique, no spaces, len <= 32, Ex: SpikeFraga + project_details: # not required, short description, len <= 128, Ex: Spike protein project 2022 +target: # molecular target information, REQUIRED: `target_id` + 0: + target_id: # text identifier for target, must be unique, no spaces, len <= 32, Ex: Db0515 + target_comment: # free field comment, anything to note about target, len <= 128, Ex: from UW-Madison + target_sequence: # target's molecular seq., any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHHILVAM + organism_source: # organism name for target source, can indicate if target is synthetic, len <= 128, Ex: synthetic + gene_name: # gene name, len <= 64, Ex: SpikeCoV2 + project_id: # `project_id` target is a member of, must be in project table, Ex: SpikeFraga + target_preparer: # `user_id` that assigned the target, must be in user table, Ex: KJF +construct: # molecular construct from a target, REQUIRED: `construct_id`, + 0: + construct_id: # text identifier for construct, must be unique, no spaces, len <= 32, Ex: Db0515A + construct_sequence: # construct sequence, any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHINLVAE + target_id: # `target id` this construct was made for, must already be in target table, Ex: Db0515 + ext_coefficient_280: # extinction coefficient at 280 nm, Ex: 108.7 + expected_mw: # expected molecular weight of construct in Da, Ex: 1211.8 + construct_comment: # free field comment, anything to note about construct, len <= 128, Ex: with primers RE1A/RE1B + plasmid_id: # plasmid construct DNA sequence is cloned in, len <= 64, Ex: pET218(+) + plasmid_id_comment: # comments on plasmid, len <= 256, Ex: from Underwood lab + construct_preparer: # `user_id` who prepared the construct, must already be in user table, Ex: KJF + construct_company: # if the construct was produced by a company, indicate where it came from, len <= 128, Ex: Genscript +expression: # describe a molecular expression experiment/results, REQUIRED: `expression_id` + 0: + expression_id: # text identifier for expression, must be unique, no spaces, len <= 32, Ex: Db0515A.X + expression_comment: # free field comment, anything of note for expression, len <= 128, Ex: reached 4.5 OD + construct_id: # `construct_id` this expression was for, must already be in construct table, Ex: Db0515A + expression_media: # growth media expression was in, len <= 32, Ex: MJ9 + strain: # cellular strain expression was in, len <= 32, Ex: BL21A (+) + expression_organism: # organism expression was in, len <- 32, Ex: E. colli + expression_preparer: # `user_id` of person who did the expression, must already be in user table, Ex: KJF +purification_batch: # describe the purification run for an expression product, REQUIRED: `batch_id` + 0: + batch_id: # text identifier for batch, must be unique, no spaces, len <= 32, Ex: Db0515.X.batch + expression_id: # expression run this purification batch is for, must already be in expression table Ex: Db0515.X + sample_sequence: # sequence of molecule after purification (i.e if there was tag cleaving), any type of code/alphabet, no spaces, len <= 1024, Ex: MQNGPILA + purif_comment: # free text comment about the purification, len <= 128, Ex: HPLC in RM 204 + production_method: # indicate the purification method, len <= 64, Ex: Ni column only + isotopic_labeling_remark: # provide the isotopic labeling, preferred method to indicate labeling in the appropriate column below, len <= 64, Ex: NC5 + iso_13c_enrichment: # 13C labeling percentage, must contain `% 13C`, len <= 32, Ex: 100% 13C + iso_15n_enrichment: # 15N labeling percentage, must contain `% 15N`, len <= 32, Ex: 99% 15N + iso_2h_enrichment: # 2H labeling percentage, must contain `% 2H`, len <= 32, Ex: 100% 2H + iso_19f_Trp_enrichment: # 19F-Trp labeling percentage, must contain `% 19F-Trp`, len <= 32, Ex: 11% 19F-Trp + iso_19f_Phe_enrichment: # 19F-Phe labeling percentage, must contain `% 19F-Phe`, len <= 32, Ex: 9.1% 19F-Phe + iso_1hd1_Leu_methyl_enrichment: # 1HD1-Leu stereospecific labeling percentage, must contain `% 1HD1-Leu`, len <= 32, Ex: 13.3% 1HD1-Leu + iso_1hd2_Leu_methyl_enrichment: # 1HD2-Leu stereospecific labeling percentage, must contain `% 1HD2-Leu`, len <= 32, Ex: 15% 1HD2-Leu + iso_1hd_Ile_methyl_enrichment: # 1HD-Ile labeling percentage, must contain `% 1HD-Ile`, len <= 32, Ex: 50% 1HD-Ile + iso_1hg1_Val_methyl_enrichment: # 1HG1-Val stererospecific labeling percentage, must contain `% 1HG1-Val`, len <= 32, Ex: 25% 1HG1-Val + iso_1hg2_Val_methyl_enrichment: # 1HG2-Val stereospecific labeling percentage, must contain `% 1HG2-Val`, len <= 32, Ex: 27%% 1HG2-Val + iso_1hb_Ala_methyl_enrichment: # 1HB-Ala labeling percentage, must contain `% 1HB-Ala`, len <= 32, Ex: 100% 1HB-Ala + batch_preparer: # `user_id` of person who did the purification, must already be in user table, Ex: KJF +buffer: # store all buffers used, their id and their pH, REQUIRED: `buffer_id`, `buffer_pH`, NOTE: the buffer components go in the `buffer_components` table + 0: + buffer_id: # text identifier for the buffer, must be unique, no spaces, len <= 32, Ex: hn4071 + buffer_ph: # pH of buffer, must be a number, Ex: 8.1 + buffer_comment: # free text field for any notes about the buffer, len <= 128, Ex: made by KJF 12/04 +buffer_components: # describe the component(s) of a buffer, REQUIRED: `buffer_id`, `buffer_component`, `buffer_component_value`, `buffer_component_unit` + 0: + buffer_id: # `buffer_id` this component goes to, must already be in buffer table, Ex: hn4071 + buffer_component: # name of the component, len <= 64, Ex: NaCl + buffer_component_value: # the numeric concentration value of the component, Ex: 100.0 + buffer_component_unit: # unit of concentration, one of (`mM`, `% (v/v)`, `mg/mL`), Ex: mM +pst: # description of a protein sample tube, not only proteins, REQUIRED: `pst_id`, `pst_preparer`, `sample_ph`, `total_volume`, `volume_unit`, `tube_type` + 0: + pst_id: # text identifier for the pst, must be unique, no spaces, len <= 32, Ex: Db0515A.001 + prev_pst_id: # if pst derived from another pst, give previous `pst_id`, must already be in pst table, Ex: Db0515A.000 + pst_preparer: # `user_id` of user that prepared the sample tube, must be in user table, Ex: KJF + pst_comment: # free field comment about pst, len <= 128, Ex: new sample + sample_type: # is sample a solution or solid-state sample, one of (`solution`, `solid state`), Ex: solution + solvent_system: # solvent system for the sample, len <= 64, Ex: DMSO + sample_ph: # pst pH, can be different from buffer ph, Ex: 7.1 + total_volume: # numeric volume for total volume in tube, Ex: 2.2 + volume_unit: # unit of volume for volume in tube, one of (`nL`, `uL`, `mL`, `L`), Ex: mL + curr_location: # current location of tube, len <= 64, Ex: NMR room + prev_location: # previous location of tube, len <= 64, Ex: Underwood lab + create_date: # date record added to database, format "YYYY-MM-DD", Ex: 2022-01-01 + buffer_id: # id of buffer in the tube, must already be in `buffer` table, no spaces, len <= 32, Ex: hn4071 + tube_type: # the tube type for sample tube, use `specdb summary --table tubes` to find allowable tube types, Ex: 1-mm Shigemi tube +batch_components: # describe the purification batches in a pst, REQUIRED: `pst_id`, `batch_id`, `volume`, `volume_unit`, `conc`, `conc_unit` + 0: + pst_id: # text id of sample tube being described, must already be in pst table, Ex: Db0515A.001 + batch_id: # text id of batch in the `pst_id` above, must already be in purification_batch table, Ex: Db0515A.X.batch + conc: # concentration of sample in the sample tube, numeric, Ex: 10.2 + conc_unit: # concentration units, one of (`ug/mL`, `mg/mL`, `nM`, `uM`, `mM`), Ex: mM + mass: # mg of protein sample in tube, Ex: 101.1 diff --git a/sample/sample_forms/default.processing.yaml b/sample/sample_forms/default.processing.yaml new file mode 100644 index 0000000..8478db1 --- /dev/null +++ b/sample/sample_forms/default.processing.yaml @@ -0,0 +1,5 @@ +default_processing_scripts: # record a default nmrpipe processing script for every pulse sequence + 0: + pulse_sequence_name: hsqcetgp # name of pulse sequence, from Bruker it is the value of the PULPROG tag + nickname: 2D 1H-15N HSQC # user provided nickname, references the pulse_sequence_nicknames table + default_processing: /Users/kfraga/RESEARCH/RPISpecDB/sample/sample_forms/default.processing.yaml # path to text file of a nmrpipe processing script that read a FID for this pulse sequence type diff --git a/sample/sample_forms/fid.com b/sample/sample_forms/fid.com new file mode 100644 index 0000000..d2b687d --- /dev/null +++ b/sample/sample_forms/fid.com @@ -0,0 +1,19 @@ +#!/bin/csh + +bruk2pipe -verb -in ./ser \ + -bad 0.0 -ext -aswap -AMX -decim 1920 -dspfvs 20 -grpdly 67.9841918945312 \ + -xN 2048 -yN 512 \ + -xT 1024 -yT 256 \ + -xMODE DQD -yMODE Echo-AntiEcho \ + -xSW 10416.667 -ySW 15151.515 \ + -xOBS 800.144 -yOBS 201.204 \ + -xCAR 4.773 -yCAR 44.741 \ + -xLAB 1H -yLAB 13C \ + -ndim 2 -aq2D Complex \ +| nmrPipe -fn MULT -c 3.90625e+00 \ + -out ./test.fid -ov + +# +# nmrDraw -process -in test.fid -fid test.fid + +sleep 5 diff --git a/sample/sample_forms/sample.yaml b/sample/sample_forms/sample.yaml index 6829d74..6ee308e 100644 --- a/sample/sample_forms/sample.yaml +++ b/sample/sample_forms/sample.yaml @@ -1,53 +1,53 @@ target: # molecular target information, REQUIRED: `target_id` 0: target_id: Db0515 # text identifier for target, must be unique, no spaces, len <= 32, Ex: Db0515 - target_comment: '' # free field comment, anything to note about target, len <= 128, Ex: from UW-Madison + target_comment: # free field comment, anything to note about target, len <= 128, Ex: from UW-Madison target_sequence: MGPLIEVLA # target's molecular seq., any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHHILVAM organism_source: synthetic # organism name for target source, can indicate if target is synthetic, len <= 128, Ex: synthetic - gene_name: '' # gene name, len <= 64, Ex: SpikeCoV2 + gene_name: # gene name, len <= 64, Ex: SpikeCoV2 project_id: DBh # `project_id` target is a member of, must be in project table, Ex: SpikeFraga target_preparer: GTM # `user_id` that assigned the target, must be in user table, Ex: KJF -construct: # molecular construct from a target, REQUIRED: `construct_id`, `construct_sequence`, `target_id` +construct: # molecular construct from a target, REQUIRED: `construct_id`, 0: construct_id: Db0515A # text identifier for construct, must be unique, no spaces, len <= 32, Ex: Db0515A construct_sequence: MGHHHHHHHSMGPLIEVLA # construct sequence, any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHINLVAE target_id: Db0515 # `target id` this construct was made for, must already be in target table, Ex: Db0515 ext_coefficient_280: 0.0 # extinction coefficient at 280 nm, Ex: 108.7 expected_mw: 0.0 # expected molecular weight of construct in Da, Ex: 1211.8 - construct_comment: '' # free field comment, anything to note about construct, len <= 128, Ex: with primers RE1A/RE1B - plasmid_id: '' # plasmid construct DNA sequence is cloned in, len <= 64, Ex: pET218(+) - plasmid_id_comment: '' # comments on plasmid, len <= 256, Ex: from Underwood lab + construct_comment: # free field comment, anything to note about construct, len <= 128, Ex: with primers RE1A/RE1B + plasmid_id: # plasmid construct DNA sequence is cloned in, len <= 64, Ex: pET218(+) + plasmid_id_comment: # comments on plasmid, len <= 256, Ex: from Underwood lab construct_preparer: KJF # `user_id` who prepared the construct, must already be in user table, Ex: KJF - construct_company: '' # if the construct was produced by a company, indicate where it came from, len <= 128, Ex: Genscript -expression: # describe a molecular expression experiment/results, REQUIRED: `expression_id`, `construct_id` + construct_company: # if the construct was produced by a company, indicate where it came from, len <= 128, Ex: Genscript +expression: # describe a molecular expression experiment/results, REQUIRED: `expression_id` 0: expression_id: Db0515A # text identifier for expression, must be unique, no spaces, len <= 32, Ex: Db0515A.X - expression_comment: '' # free field comment, anything of note for expression, len <= 128, Ex: reached 4.5 OD + expression_comment: # free field comment, anything of note for expression, len <= 128, Ex: reached 4.5 OD construct_id: Db0515A # `construct_id` this expression was for, must already be in construct table, Ex: Db0515A expression_media: MJ9 # growth media expression was in, len <= 32, Ex: MJ9 - strain: '' # cellular strain expression was in, len <= 32, Ex: BL21A (+) - expression_organism: '' # organism expression was in, len <- 32, Ex: E. colli + strain: # cellular strain expression was in, len <= 32, Ex: BL21A (+) + expression_organism: # organism expression was in, len <- 32, Ex: E. colli expression_preparer: TAR # `user_id` of person who did the expression, must already be in user table, Ex: KJF -purification_batch: # describe the purification run for an expression product, REQUIRED: `batch_id`, `expression_id`, `sample_sequence` +purification_batch: # describe the purification run for an expression product, REQUIRED: `batch_id` 0: batch_id: Db0515A # text identifier for batch, must be unique, no spaces, len <= 32, Ex: Db0515.X.batch expression_id: Db0515A # expression run this purification batch is for, must already be in expression table Ex: Db0515.X sample_sequence: GPLIEVLA # sequence of molecule after purification (i.e if there was tag cleaving), any type of code/alphabet, no spaces, len <= 1024, Ex: MQNGPILA - purif_comment: '' # free text comment about the purification, len <= 128, Ex: HPLC in RM 204 + purif_comment: # free text comment about the purification, len <= 128, Ex: HPLC in RM 204 production_method: Ni column # indicate the purification method, len <= 64, Ex: Ni column only isotopic_labeling_remark: NC # provide the isotopic labeling, preferred method to indicate labeling in the appropriate column below, len <= 64, Ex: NC5 - iso_13c_enrichment: '' # 13C labeling percentage, must contain `% 13C`, len <= 32, Ex: 100% 13C - iso_15n_enrichment: '' # 15N labeling percentage, must contain `% 15N`, len <= 32, Ex: 99% 15N - iso_2h_enrichment: '' # 2H labeling percentage, must contain `% 2H`, len <= 32, Ex: 100% 2H - iso_19f_Trp_enrichment: '' # 19F-Trp labeling percentage, must contain `% 19F-Trp`, len <= 32, Ex: 11% 19F-Trp - iso_19f_Phe_enrichment: '' # 19F-Phe labeling percentage, must contain `% 19F-Phe`, len <= 32, Ex: 9.1% 19F-Phe - iso_1hd1_Leu_methyl_enrichment: '' # 1HD1-Leu stereospecific labeling percentage, must contain `% 1HD1-Leu`, len <= 32, Ex: 13.3% 1HD1-Leu - iso_1hd2_Leu_methyl_enrichment: '' # 1HD2-Leu stereospecific labeling percentage, must contain `% 1HD2-Leu`, len <= 32, Ex: 15% 1HD2-Leu - iso_1hd_Ile_methyl_enrichment: '' # 1HD-Ile labeling percentage, must contain `% 1HD-Ile`, len <= 32, Ex: 50% 1HD-Ile - iso_1hg1_Val_methyl_enrichment: '' # 1HG1-Val stererospecific labeling percentage, must contain `% 1HG1-Val`, len <= 32, Ex: 25% 1HG1-Val - iso_1hg2_Val_methyl_enrichment: '' # 1HG2-Val stereospecific labeling percentage, must contain `% 1HG2-Val`, len <= 32, Ex: 27%% 1HG2-Val - iso_1hb_Ala_methyl_enrichment: '' # 1HB-Ala labeling percentage, must contain `% 1HB-Ala`, len <= 32, Ex: 100% 1HB-Ala - batch_preparer: '' # `user_id` of person who did the purification, must already be in user table, Ex: KJF + iso_13c_enrichment: # 13C labeling percentage, must contain `% 13C`, len <= 32, Ex: 100% 13C + iso_15n_enrichment: # 15N labeling percentage, must contain `% 15N`, len <= 32, Ex: 99% 15N + iso_2h_enrichment: # 2H labeling percentage, must contain `% 2H`, len <= 32, Ex: 100% 2H + iso_19f_Trp_enrichment: # 19F-Trp labeling percentage, must contain `% 19F-Trp`, len <= 32, Ex: 11% 19F-Trp + iso_19f_Phe_enrichment: # 19F-Phe labeling percentage, must contain `% 19F-Phe`, len <= 32, Ex: 9.1% 19F-Phe + iso_1hd1_Leu_methyl_enrichment: # 1HD1-Leu stereospecific labeling percentage, must contain `% 1HD1-Leu`, len <= 32, Ex: 13.3% 1HD1-Leu + iso_1hd2_Leu_methyl_enrichment: # 1HD2-Leu stereospecific labeling percentage, must contain `% 1HD2-Leu`, len <= 32, Ex: 15% 1HD2-Leu + iso_1hd_Ile_methyl_enrichment: # 1HD-Ile labeling percentage, must contain `% 1HD-Ile`, len <= 32, Ex: 50% 1HD-Ile + iso_1hg1_Val_methyl_enrichment: # 1HG1-Val stererospecific labeling percentage, must contain `% 1HG1-Val`, len <= 32, Ex: 25% 1HG1-Val + iso_1hg2_Val_methyl_enrichment: # 1HG2-Val stereospecific labeling percentage, must contain `% 1HG2-Val`, len <= 32, Ex: 27%% 1HG2-Val + iso_1hb_Ala_methyl_enrichment: # 1HB-Ala labeling percentage, must contain `% 1HB-Ala`, len <= 32, Ex: 100% 1HB-Ala + batch_preparer: # `user_id` of person who did the purification, must already be in user table, Ex: KJF pst: # description of a protein sample tube, not only proteins, REQUIRED: `pst_id`, `pst_preparer`, `sample_ph`, `total_volume`, `volume_unit`, `tube_type` 0: pst_id: Db0515A.000 # text identifier for the pst, must be unique, no spaces, len <= 32, Ex: Db0515A.001 diff --git a/sample/sample_sessions/test00/.DS_Store b/sample/sample_sessions/example1/.DS_Store similarity index 100% rename from sample/sample_sessions/test00/.DS_Store rename to sample/sample_sessions/example1/.DS_Store diff --git a/sample/sample_sessions/test00/1/acqu b/sample/sample_sessions/example1/1/acqu similarity index 100% rename from sample/sample_sessions/test00/1/acqu rename to sample/sample_sessions/example1/1/acqu diff --git a/sample/sample_sessions/test00/1/acqus b/sample/sample_sessions/example1/1/acqus similarity index 100% rename from sample/sample_sessions/test00/1/acqus rename to sample/sample_sessions/example1/1/acqus diff --git a/sample/sample_sessions/test00/1/audita.txt b/sample/sample_sessions/example1/1/audita.txt similarity index 100% rename from sample/sample_sessions/test00/1/audita.txt rename to sample/sample_sessions/example1/1/audita.txt diff --git a/sample/sample_sessions/test00/1/fid b/sample/sample_sessions/example1/1/fid similarity index 100% rename from sample/sample_sessions/test00/1/fid rename to sample/sample_sessions/example1/1/fid diff --git a/sample/sample_sessions/test00/1/format.temp b/sample/sample_sessions/example1/1/format.temp similarity index 100% rename from sample/sample_sessions/test00/1/format.temp rename to sample/sample_sessions/example1/1/format.temp diff --git a/sample/sample_sessions/test00/1/pdata/1/1i b/sample/sample_sessions/example1/1/pdata/1/1i similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/1i rename to sample/sample_sessions/example1/1/pdata/1/1i diff --git a/sample/sample_sessions/test00/1/pdata/1/1r b/sample/sample_sessions/example1/1/pdata/1/1r similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/1r rename to sample/sample_sessions/example1/1/pdata/1/1r diff --git a/sample/sample_sessions/test00/1/pdata/1/auditp.txt b/sample/sample_sessions/example1/1/pdata/1/auditp.txt similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/auditp.txt rename to sample/sample_sessions/example1/1/pdata/1/auditp.txt diff --git a/sample/sample_sessions/test00/1/pdata/1/base_info b/sample/sample_sessions/example1/1/pdata/1/base_info similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/base_info rename to sample/sample_sessions/example1/1/pdata/1/base_info diff --git a/sample/sample_sessions/test00/1/pdata/1/intrng b/sample/sample_sessions/example1/1/pdata/1/intrng similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/intrng rename to sample/sample_sessions/example1/1/pdata/1/intrng diff --git a/sample/sample_sessions/test00/1/pdata/1/outd b/sample/sample_sessions/example1/1/pdata/1/outd similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/outd rename to sample/sample_sessions/example1/1/pdata/1/outd diff --git a/sample/sample_sessions/test00/1/pdata/1/parm.txt b/sample/sample_sessions/example1/1/pdata/1/parm.txt similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/parm.txt rename to sample/sample_sessions/example1/1/pdata/1/parm.txt diff --git a/sample/sample_sessions/test00/1/pdata/1/peaklist.xml b/sample/sample_sessions/example1/1/pdata/1/peaklist.xml similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/peaklist.xml rename to sample/sample_sessions/example1/1/pdata/1/peaklist.xml diff --git a/sample/sample_sessions/test00/1/pdata/1/peaks b/sample/sample_sessions/example1/1/pdata/1/peaks similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/peaks rename to sample/sample_sessions/example1/1/pdata/1/peaks diff --git a/sample/sample_sessions/test00/1/pdata/1/proc b/sample/sample_sessions/example1/1/pdata/1/proc similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/proc rename to sample/sample_sessions/example1/1/pdata/1/proc diff --git a/sample/sample_sessions/test00/1/pdata/1/procs b/sample/sample_sessions/example1/1/pdata/1/procs similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/procs rename to sample/sample_sessions/example1/1/pdata/1/procs diff --git a/sample/sample_sessions/test00/1/pdata/1/title b/sample/sample_sessions/example1/1/pdata/1/title similarity index 100% rename from sample/sample_sessions/test00/1/pdata/1/title rename to sample/sample_sessions/example1/1/pdata/1/title diff --git a/sample/sample_sessions/test00/1/prosol_History b/sample/sample_sessions/example1/1/prosol_History similarity index 100% rename from sample/sample_sessions/test00/1/prosol_History rename to sample/sample_sessions/example1/1/prosol_History diff --git a/sample/sample_sessions/test00/1/pulseprogram b/sample/sample_sessions/example1/1/pulseprogram similarity index 100% rename from sample/sample_sessions/test00/1/pulseprogram rename to sample/sample_sessions/example1/1/pulseprogram diff --git a/sample/sample_sessions/test00/1/scon2 b/sample/sample_sessions/example1/1/scon2 similarity index 100% rename from sample/sample_sessions/test00/1/scon2 rename to sample/sample_sessions/example1/1/scon2 diff --git a/sample/sample_sessions/test00/1/uxnmr.par b/sample/sample_sessions/example1/1/uxnmr.par similarity index 100% rename from sample/sample_sessions/test00/1/uxnmr.par rename to sample/sample_sessions/example1/1/uxnmr.par diff --git a/sample/sample_sessions/test00/2/acqu b/sample/sample_sessions/example1/2/acqu similarity index 100% rename from sample/sample_sessions/test00/2/acqu rename to sample/sample_sessions/example1/2/acqu diff --git a/sample/sample_sessions/test00/2/acqu2 b/sample/sample_sessions/example1/2/acqu2 similarity index 100% rename from sample/sample_sessions/test00/2/acqu2 rename to sample/sample_sessions/example1/2/acqu2 diff --git a/sample/sample_sessions/test00/2/acqu2s b/sample/sample_sessions/example1/2/acqu2s similarity index 100% rename from sample/sample_sessions/test00/2/acqu2s rename to sample/sample_sessions/example1/2/acqu2s diff --git a/sample/sample_sessions/test00/2/acqus b/sample/sample_sessions/example1/2/acqus similarity index 100% rename from sample/sample_sessions/test00/2/acqus rename to sample/sample_sessions/example1/2/acqus diff --git a/sample/sample_sessions/test00/2/audita.txt b/sample/sample_sessions/example1/2/audita.txt similarity index 100% rename from sample/sample_sessions/test00/2/audita.txt rename to sample/sample_sessions/example1/2/audita.txt diff --git a/sample/sample_sessions/test00/2/cpdprg3 b/sample/sample_sessions/example1/2/cpdprg3 similarity index 100% rename from sample/sample_sessions/test00/2/cpdprg3 rename to sample/sample_sessions/example1/2/cpdprg3 diff --git a/sample/sample_sessions/test00/2/format.temp b/sample/sample_sessions/example1/2/format.temp similarity index 100% rename from sample/sample_sessions/test00/2/format.temp rename to sample/sample_sessions/example1/2/format.temp diff --git a/sample/sample_sessions/test00/2/pdata/1/2ii b/sample/sample_sessions/example1/2/pdata/1/2ii similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/2ii rename to sample/sample_sessions/example1/2/pdata/1/2ii diff --git a/sample/sample_sessions/test00/2/pdata/1/2ir b/sample/sample_sessions/example1/2/pdata/1/2ir similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/2ir rename to sample/sample_sessions/example1/2/pdata/1/2ir diff --git a/sample/sample_sessions/test00/2/pdata/1/2ri b/sample/sample_sessions/example1/2/pdata/1/2ri similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/2ri rename to sample/sample_sessions/example1/2/pdata/1/2ri diff --git a/sample/sample_sessions/test00/2/pdata/1/2rr b/sample/sample_sessions/example1/2/pdata/1/2rr similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/2rr rename to sample/sample_sessions/example1/2/pdata/1/2rr diff --git a/sample/sample_sessions/test00/2/pdata/1/auditp.txt b/sample/sample_sessions/example1/2/pdata/1/auditp.txt similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/auditp.txt rename to sample/sample_sessions/example1/2/pdata/1/auditp.txt diff --git a/sample/sample_sessions/test00/2/pdata/1/clevels b/sample/sample_sessions/example1/2/pdata/1/clevels similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/clevels rename to sample/sample_sessions/example1/2/pdata/1/clevels diff --git a/sample/sample_sessions/test00/2/pdata/1/outd b/sample/sample_sessions/example1/2/pdata/1/outd similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/outd rename to sample/sample_sessions/example1/2/pdata/1/outd diff --git a/sample/sample_sessions/test00/2/pdata/1/proc b/sample/sample_sessions/example1/2/pdata/1/proc similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/proc rename to sample/sample_sessions/example1/2/pdata/1/proc diff --git a/sample/sample_sessions/test00/2/pdata/1/proc2 b/sample/sample_sessions/example1/2/pdata/1/proc2 similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/proc2 rename to sample/sample_sessions/example1/2/pdata/1/proc2 diff --git a/sample/sample_sessions/test00/2/pdata/1/proc2s b/sample/sample_sessions/example1/2/pdata/1/proc2s similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/proc2s rename to sample/sample_sessions/example1/2/pdata/1/proc2s diff --git a/sample/sample_sessions/test00/2/pdata/1/procs b/sample/sample_sessions/example1/2/pdata/1/procs similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/procs rename to sample/sample_sessions/example1/2/pdata/1/procs diff --git a/sample/sample_sessions/test00/2/pdata/1/title b/sample/sample_sessions/example1/2/pdata/1/title similarity index 100% rename from sample/sample_sessions/test00/2/pdata/1/title rename to sample/sample_sessions/example1/2/pdata/1/title diff --git a/sample/sample_sessions/test00/2/prosol_History b/sample/sample_sessions/example1/2/prosol_History similarity index 100% rename from sample/sample_sessions/test00/2/prosol_History rename to sample/sample_sessions/example1/2/prosol_History diff --git a/sample/sample_sessions/test00/2/pulseprogram b/sample/sample_sessions/example1/2/pulseprogram similarity index 100% rename from sample/sample_sessions/test00/2/pulseprogram rename to sample/sample_sessions/example1/2/pulseprogram diff --git a/sample/sample_sessions/test00/2/scon2 b/sample/sample_sessions/example1/2/scon2 similarity index 100% rename from sample/sample_sessions/test00/2/scon2 rename to sample/sample_sessions/example1/2/scon2 diff --git a/sample/sample_sessions/test00/2/ser b/sample/sample_sessions/example1/2/ser similarity index 100% rename from sample/sample_sessions/test00/2/ser rename to sample/sample_sessions/example1/2/ser diff --git a/sample/sample_sessions/test00/2/uxnmr.par b/sample/sample_sessions/example1/2/uxnmr.par similarity index 100% rename from sample/sample_sessions/test00/2/uxnmr.par rename to sample/sample_sessions/example1/2/uxnmr.par diff --git a/sample/sample_sessions/example1/specdb.session.yaml b/sample/sample_sessions/example1/specdb.session.yaml new file mode 100644 index 0000000..3b867a0 --- /dev/null +++ b/sample/sample_sessions/example1/specdb.session.yaml @@ -0,0 +1,16 @@ +session: # describe a data collection session, REQUIRED: pst_id (if not none, just use 'NONE') + 0: + session_preparer: TAR # `user_id` of the person who prepared and collected the session, must already be in user table, Ex: KJF + spectrometer_id: Hu800 # `spectrometer_id` session was collected at, must already be in spectrometer table, Ex: Hu800 + pst_id: Db0515A.000 # `pst_id` the session is for +time_domain_dataset: # record information about a time domain dataset, REQUIRED: `subdir_name` + 0: + subdir_name: '1' # path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ + pst_id: Db0515A.000 # `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname: # nickname for pulse sequence, controlled vocabulary + probe_id: # `probe_id` for the probe, if blank probe information pulled from fid directory + 1: + subdir_name: '2' # path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ + pst_id: Db0515A.000 # `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname: # nickname for pulse sequence, controlled vocabulary + probe_id: # `probe_id` for the probe, if blank probe information pulled from fid directory diff --git a/sample/sample_sessions/test01/.DS_Store b/sample/sample_sessions/example2/.DS_Store similarity index 97% rename from sample/sample_sessions/test01/.DS_Store rename to sample/sample_sessions/example2/.DS_Store index 3b13d6d..415284f 100644 Binary files a/sample/sample_sessions/test01/.DS_Store and b/sample/sample_sessions/example2/.DS_Store differ diff --git a/sample/sample_sessions/test01/1/.DS_Store b/sample/sample_sessions/example2/1/.DS_Store similarity index 100% rename from sample/sample_sessions/test01/1/.DS_Store rename to sample/sample_sessions/example2/1/.DS_Store diff --git a/sample/sample_sessions/test01/1/acqu b/sample/sample_sessions/example2/1/acqu similarity index 100% rename from sample/sample_sessions/test01/1/acqu rename to sample/sample_sessions/example2/1/acqu diff --git a/sample/sample_sessions/test01/1/acqus b/sample/sample_sessions/example2/1/acqus similarity index 100% rename from sample/sample_sessions/test01/1/acqus rename to sample/sample_sessions/example2/1/acqus diff --git a/sample/sample_sessions/test01/1/audita.txt b/sample/sample_sessions/example2/1/audita.txt similarity index 100% rename from sample/sample_sessions/test01/1/audita.txt rename to sample/sample_sessions/example2/1/audita.txt diff --git a/sample/sample_sessions/test01/1/fid b/sample/sample_sessions/example2/1/fid similarity index 100% rename from sample/sample_sessions/test01/1/fid rename to sample/sample_sessions/example2/1/fid diff --git a/sample/sample_sessions/test01/1/format.temp b/sample/sample_sessions/example2/1/format.temp similarity index 100% rename from sample/sample_sessions/test01/1/format.temp rename to sample/sample_sessions/example2/1/format.temp diff --git a/sample/sample_sessions/test01/1/pdata/1/1i b/sample/sample_sessions/example2/1/pdata/1/1i similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/1i rename to sample/sample_sessions/example2/1/pdata/1/1i diff --git a/sample/sample_sessions/test01/1/pdata/1/1r b/sample/sample_sessions/example2/1/pdata/1/1r similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/1r rename to sample/sample_sessions/example2/1/pdata/1/1r diff --git a/sample/sample_sessions/test01/1/pdata/1/auditp.txt b/sample/sample_sessions/example2/1/pdata/1/auditp.txt similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/auditp.txt rename to sample/sample_sessions/example2/1/pdata/1/auditp.txt diff --git a/sample/sample_sessions/test01/1/pdata/1/base_info b/sample/sample_sessions/example2/1/pdata/1/base_info similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/base_info rename to sample/sample_sessions/example2/1/pdata/1/base_info diff --git a/sample/sample_sessions/test01/1/pdata/1/intrng b/sample/sample_sessions/example2/1/pdata/1/intrng similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/intrng rename to sample/sample_sessions/example2/1/pdata/1/intrng diff --git a/sample/sample_sessions/test01/1/pdata/1/outd b/sample/sample_sessions/example2/1/pdata/1/outd similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/outd rename to sample/sample_sessions/example2/1/pdata/1/outd diff --git a/sample/sample_sessions/test01/1/pdata/1/parm.txt b/sample/sample_sessions/example2/1/pdata/1/parm.txt similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/parm.txt rename to sample/sample_sessions/example2/1/pdata/1/parm.txt diff --git a/sample/sample_sessions/test01/1/pdata/1/peaklist.xml b/sample/sample_sessions/example2/1/pdata/1/peaklist.xml similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/peaklist.xml rename to sample/sample_sessions/example2/1/pdata/1/peaklist.xml diff --git a/sample/sample_sessions/test01/1/pdata/1/peaks b/sample/sample_sessions/example2/1/pdata/1/peaks similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/peaks rename to sample/sample_sessions/example2/1/pdata/1/peaks diff --git a/sample/sample_sessions/test01/1/pdata/1/proc b/sample/sample_sessions/example2/1/pdata/1/proc similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/proc rename to sample/sample_sessions/example2/1/pdata/1/proc diff --git a/sample/sample_sessions/test01/1/pdata/1/procs b/sample/sample_sessions/example2/1/pdata/1/procs similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/procs rename to sample/sample_sessions/example2/1/pdata/1/procs diff --git a/sample/sample_sessions/test01/1/pdata/1/title b/sample/sample_sessions/example2/1/pdata/1/title similarity index 100% rename from sample/sample_sessions/test01/1/pdata/1/title rename to sample/sample_sessions/example2/1/pdata/1/title diff --git a/sample/sample_sessions/test01/1/prosol_History b/sample/sample_sessions/example2/1/prosol_History similarity index 100% rename from sample/sample_sessions/test01/1/prosol_History rename to sample/sample_sessions/example2/1/prosol_History diff --git a/sample/sample_sessions/test01/1/pulseprogram b/sample/sample_sessions/example2/1/pulseprogram similarity index 100% rename from sample/sample_sessions/test01/1/pulseprogram rename to sample/sample_sessions/example2/1/pulseprogram diff --git a/sample/sample_sessions/test01/1/scon2 b/sample/sample_sessions/example2/1/scon2 similarity index 100% rename from sample/sample_sessions/test01/1/scon2 rename to sample/sample_sessions/example2/1/scon2 diff --git a/sample/sample_sessions/test01/1/uxnmr.par b/sample/sample_sessions/example2/1/uxnmr.par similarity index 100% rename from sample/sample_sessions/test01/1/uxnmr.par rename to sample/sample_sessions/example2/1/uxnmr.par diff --git a/sample/sample_sessions/test01/2/acqu b/sample/sample_sessions/example2/2/acqu similarity index 100% rename from sample/sample_sessions/test01/2/acqu rename to sample/sample_sessions/example2/2/acqu diff --git a/sample/sample_sessions/test01/2/acqu2 b/sample/sample_sessions/example2/2/acqu2 similarity index 100% rename from sample/sample_sessions/test01/2/acqu2 rename to sample/sample_sessions/example2/2/acqu2 diff --git a/sample/sample_sessions/test01/2/acqu2s b/sample/sample_sessions/example2/2/acqu2s similarity index 100% rename from sample/sample_sessions/test01/2/acqu2s rename to sample/sample_sessions/example2/2/acqu2s diff --git a/sample/sample_sessions/test01/2/acqus b/sample/sample_sessions/example2/2/acqus similarity index 100% rename from sample/sample_sessions/test01/2/acqus rename to sample/sample_sessions/example2/2/acqus diff --git a/sample/sample_sessions/test01/2/audita.txt b/sample/sample_sessions/example2/2/audita.txt similarity index 100% rename from sample/sample_sessions/test01/2/audita.txt rename to sample/sample_sessions/example2/2/audita.txt diff --git a/sample/sample_sessions/test01/2/cpdprg3 b/sample/sample_sessions/example2/2/cpdprg3 similarity index 100% rename from sample/sample_sessions/test01/2/cpdprg3 rename to sample/sample_sessions/example2/2/cpdprg3 diff --git a/sample/sample_sessions/test01/2/format.temp b/sample/sample_sessions/example2/2/format.temp similarity index 100% rename from sample/sample_sessions/test01/2/format.temp rename to sample/sample_sessions/example2/2/format.temp diff --git a/sample/sample_sessions/test01/2/pdata/1/2ii b/sample/sample_sessions/example2/2/pdata/1/2ii similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/2ii rename to sample/sample_sessions/example2/2/pdata/1/2ii diff --git a/sample/sample_sessions/test01/2/pdata/1/2ir b/sample/sample_sessions/example2/2/pdata/1/2ir similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/2ir rename to sample/sample_sessions/example2/2/pdata/1/2ir diff --git a/sample/sample_sessions/test01/2/pdata/1/2ri b/sample/sample_sessions/example2/2/pdata/1/2ri similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/2ri rename to sample/sample_sessions/example2/2/pdata/1/2ri diff --git a/sample/sample_sessions/test01/2/pdata/1/2rr b/sample/sample_sessions/example2/2/pdata/1/2rr similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/2rr rename to sample/sample_sessions/example2/2/pdata/1/2rr diff --git a/sample/sample_sessions/test01/2/pdata/1/auditp.txt b/sample/sample_sessions/example2/2/pdata/1/auditp.txt similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/auditp.txt rename to sample/sample_sessions/example2/2/pdata/1/auditp.txt diff --git a/sample/sample_sessions/test01/2/pdata/1/clevels b/sample/sample_sessions/example2/2/pdata/1/clevels similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/clevels rename to sample/sample_sessions/example2/2/pdata/1/clevels diff --git a/sample/sample_sessions/test01/2/pdata/1/outd b/sample/sample_sessions/example2/2/pdata/1/outd similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/outd rename to sample/sample_sessions/example2/2/pdata/1/outd diff --git a/sample/sample_sessions/test01/2/pdata/1/proc b/sample/sample_sessions/example2/2/pdata/1/proc similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/proc rename to sample/sample_sessions/example2/2/pdata/1/proc diff --git a/sample/sample_sessions/test01/2/pdata/1/proc2 b/sample/sample_sessions/example2/2/pdata/1/proc2 similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/proc2 rename to sample/sample_sessions/example2/2/pdata/1/proc2 diff --git a/sample/sample_sessions/test01/2/pdata/1/proc2s b/sample/sample_sessions/example2/2/pdata/1/proc2s similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/proc2s rename to sample/sample_sessions/example2/2/pdata/1/proc2s diff --git a/sample/sample_sessions/test01/2/pdata/1/procs b/sample/sample_sessions/example2/2/pdata/1/procs similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/procs rename to sample/sample_sessions/example2/2/pdata/1/procs diff --git a/sample/sample_sessions/test01/2/pdata/1/title b/sample/sample_sessions/example2/2/pdata/1/title similarity index 100% rename from sample/sample_sessions/test01/2/pdata/1/title rename to sample/sample_sessions/example2/2/pdata/1/title diff --git a/sample/sample_sessions/test01/2/prosol_History b/sample/sample_sessions/example2/2/prosol_History similarity index 100% rename from sample/sample_sessions/test01/2/prosol_History rename to sample/sample_sessions/example2/2/prosol_History diff --git a/sample/sample_sessions/test01/2/pulseprogram b/sample/sample_sessions/example2/2/pulseprogram similarity index 100% rename from sample/sample_sessions/test01/2/pulseprogram rename to sample/sample_sessions/example2/2/pulseprogram diff --git a/sample/sample_sessions/test01/2/scon2 b/sample/sample_sessions/example2/2/scon2 similarity index 100% rename from sample/sample_sessions/test01/2/scon2 rename to sample/sample_sessions/example2/2/scon2 diff --git a/sample/sample_sessions/test01/2/ser b/sample/sample_sessions/example2/2/ser similarity index 100% rename from sample/sample_sessions/test01/2/ser rename to sample/sample_sessions/example2/2/ser diff --git a/sample/sample_sessions/test01/2/uxnmr.par b/sample/sample_sessions/example2/2/uxnmr.par similarity index 100% rename from sample/sample_sessions/test01/2/uxnmr.par rename to sample/sample_sessions/example2/2/uxnmr.par diff --git a/sample/sample_sessions/example3/.DS_Store b/sample/sample_sessions/example3/.DS_Store new file mode 100644 index 0000000..587abf6 Binary files /dev/null and b/sample/sample_sessions/example3/.DS_Store differ diff --git a/sample/sample_sessions/example3/10_Chsqc-800/.DS_Store b/sample/sample_sessions/example3/10_Chsqc-800/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/sample/sample_sessions/example3/10_Chsqc-800/.DS_Store differ diff --git a/sample/sample_sessions/example3/10_Chsqc-800/acqu b/sample/sample_sessions/example3/10_Chsqc-800/acqu new file mode 100644 index 0000000..9b26712 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/acqu @@ -0,0 +1,333 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 7 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 19:02:47.929 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/acqu +$$ process /opt/topspin3.2pl7/prog/mod/shimcntl +##$ACQT0= 0 +##$AMP= (0..31) +100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 +100 100 100 100 100 100 100 100 100 100 100 100 100 100 +##$AMPCOIL= (0..19) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ANAVPT= 1 +##$AQSEQ= 0 +##$AQ_mod= 3 +##$AUNM= +##$AUTOPOS= <> +##$BF1= 800.14 +##$BF2= 201.195364 +##$BF3= 81.077482 +##$BF4= 800.14 +##$BF5= 299.87 +##$BF6= 299.87 +##$BF7= 299.87 +##$BF8= 299.87 +##$BYTORDA= 0 +##$CAGPARS= (0..11) +0 0 0 0 0 0 0 0 0 0 0 0 +##$CFDGTYP= 0 +##$CFRGTYP= 9 +##$CHEMSTR= +##$CNST= (0..63) +1 1 135 1 1 1 1 1 1 1 4.7 4.05 1 1 1 1 1 -0.5 1 1 1 176 30 68 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +##$CPDPRG= (0..8) + <> <> +##$D= (0..63) +3e-06 1.2 0.00345 0.0023 0.001725 0 0 0.484 0 0.03 0 0.03 2e-05 3e-06 0 +0 0.0002 0 0 0 0 0 0 0.0133 0.00091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$DATE= 0 +##$DE= 10 +##$DECBNUC= +##$DECIM= 1920 +##$DECNUC= +##$DECSTAT= 4 +##$DIGMOD= 1 +##$DIGTYP= 12 +##$DQDMODE= 0 +##$DR= 22 +##$DS= 32 +##$DSPFIRM= 0 +##$DSPFVS= 0 +##$DTYPA= 0 +##$EXP= +##$F1LIST= <111111111111111> +##$F2LIST= <222222222222222> +##$F3LIST= <333333333333333> +##$FCUCHAN= (0..9) +0 2 1 3 0 0 0 0 0 0 +##$FL1= 90 +##$FL2= 90 +##$FL3= 90 +##$FL4= 90 +##$FOV= 20 +##$FQ1LIST= +##$FQ2LIST= +##$FQ3LIST= +##$FQ4LIST= +##$FQ5LIST= +##$FQ6LIST= +##$FQ7LIST= +##$FQ8LIST= +##$FRQLO3= 0 +##$FRQLO3N= 0 +##$FS= (0..7) +83 83 83 83 83 83 83 83 +##$FTLPGN= 0 +##$FW= 125000 +##$FnILOOP= 0 +##$FnMODE= 0 +##$FnTYPE= 0 +##$GPNAM= (0..31) + + + + + +##$GPX= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GPY= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GPZ= (0..31) +0 80 20.1 30 60 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GRDPROG= <3sine> +##$GRPDLY= -1 +##$HDDUTY= 20 +##$HDRATE= 20 +##$HGAIN= (0..3) +0 0 0 0 +##$HL1= 660 +##$HL2= 64 +##$HL3= 90 +##$HL4= 90 +##$HOLDER= 0 +##$HPMOD= (0..7) +0 0 0 0 0 0 0 0 +##$HPPRGN= 0 +##$IN= (0..63) +3.54996821482709e-05 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +6.50007257876593e-05 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +##$INF= (0..7) +0 66 0 0 0 0 0 0 +##$INP= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$INSTRUM= <> +##$L= (0..31) +1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +##$LFILTER= 10 +##$LGAIN= -10 +##$LINPSTP= 0 +##$LOCKED= no +##$LOCKFLD= 0 +##$LOCKGN= 0 +##$LOCKPOW= -20 +##$LOCKPPM= 0 +##$LOCNUC= <2H> +##$LOCPHAS= 0 +##$LOCSHFT= yes +##$LOCSW= 0 +##$LTIME= 0.1 +##$MASR= 4200 +##$MASRLST= +##$MULEXPNO= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$NBL= 1 +##$NC= 0 +##$NLOGCH= 1 +##$NOVFLW= 0 +##$NS= 4 +##$NUC1= <1H> +##$NUC2= <13C> +##$NUC3= <15N> +##$NUC4= +##$NUC5= +##$NUC6= +##$NUC7= +##$NUC8= +##$NUCLEUS= +##$NUSLIST= +##$NusAMOUNT= 25 +##$NusFPNZ= no +##$NusJSP= 0 +##$NusSEED= 54321 +##$NusT2= 1 +##$NusTD= 0 +##$O1= 3760.658 +##$O2= 8450.205288 +##$O3= 9421.2034084 +##$O4= 0 +##$O5= 200260000 +##$O6= 200260000 +##$O7= 200260000 +##$O8= 200260000 +##$OVERFLW= 0 +##$P= (0..63) +11 11 22 13.85 27.7 16.5 25 50 20000 22 44 80000 80000 1000 500 1498 1000 +2500 100000 600 2000 36 72 1125 2000 64 100000 11 0 1000 160 1498 20000 +0 0 120 40000 0 0 120 2000 1650 1050 2370 150 72 80000 46600 10000 75000 +4500 484 1050 0 0 975 500 1200 0 0 300 100 350 1500 +##$PACOIL= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAPS= 2 +##$PARMODE= 1 +##$PCPD= (0..9) +100 60 55 180 100 100 100 100 0 100 +##$PEXSEL= (0..9) +1 1 1 1 1 1 1 1 1 1 +##$PHCOR= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PHLIST= <> +##$PHP= 1 +##$PH_ref= -127.8 +##$PL= (0..63) +120 0.41 -2.3 -1.73 120 120 120 120 120 68 5.81 120 14.58 120 120 3.1 120 +120 -1.2 17.85 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 +##$PLSTEP= 0.1 +##$PLSTRT= -6 +##$PLW= (0..63) +0 10 149.97 150 0 -1 -1 -1 -1 4.84e-05 1.936 0.24694 9.51 5.788 0 59.437 +6 0 10 0.33611 5.865 0.46028 13.196 15.224 0.051142 21.443 0 1.1816 22.663 +1.936 9.51 46.028 1.936e-06 2.0229 0 -1 16.066 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$PLWMAX= (0..7) +0 0 0 0 0 0 0 0 +##$POWMOD= 0 +##$PQPHASE= 0 +##$PQSCALE= 0 +##$PR= 3 +##$PRECHAN= (0..15) +0 3 0 -1 -1 -1 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$PRGAIN= 0 +##$PROBHD= <03> +##$PULPROG= +##$PW= 0 +##$PYNM= +##$QNP= 1 +##$RD= 0 +##$RECCHAN= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPH= 0 +##$RECPRE= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPRFX= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECSEL= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RG= 322 +##$RO= 0 +##$ROUTWD1= (0..23) +0 512 2 2 2 2 2 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +##$ROUTWD2= (0..23) +1 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RSEL= (0..15) +0 1 2 6 0 0 0 0 0 0 0 0 0 0 0 0 +##$S= (0..7) +83 83 83 83 83 83 83 83 +##$SELREC= (0..9) +0 0 0 0 0 0 0 0 0 0 +##$SFO1= 800.143760658 +##$SFO2= 201.203814205288 +##$SFO3= 81.0869032034084 +##$SFO4= 800.14 +##$SFO5= 500.13 +##$SFO6= 500.13 +##$SFO7= 500.13 +##$SFO8= 500.13 +##$SOLVENT= +##$SOLVOLD= +##$SP= (0..63) +1 33.26 120 -2.3 0 10.6 120 120 0 0 0 0 0 -0.648 120 -0.7 150 150 150 150 +150 150 150 150 150 150 150 150 150 150 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 +##$SPECTR= 0 +##$SPINCNT= 0 +##$SPNAM= (0..63) + + + + + + + +<0.0> <> +<> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> +##$SPOAL= (0..63) +0.5 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0 0.5 0.5 0.5 0.5 0.5 0.5 +1 1 1 1 1 0.5 1 0.5 0 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 +0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 +0.5 0.5 0.5 0.5 0.5 +##$SPOFFS= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SPPEX= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SPW= (0..63) +-1 1.0045e-05 4.4644e-06 58.605 127.86 0.003489 4.84e-05 58.605 1.21e-07 +13.492 0.003489 0.003489 8.085 144.54 28.13 22.663 13.492 13.492 16.943 +7.126282e-06 1.107758e-05 5.172442e-06 2.789456e-05 0.026885 0.18629 0.017997 +0.0049543 0.017997 0.12645 0.046219 3.4418 7.0326 1.4112 13.492 4.8807e-05 +4.4644e-06 0.00028572 0 0.31808 49.766 84.777 135.13 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$SUBNAM= (0..9) +<""> <""> <""> <""> <""> <""> <""> <""> <""> <""> +##$SW= 13.018493899272 +##$SWIBOX= (0..19) +0 1 2 0 0 0 6 7 0 0 0 0 0 0 0 0 0 0 0 0 +##$SW_h= 10416.6666666667 +##$SWfinal= 0 +##$TD= 2048 +##$TD0= 1 +##$TE= 298 +##$TE1= 300 +##$TE2= 300 +##$TE3= 300 +##$TE4= 300 +##$TEG= 300 +##$TE_PIDX= 0 +##$TE_STAB= (0..9) +0 0 0 0 0 0 0 0 0 0 +##$TL= (0..7) +120 120 120 120 120 120 120 120 +##$TUNHIN= 0 +##$TUNHOUT= 0 +##$TUNXOUT= 0 +##$USERA1= +##$USERA2= +##$USERA3= +##$USERA4= +##$USERA5= +##$V9= 5 +##$VALIST= +##$VCLIST= +##$VD= 0 +##$VDLIST= +##$VPLIST= +##$VTLIST= +##$WBST= 1024 +##$WBSW= 4 +##$XGAIN= (0..3) +0 0 0 0 +##$XL= 0 +##$YL= 0 +##$YMAX_a= 0 +##$YMIN_a= 0 +##$ZGOPTNS= <-DLABEL_CN> +##$ZL1= 120 +##$ZL2= 120 +##$ZL3= 120 +##$ZL4= 120 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/acqu2 b/sample/sample_sessions/example3/10_Chsqc-800/acqu2 new file mode 100644 index 0000000..a220558 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/acqu2 @@ -0,0 +1,22 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 4 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 18:17:35.978 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/acqu2 +$$ process /opt/topspin3.2pl7/prog/mod/dataserver +##$ACQT0= 0 +##$BF1= 201.195364 +##$FnMODE= 6 +##$NUC1= <13C> +##$NusJSP= 0 +##$NusT2= 1 +##$NusTD= 0 +##$O1= 8450.205288 +##$SFO1= 201.203814205288 +##$SW= 75.30431374455 +##$SW_h= 15151.5151515152 +##$TD= 512 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/acqu2s b/sample/sample_sessions/example3/10_Chsqc-800/acqu2s new file mode 100644 index 0000000..a6e65f3 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/acqu2s @@ -0,0 +1,22 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 513 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 19:47:43.912 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/acqu2s +$$ process /opt/topspin3.2pl7/prog/mod/go +##$ACQT0= 0 +##$BF1= 201.195364 +##$FnMODE= 6 +##$NUC1= <13C> +##$NusJSP= 0 +##$NusT2= 1 +##$NusTD= 512 +##$O1= 8450.205288 +##$SFO1= 201.203814205288 +##$SW= 75.30431374455 +##$SW_h= 15151.5151515152 +##$TD= 512 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/acqus b/sample/sample_sessions/example3/10_Chsqc-800/acqus new file mode 100644 index 0000000..e7138cc --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/acqus @@ -0,0 +1,334 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 210 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 19:47:55.123 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/acqus +$$ process /opt/topspin3.2pl7/prog/mod/shimcntl +##$ACQT0= 1000000 +##$AMP= (0..31) +100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 +100 100 100 100 100 100 100 100 100 100 100 100 100 100 +##$AMPCOIL= (0..19) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ANAVPT= -1 +##$AQSEQ= 0 +##$AQ_mod= 3 +##$AUNM= +##$AUTOPOS= <> +##$BF1= 800.14 +##$BF2= 201.195364 +##$BF3= 81.077482 +##$BF4= 800.14 +##$BF5= 299.87 +##$BF6= 299.87 +##$BF7= 299.87 +##$BF8= 299.87 +##$BYTORDA= 0 +##$CAGPARS= (0..11) +0 0 0 0 0 0 0 0 0 0 0 0 +##$CFDGTYP= 0 +##$CFRGTYP= 9 +##$CHEMSTR= +##$CNST= (0..63) +1 1 135 1 1 1 1 1 1 1 4.7 4.05 1 1 1 1 1 -0.5 1 1 1 176 30 68 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +##$CPDPRG= (0..8) + <> <> +##$D= (0..63) +3e-06 1.2 0.00345 0.0023 0.001851852 0 0 0.484 0 0.03 0 0.03 2e-05 3e-06 +0 0 0.0002 0 0 0 0 0 0 0.0133 0.00091 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$DATE= 1614643366 +##$DE= 10 +##$DECBNUC= +##$DECIM= 1920 +##$DECNUC= +##$DECSTAT= 4 +##$DIGMOD= 1 +##$DIGTYP= 12 +##$DQDMODE= 0 +##$DR= 22 +##$DS= 32 +##$DSPFIRM= 0 +##$DSPFVS= 20 +##$DTYPA= 0 +##$EXP= +##$F1LIST= <111111111111111> +##$F2LIST= <222222222222222> +##$F3LIST= <333333333333333> +##$FCUCHAN= (0..9) +0 2 1 3 0 0 0 0 0 0 +##$FL1= 90 +##$FL2= 90 +##$FL3= 90 +##$FL4= 90 +##$FOV= 20 +##$FQ1LIST= +##$FQ2LIST= +##$FQ3LIST= +##$FQ4LIST= +##$FQ5LIST= +##$FQ6LIST= +##$FQ7LIST= +##$FQ8LIST= +##$FRQLO3= 1242958.09199998 +##$FRQLO3N= 0 +##$FS= (0..7) +83 83 83 83 83 83 83 83 +##$FTLPGN= 0 +##$FW= 125000 +##$FnILOOP= 0 +##$FnMODE= 0 +##$FnTYPE= 0 +##$GPNAM= (0..31) + + + + + +##$GPX= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GPY= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GPZ= (0..31) +0 80 20.1 30 60 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$GRDPROG= +##$GRPDLY= 67.9841918945312 +##$HDDUTY= 20 +##$HDRATE= 20 +##$HGAIN= (0..3) +0 0 0 0 +##$HL1= 660 +##$HL2= 64 +##$HL3= 90 +##$HL4= 90 +##$HOLDER= 0 +##$HPMOD= (0..7) +0 0 0 0 0 0 0 0 +##$HPPRGN= 0 +##$IN= (0..63) +3.3e-05 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 6.5e-05 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 +0.001 0.001 0.001 0.001 +##$INF= (0..7) +0 66 0 0 0 0 0 0 +##$INP= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$INSTRUM= +##$L= (0..31) +1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +##$LFILTER= 100 +##$LGAIN= -5 +##$LINPSTP= 0 +##$LOCKED= yes +##$LOCKFLD= 5629 +##$LOCKGN= 129.699996948242 +##$LOCKPOW= -18 +##$LOCKPPM= 4.69999980926514 +##$LOCNUC= <2H> +##$LOCPHAS= 67.7 +##$LOCSHFT= no +##$LOCSW= 0 +##$LTIME= 0.349999994039536 +##$MASR= 4200 +##$MASRLST= +##$MULEXPNO= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$NBL= 1 +##$NC= -6 +##$NLOGCH= 1 +##$NOVFLW= 0 +##$NS= 4 +##$NUC1= <1H> +##$NUC2= <13C> +##$NUC3= <15N> +##$NUC4= +##$NUC5= +##$NUC6= +##$NUC7= +##$NUC8= +##$NUCLEUS= +##$NUSLIST= +##$NusAMOUNT= 25 +##$NusFPNZ= no +##$NusJSP= 0 +##$NusSEED= 54321 +##$NusT2= 1 +##$NusTD= 0 +##$O1= 3760.658 +##$O2= 8450.205288 +##$O3= 9421.2034084 +##$O4= 0 +##$O5= 200260000 +##$O6= 200260000 +##$O7= 200260000 +##$O8= 200260000 +##$OVERFLW= 1 +##$P= (0..63) +11 11 22 13.85 27.7 16.5 25 50 20000 22 44 80000 80000 1000 500 1498 1000 +2500 100000 600 2000 36 72 1125 2000 64 100000 11 0 1000 160 1498 20000 +0 0 120 40000 0 0 120 2000 1650 1050 2370 150 72 80000 46600 10000 75000 +4500 484 1050 0 0 975 500 1200 0 0 300 100 350 1500 +##$PACOIL= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAPS= 2 +##$PARMODE= 1 +##$PCPD= (0..9) +100 60 55 180 100 100 100 100 0 100 +##$PEXSEL= (0..9) +1 1 1 1 1 1 1 1 1 1 +##$PHCOR= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PHLIST= <> +##$PHP= 1 +##$PH_ref= -127.8 +##$PL= (0..63) +120 0.41 -2.3 -1.73 120 120 120 120 120 68 5.81 120 14.58 120 120 3.1 120 +120 -1.2 17.85 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 +##$PLSTEP= 0.1 +##$PLSTRT= -6 +##$PLW= (0..63) +0 10 149.97 150 0 -1 -1 -1 -1 4.84e-05 1.936 0.24694 9.51 5.788 0 59.437 +6 0 10 0.33611 5.865 0.46028 13.196 15.224 0.051142 21.443 0 1.1816 22.663 +1.936 9.51 46.028 1.936e-06 2.0229 0 -1 16.066 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$PLWMAX= (0..7) +41.13 339 470 0 0 0 0 0 +##$POWMOD= 0 +##$PQPHASE= 0 +##$PQSCALE= 0 +##$PR= 3 +##$PRECHAN= (0..15) +0 3 0 -1 -1 -1 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$PRGAIN= 0 +##$PROBHD= <5 mm CPTCI 1H-13C/15N/D Z-GRD Z44909/0035 +> +##$PULPROG= +##$PW= 0 +##$PYNM= +##$QNP= 1 +##$RD= 0 +##$RECCHAN= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPH= 0 +##$RECPRE= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPRFX= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECSEL= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RG= 322 +##$RO= 0 +##$ROUTWD1= (0..23) +0 512 2 2 2 2 2 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 +##$ROUTWD2= (0..23) +1 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RSEL= (0..15) +0 1 2 6 0 0 0 0 0 0 0 0 0 0 0 0 +##$S= (0..7) +83 83 83 83 83 83 83 83 +##$SELREC= (0..9) +0 0 0 0 0 0 0 0 0 0 +##$SFO1= 800.143760658 +##$SFO2= 201.203814205288 +##$SFO3= 81.0869032034084 +##$SFO4= 800.14 +##$SFO5= 500.13 +##$SFO6= 500.13 +##$SFO7= 500.13 +##$SFO8= 500.13 +##$SOLVENT= +##$SOLVOLD= +##$SP= (0..63) +1 33.26 120 -2.3 0 10.6 120 120 0 0 0 0 0 -0.648 120 -0.7 150 150 150 150 +150 150 150 150 150 150 150 150 150 150 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 120 +120 120 120 120 120 120 120 120 +##$SPECTR= 0 +##$SPINCNT= 0 +##$SPNAM= (0..63) + + + + + + + +<0.0> <> +<> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> +##$SPOAL= (0..63) +0.5 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0 0.5 0.5 0.5 0.5 0.5 0.5 +1 1 1 1 1 0.5 1 0.5 0 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 +0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 +0.5 0.5 0.5 0.5 0.5 +##$SPOFFS= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SPPEX= (0..63) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SPW= (0..63) +-1 1.0045e-05 4.4644e-06 58.605 127.86 0.003489 4.84e-05 58.605 1.21e-07 +13.492 0.003489 0.003489 8.085 144.54 28.13 22.663 13.492 13.492 16.943 +7.126282e-06 1.107758e-05 5.172442e-06 2.789456e-05 0.026885 0.18629 0.017997 +0.0049543 0.017997 0.12645 0.046219 3.4418 7.0326 1.4112 13.492 4.8807e-05 +4.4644e-06 0.00028572 0 0.31808 49.766 84.777 135.13 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$SUBNAM= (0..9) +<""> <""> <""> <""> <""> <""> <""> <""> <""> <""> +##$SW= 13.018493899272 +##$SWIBOX= (0..19) +0 1 2 0 0 0 6 7 0 0 0 0 0 0 0 0 0 0 0 0 +##$SW_h= 10416.6666666667 +##$SWfinal= 0 +##$TD= 2048 +##$TD0= 1 +##$TE= 297.9658 +##$TE1= 300 +##$TE2= 300 +##$TE3= 300 +##$TE4= 300 +##$TEG= 300 +##$TE_PIDX= 0 +##$TE_STAB= (0..9) +0 0 0 0 0 0 0 0 0 0 +##$TL= (0..7) +120 120 120 120 120 120 120 120 +##$TUNHIN= 0 +##$TUNHOUT= 0 +##$TUNXOUT= 0 +##$USERA1= +##$USERA2= +##$USERA3= +##$USERA4= +##$USERA5= +##$V9= 5 +##$VALIST= +##$VCLIST= +##$VD= 0 +##$VDLIST= +##$VPLIST= +##$VTLIST= +##$WBST= 1024 +##$WBSW= 4 +##$XGAIN= (0..3) +0 0 0 0 +##$XL= 0 +##$YL= 0 +##$YMAX_a= 1543900 +##$YMIN_a= -1781526 +##$ZGOPTNS= <-DLABEL_CN> +##$ZL1= 120 +##$ZL2= 120 +##$ZL3= 120 +##$ZL4= 120 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/audita.txt b/sample/sample_sessions/example3/10_Chsqc-800/audita.txt new file mode 100644 index 0000000..339098d --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/audita.txt @@ -0,0 +1,18 @@ +##TITLE= Audit trail, TOPSPIN Version 3.2 +##JCAMPDX= 5.01 +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/audita.txt +##AUDIT TRAIL= $$ (NUMBER, WHEN, WHO, WHERE, PROCESS, VERSION, WHAT) +( 1,<2021-03-01 19:47:45.292 -0500>,,,,, + ) +##END= + +$$ hash MD5 +$$ D8 28 90 4C 67 AF 1B 34 CB 11 A0 FB 4E A8 C8 10 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/cpdprg2 b/sample/sample_sessions/example3/10_Chsqc-800/cpdprg2 new file mode 100644 index 0000000..c6eb071 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/cpdprg2 @@ -0,0 +1,101 @@ +1 pcpd*0.339:0 + pcpd*0.613:180 + pcpd*2.864:0 + pcpd*2.981:180 + pcpd*0.770:0 + pcpd*0.691:180 + pcpd*0.944:0 + pcpd*1.020:180 + pcpd*1.494:0 + pcpd*2.846:180 + pcpd*0.738:0 + pcpd*0.510:180 + pcpd*0.283:0 + pcpd*0.808:180 + pcpd*1.328:0 + pcpd*1.536:180 + pcpd*2.871:0 + pcpd*0.721:180 + pcpd*0.788 :0 + pcpd*0.858:180 + pcpd*1.091:0 + pcpd*1.484:180 + pcpd*2.843:0 + pcpd*0.729:180 + pcpd*0.593:0 + pcpd*0.339:0 + pcpd*0.613:180 + pcpd*2.864:0 + pcpd*2.981:180 + pcpd*0.770:0 + pcpd*0.691:180 + pcpd*0.944:0 + pcpd*1.020:180 + pcpd*1.494:0 + pcpd*2.846:180 + pcpd*0.738:0 + pcpd*0.510:180 + pcpd*0.283:0 + pcpd*0.808:180 + pcpd*1.328:0 + pcpd*1.536:180 + pcpd*2.871:0 + pcpd*0.721:180 + pcpd*0.788 :0 + pcpd*0.858:180 + pcpd*1.091:0 + pcpd*1.484:180 + pcpd*2.843:0 + pcpd*0.729:180 + pcpd*0.593:0 + pcpd*0.339:180 + pcpd*0.613:0 + pcpd*2.864:180 + pcpd*2.981:0 + pcpd*0.770:180 + pcpd*0.691:0 + pcpd*0.944:180 + pcpd*1.020:0 + pcpd*1.494:180 + pcpd*2.846:0 + pcpd*0.738:180 + pcpd*0.510:0 + pcpd*0.283:180 + pcpd*0.808:0 + pcpd*1.328:180 + pcpd*1.536:0 + pcpd*2.871:180 + pcpd*0.721:0 + pcpd*0.788:180 + pcpd*0.858:0 + pcpd*1.091:180 + pcpd*1.484:0 + pcpd*2.843:180 + pcpd*0.729:0 + pcpd*0.593:180 + pcpd*0.339:180 + pcpd*0.613:0 + pcpd*2.864:180 + pcpd*2.981:0 + pcpd*0.770:180 + pcpd*0.691:0 + pcpd*0.944:180 + pcpd*1.020:0 + pcpd*1.494:180 + pcpd*2.846:0 + pcpd*0.738:180 + pcpd*0.510:0 + pcpd*0.283:180 + pcpd*0.808:0 + pcpd*1.328:180 + pcpd*1.536:0 + pcpd*2.871:180 + pcpd*0.721:0 + pcpd*0.788:180 + pcpd*0.858:0 + pcpd*1.091:180 + pcpd*1.484:0 + pcpd*2.843:180 + pcpd*0.729:0 + pcpd*0.593:180 + jump to 1 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/fid.com b/sample/sample_sessions/example3/10_Chsqc-800/fid.com new file mode 100644 index 0000000..d2b687d --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/fid.com @@ -0,0 +1,19 @@ +#!/bin/csh + +bruk2pipe -verb -in ./ser \ + -bad 0.0 -ext -aswap -AMX -decim 1920 -dspfvs 20 -grpdly 67.9841918945312 \ + -xN 2048 -yN 512 \ + -xT 1024 -yT 256 \ + -xMODE DQD -yMODE Echo-AntiEcho \ + -xSW 10416.667 -ySW 15151.515 \ + -xOBS 800.144 -yOBS 201.204 \ + -xCAR 4.773 -yCAR 44.741 \ + -xLAB 1H -yLAB 13C \ + -ndim 2 -aq2D Complex \ +| nmrPipe -fn MULT -c 3.90625e+00 \ + -out ./test.fid -ov + +# +# nmrDraw -process -in test.fid -fid test.fid + +sleep 5 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/format.temp b/sample/sample_sessions/example3/10_Chsqc-800/format.temp new file mode 100644 index 0000000..e27009d --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/format.temp @@ -0,0 +1,358 @@ +EDIT_PAR COMMAND FILE + +DI_MODE LONG +ED_ENTRY ACQU +ORDER FILE + + +HEADER "F2 - Acquisition Parameters" +T_NAME Date_ + TYPE R64 + CLASS ACQU + SUBRANGE 0.0 50000000 + REL "Date_=itodate(DATE)" + INV_REL "DATE=datetoi(Date_,DATE)" + FORMAT "%14.0f" + TEXT " " +END +T_NAME Time + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1000000 + REL "Time=itotime(DATE)" + INV_REL "DATE=timetoi(Time,DATE)" + FORMAT "%14.2f" + TEXT " " +END +NAME INSTRUM + TEXT " " +END +NAME PROBHD + FORMAT "%14.14s" + TEXT " " +END +NAME PULPROG + TEXT " " +END +NAME TD + TEXT " " +END +NAME SOLVENT + TEXT " " +END +NAME NS + TEXT " " +END +NAME DS + TEXT " " +END +T_NAME SWH + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e8 + REL "SWH=SW*SFO1" + INV_REL "SW=SWH/SFO1" + UNIT "Hz" + FORMAT "%14.3f Hz" + TEXT " " +END +T_NAME FIDRES + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 100000 + REL "FIDRES=SW*SFO1/TD" + INV_REL "TD = nextpow(SW*SFO1/FIDRES)" + UNIT "Hz" + FORMAT "%14.6f Hz" + TEXT " " +END +T_NAME AQ + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1000 + REL "AQ=aqcalc(SW,SFO1,TD,DIGTYP)" + INV_REL "TD=tdcalc(SW,SFO1,1.0e6*AQ,DIGTYP)" + UNIT "sec" + FORMAT "%14.7f sec" + TEXT " " +END +NAME RG + TEXT " " +END +T_NAME DW + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1000000 + REL "DW=1/(2*SW*SFO1)" + INV_REL "SW=1000000/(2*(0.005+DW)*SFO1)" + UNIT "usec" + FORMAT "%14.3lf usec" + TEXT " " +END +NAME DE + FORMAT "%14.2f usec" + TEXT " " +END +NAME TE + FORMAT "%14.1f K" + TEXT " " +END +T_NAME CNST2 + TYPE R32 + CLASS ACQU + SUBRANGE -1e38 1e38 + REL "CNST2=CNST[2]" + INV_REL "CNST[2]=CNST2" + FORMAT "%14.7f" + TEXT " " +END +T_NAME D0 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "D0=D[0]" + INV_REL "D[0]=D0" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME D1 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "D1=D[1]" + INV_REL "D[1]=D1" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME D4 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "D4=D[4]" + INV_REL "D[4]=D4" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME D11 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "D11=D[11]" + INV_REL "D[11]=D11" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME D16 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "D16=D[16]" + INV_REL "D[16]=D16" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME IN0 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1e38 + REL "IN0=IN[0]" + INV_REL "IN[0]=IN0" + UNIT "sec" + FORMAT "%14.8f sec" + TEXT " " +END +T_NAME P21 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P21=P[21]" + INV_REL "P[21]=P21" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +NAME ZGOPTNS + TEXT " " +END +HEADER "======== CHANNEL f1 ========" +NAME SFO1 + FORMAT "%14.7f MHz" + TEXT " " +END +NAME NUC1 + NONEDIT + TEXT " " +END +T_NAME P1 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P1=P[1]" + INV_REL "P[1]=P1" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME P2 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P2=P[2]" + INV_REL "P[2]=P2" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME P28 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P28=P[28]" + INV_REL "P[28]=P28" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME PLW1 + TYPE R32 + CLASS ACQU + SUBRANGE 0 41.13 + REL "PLW1=PLW[1]" + INV_REL "PLW[1]=PLW1" + UNIT "W" + FORMAT "%14.8f W" + TEXT "power PLW1 " +END +HEADER "======== CHANNEL f2 ========" +NAME SFO2 + FORMAT "%14.7f MHz" + TEXT " " +END +NAME NUC2 + NONEDIT + TEXT " " +END +NAME CPDPRG[2] + TEXT " " +END +T_NAME P3 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P3=P[3]" + INV_REL "P[3]=P3" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME P4 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P4=P[4]" + INV_REL "P[4]=P4" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME PCPD2 + TYPE R32 + CLASS ACQU + SUBRANGE 0 1e38 + REL "PCPD2=PCPD[2]" + INV_REL "PCPD[2]=PCPD2" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME PLW2 + TYPE R32 + CLASS ACQU + SUBRANGE 0 339 + REL "PLW2=PLW[2]" + INV_REL "PLW[2]=PLW2" + UNIT "W" + FORMAT "%14.8f W" + TEXT "power PLW2 " +END +T_NAME PLW12 + TYPE R32 + CLASS ACQU + SUBRANGE 0 339 + REL "PLW12=PLW[12]" + INV_REL "PLW[12]=PLW12" + UNIT "W" + FORMAT "%14.8f W" + TEXT "power PLW12 " +END +HEADER "======== CHANNEL f3 ========" +NAME SFO3 + FORMAT "%14.7f MHz" + TEXT " " +END +NAME NUC3 + NONEDIT + TEXT " " +END +T_NAME P22 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P22=P[22]" + INV_REL "P[22]=P22" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END +T_NAME PLW3 + TYPE R32 + CLASS ACQU + SUBRANGE 0 470 + REL "PLW3=PLW[3]" + INV_REL "PLW[3]=PLW3" + UNIT "W" + FORMAT "%14.8f W" + TEXT "power PLW3 " +END +HEADER "====== GRADIENT CHANNEL =====" +NAME GPNAM[1] + TEXT " " +END +NAME GPNAM[2] + TEXT " " +END +T_NAME GPZ1 + TYPE R32 + CLASS ACQU + SUBRANGE -100.0 100.0 + REL "GPZ1=GPZ[1]" + INV_REL "GPZ[1]=GPZ1" + UNIT "%" + FORMAT "%14.2f %" + TEXT " " +END +T_NAME GPZ2 + TYPE R32 + CLASS ACQU + SUBRANGE -100.0 100.0 + REL "GPZ2=GPZ[2]" + INV_REL "GPZ[2]=GPZ2" + UNIT "%" + FORMAT "%14.2f %" + TEXT " " +END +T_NAME P16 + TYPE R32 + CLASS ACQU + SUBRANGE 0.0 1.0e10 + REL "P16=P[16]" + INV_REL "P[16]=P16" + UNIT "usec" + FORMAT "%14.2f usec" + TEXT " " +END diff --git a/sample/sample_sessions/example3/10_Chsqc-800/overflow_log_dru1.txt b/sample/sample_sessions/example3/10_Chsqc-800/overflow_log_dru1.txt new file mode 100644 index 0000000..a28a802 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/overflow_log_dru1.txt @@ -0,0 +1,17 @@ +# This file gives a closer overview about the occurrences of ADC overflows +# during the last acquisition. +# It is updated each time an FID is written to disk. +# 'Scans' denotes the number of scans that have been acquired for the current FID buffer, +# 'Experiment' the number of the current FID buffer +# (which may be >1 in case of multi dimensional acquisition), +# 'Overflows' the total number of ADC overflows (if existing) that appeared during 'Scans' +# scans in FID buffer 'Experiment'. +# In case a multi-dimensional experiment is fully executed in the FID buffer of the DRU +# (i.e. using 'st' commands) only the sum of all overflows over all experiments is displayed. +# Note that the number of overflows may exceed the actual number of scans +# since there may be more than one overflow per scan. + + +# Scans Experiment Overflows +# ------------------------------ +4 314 1 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/.proctest b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/.proctest new file mode 100644 index 0000000..e69de29 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/.test b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/.test new file mode 100644 index 0000000..e69de29 diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/auditp.txt b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/auditp.txt new file mode 100644 index 0000000..77030fc --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/auditp.txt @@ -0,0 +1,27 @@ +##TITLE= Audit trail, TOPSPIN Version 3.2 +##JCAMPDX= 5.01 +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/auditp.txt +##AUDIT TRAIL= $$ (NUMBER, WHEN, WHO, WHERE, PROCESS, VERSION, WHAT) +( 1,<2021-03-01 19:47:45.292 -0500>,,,,, + ) +( 2,<2021-03-01 20:00:34.553 -0500>,,,,, + ) +( 3,<2021-03-01 20:01:04.727 -0500>,,,,, + ) +##END= + +$$ hash MD5 +$$ DD D4 A8 92 55 80 AA 1E 31 BA 00 F4 83 33 69 7F diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/clevels b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/clevels new file mode 100644 index 0000000..dce9ae9 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/clevels @@ -0,0 +1,29 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 1 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 18:17:23.860 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/clevels +$$ process /opt/topspin3.2pl7/prog/mod/edparproc +##$LEVELS= (0..255) +-1317933.86063109 -746615.205763753 -422960.728249843 -239609.073402992 +-135739.571601851 -76897.0516724346 -43562.5108148818 -24678.3499136024 +24678.3499136024 43562.5108148818 76897.0516724346 135739.571601851 239609.073402992 +422960.728249843 746615.205763753 1317933.86063109 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$LEVSIGN= 3 +##$MAXLEV= 8 +##$METHOD= 0 +##$NEGBASE= -69241 +##$NEGINCR= 1.8 +##$POSBASE= 69241 +##$POSINCR= 1.8 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/outd b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/outd new file mode 100644 index 0000000..6bf852f --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/outd @@ -0,0 +1,16 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 1 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 18:17:23.860 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/outd +$$ process /opt/topspin3.2pl7/prog/mod/edparproc +##$CURPLOT= +##$CURPRIN= <$HP1320> +##$DFORMAT= +##$LAYOUT= <+/2D_inv.xwp> +##$LFORMAT= +##$PFORMAT= +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc new file mode 100644 index 0000000..dfada79 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc @@ -0,0 +1,128 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 4 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 20:01:04.727 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/proc +$$ process /opt/topspin3.2pl7/prog/mod/proc2d +##$ABSF1= 1000 +##$ABSF2= -100 +##$ABSG= 5 +##$ABSL= 3 +##$ALPHA= 0 +##$AQORDER= 0 +##$ASSFAC= 0 +##$ASSFACI= 0 +##$ASSFACX= 0 +##$ASSWID= 0 +##$AUNMP= +##$AXLEFT= 0 +##$AXNAME= +##$AXNUC= +##$AXRIGHT= 0 +##$AXTYPE= 0 +##$AXUNIT= <> +##$AZFE= 0.1 +##$AZFW= 0.5 +##$BCFW= 1 +##$BC_mod= 4 +##$BYTORDP= 0 +##$COROFFS= 0 +##$CY= -3 +##$DATMOD= 1 +##$DC= 1 +##$DFILT= <> +##$DTYPP= 0 +##$ERETIC= no +##$F1P= 0 +##$F2P= 0 +##$FCOR= 0.5 +##$FTSIZE= 4096 +##$FT_mod= 0 +##$GAMMA= 1 +##$GB= 0 +##$INTBC= 1 +##$INTSCL= 1 +##$ISEN= 128 +##$LB= 1 +##$LEV0= 35 +##$LPBIN= 0 +##$MAXI= 10000 +##$MC2= 0 +##$MEAN= 0 +##$ME_mod= 0 +##$MI= 0 +##$MddCEXP= no +##$MddCT_SP= no +##$MddF180= no +##$MddLAMBDA= 0 +##$MddMEMORY= 0 +##$MddMERGE= 23 +##$MddNCOMP= 0 +##$MddNITER= 0 +##$MddNOISE= 0.8 +##$MddPHASE= 0 +##$MddSEED= 0 +##$MddSRSIZE= 0 +##$Mdd_CsALG= 0 +##$Mdd_CsLAMBDA= 1 +##$Mdd_CsNITER= 0 +##$Mdd_CsNORM= 0 +##$Mdd_CsZF= 0 +##$Mdd_mod= 0 +##$NCOEF= 0 +##$NC_proc= 0 +##$NLEV= 6 +##$NOISF1= 0 +##$NOISF2= 0 +##$NSP= 1 +##$NTH_PI= 0 +##$NZP= 1 +##$OFFSET= 9.739441 +##$PC= 1.4 +##$PHC0= 135.949 +##$PHC1= -23.6 +##$PH_mod= 1 +##$PKNL= yes +##$PPARMOD= 1 +##$PPDIAG= 0 +##$PPIPTYP= 0 +##$PPMPNUM= 100 +##$PPRESOL= 1 +##$PSCAL= 0 +##$PSIGN= 0 +##$PYNMP= +##$REVERSE= no +##$SF= 800.14 +##$SI= 4096 +##$SIGF1= 0 +##$SIGF2= 0 +##$SINO= 16 +##$SIOLD= 4096 +##$SPECTYP= <> +##$SREGLST= +##$SSB= 2 +##$STSI= 0 +##$STSR= 0 +##$SW_p= 8064.51612903226 +##$SYMM= 0 +##$S_DEV= 0 +##$TDeff= 0 +##$TDoff= 0 +##$TI= <> +##$TILT= no +##$TM1= 0 +##$TM2= 0 +##$TOPLEV= 100 +##$USERP1= +##$USERP2= +##$USERP3= +##$USERP4= +##$USERP5= +##$WDW= 4 +##$XDIM= 64 +##$YMAX_p= 0 +##$YMIN_p= 0 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2 b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2 new file mode 100644 index 0000000..50a8182 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2 @@ -0,0 +1,128 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 1 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 18:17:23.859 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/proc2 +$$ process /opt/topspin3.2pl7/prog/mod/edparproc +##$ABSF1= 1000 +##$ABSF2= -1000 +##$ABSG= 5 +##$ABSL= 3 +##$ALPHA= 0 +##$AQORDER= 0 +##$ASSFAC= 0 +##$ASSFACI= 0 +##$ASSFACX= 0 +##$ASSWID= 0 +##$AUNMP= <> +##$AXLEFT= 0 +##$AXNAME= +##$AXNUC= +##$AXRIGHT= 0 +##$AXTYPE= 0 +##$AXUNIT= <> +##$AZFE= 0.1 +##$AZFW= 0.5 +##$BCFW= 1 +##$BC_mod= 0 +##$BYTORDP= 0 +##$COROFFS= 0 +##$CY= -3 +##$DATMOD= 1 +##$DC= 1 +##$DFILT= <> +##$DTYPP= 0 +##$ERETIC= no +##$F1P= 0 +##$F2P= 0 +##$FCOR= 0.5 +##$FTSIZE= 1024 +##$FT_mod= 0 +##$GAMMA= 1 +##$GB= 0.1 +##$INTBC= 1 +##$INTSCL= 1 +##$ISEN= 128 +##$LB= 0.3 +##$LEV0= 0 +##$LPBIN= 0 +##$MAXI= 10000 +##$MC2= 5 +##$MEAN= 0 +##$ME_mod= 2 +##$MI= 1 +##$MddCEXP= no +##$MddCT_SP= no +##$MddF180= no +##$MddLAMBDA= 0 +##$MddMEMORY= 0 +##$MddMERGE= 23 +##$MddNCOMP= 0 +##$MddNITER= 0 +##$MddNOISE= 0.8 +##$MddPHASE= 0 +##$MddSEED= 0 +##$MddSRSIZE= 0 +##$Mdd_CsALG= 0 +##$Mdd_CsLAMBDA= 1 +##$Mdd_CsNITER= 0 +##$Mdd_CsNORM= 0 +##$Mdd_CsZF= 0 +##$Mdd_mod= 0 +##$NCOEF= 32 +##$NC_proc= 0 +##$NLEV= 6 +##$NOISF1= 0 +##$NOISF2= 0 +##$NSP= 1 +##$NTH_PI= 0 +##$NZP= 1 +##$OFFSET= 76.83041 +##$PC= 4 +##$PHC0= -7.79688 +##$PHC1= 12 +##$PH_mod= 1 +##$PKNL= yes +##$PPARMOD= 1 +##$PPDIAG= 0 +##$PPIPTYP= 0 +##$PPMPNUM= 100 +##$PPRESOL= 1 +##$PSCAL= 1 +##$PSIGN= 0 +##$PYNMP= +##$REVERSE= no +##$SF= 201.195364 +##$SI= 1024 +##$SIGF1= 0 +##$SIGF2= 0 +##$SINO= 16 +##$SIOLD= 1024 +##$SPECTYP= <> +##$SREGLST= +##$SSB= 2 +##$STSI= 0 +##$STSR= 0 +##$SW_p= 15625 +##$SYMM= 0 +##$S_DEV= 0 +##$TDeff= 0 +##$TDoff= 0 +##$TI= <> +##$TILT= no +##$TM1= 0.1 +##$TM2= 0.9 +##$TOPLEV= 0 +##$USERP1= +##$USERP2= +##$USERP3= +##$USERP4= +##$USERP5= +##$WDW= 4 +##$XDIM= 64 +##$YMAX_p= 0 +##$YMIN_p= 0 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2s b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2s new file mode 100644 index 0000000..05ff5e3 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/proc2s @@ -0,0 +1,128 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 3 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 20:01:04.726 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/proc2s +$$ process /opt/topspin3.2pl7/prog/mod/proc2d +##$ABSF1= 0 +##$ABSF2= 0 +##$ABSG= 0 +##$ABSL= 0 +##$ALPHA= 0 +##$AQORDER= 0 +##$ASSFAC= 0 +##$ASSFACI= 0 +##$ASSFACX= 0 +##$ASSWID= 0 +##$AUNMP= <> +##$AXLEFT= 0 +##$AXNAME= +##$AXNUC= <13C> +##$AXRIGHT= 0 +##$AXTYPE= 0 +##$AXUNIT= <> +##$AZFE= 0.1 +##$AZFW= 0.5 +##$BCFW= 0 +##$BC_mod= 0 +##$BYTORDP= 0 +##$COROFFS= 0 +##$CY= -3 +##$DATMOD= 1 +##$DC= 0 +##$DFILT= <> +##$DTYPP= 0 +##$ERETIC= no +##$F1P= 0 +##$F2P= 0 +##$FCOR= 0.5 +##$FTSIZE= 1024 +##$FT_mod= 6 +##$GAMMA= 0 +##$GB= 0 +##$INTBC= 1 +##$INTSCL= 1 +##$ISEN= 128 +##$LB= 0 +##$LEV0= 0 +##$LPBIN= 1024 +##$MAXI= 10000 +##$MC2= 5 +##$MEAN= 0 +##$ME_mod= 2 +##$MI= 1 +##$MddCEXP= no +##$MddCT_SP= no +##$MddF180= no +##$MddLAMBDA= 0 +##$MddMEMORY= 0 +##$MddMERGE= 0 +##$MddNCOMP= 0 +##$MddNITER= 0 +##$MddNOISE= 0 +##$MddPHASE= 0 +##$MddSEED= 0 +##$MddSRSIZE= 0 +##$Mdd_CsALG= 0 +##$Mdd_CsLAMBDA= 0 +##$Mdd_CsNITER= 0 +##$Mdd_CsNORM= 0 +##$Mdd_CsZF= 0 +##$Mdd_mod= 0 +##$NCOEF= 32 +##$NC_proc= -2 +##$NLEV= 6 +##$NOISF1= 0 +##$NOISF2= 0 +##$NSP= 0 +##$NTH_PI= 0 +##$NZP= 0 +##$OFFSET= 79.65374 +##$PC= 4 +##$PHC0= -7.79688 +##$PHC1= 12 +##$PH_mod= 1 +##$PKNL= no +##$PPARMOD= 1 +##$PPDIAG= 0 +##$PPIPTYP= 0 +##$PPMPNUM= 100 +##$PPRESOL= 1 +##$PSCAL= 1 +##$PSIGN= 0 +##$PYNMP= +##$REVERSE= no +##$SF= 201.195364 +##$SI= 1024 +##$SIGF1= 0 +##$SIGF2= 0 +##$SINO= 16 +##$SIOLD= 1024 +##$SPECTYP= <> +##$SREGLST= +##$SSB= 2 +##$STSI= 1024 +##$STSR= 0 +##$SW_p= 15151.5151515152 +##$SYMM= 0 +##$S_DEV= 16458 +##$TDeff= 1024 +##$TDoff= 0 +##$TI= <> +##$TILT= no +##$TM1= 0 +##$TM2= 0 +##$TOPLEV= 0 +##$USERP1= +##$USERP2= +##$USERP3= +##$USERP4= +##$USERP5= +##$WDW= 4 +##$XDIM= 64 +##$YMAX_p= 324803127 +##$YMIN_p= -176876474 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/procs b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/procs new file mode 100644 index 0000000..6baba81 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/procs @@ -0,0 +1,128 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 3 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 20:01:04.726 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/pdata/1/procs +$$ process /opt/topspin3.2pl7/prog/mod/proc2d +##$ABSF1= 0 +##$ABSF2= 0 +##$ABSG= 0 +##$ABSL= 0 +##$ALPHA= 0 +##$AQORDER= 0 +##$ASSFAC= 0 +##$ASSFACI= 0 +##$ASSFACX= 0 +##$ASSWID= 0 +##$AUNMP= +##$AXLEFT= 0 +##$AXNAME= +##$AXNUC= <1H> +##$AXRIGHT= 0 +##$AXTYPE= 0 +##$AXUNIT= <> +##$AZFE= 0.1 +##$AZFW= 0.5 +##$BCFW= 0 +##$BC_mod= 4 +##$BYTORDP= 0 +##$COROFFS= 0 +##$CY= 15 +##$DATMOD= 1 +##$DC= 0 +##$DFILT= <> +##$DTYPP= 0 +##$ERETIC= no +##$F1P= 11.8050945207695 +##$F2P= 5.19194933777531 +##$FCOR= 0.5 +##$FTSIZE= 4096 +##$FT_mod= 6 +##$GAMMA= 0 +##$GB= 0 +##$INTBC= 1 +##$INTSCL= 7.935817e-10 +##$ISEN= 128 +##$LB= 0 +##$LEV0= 0 +##$LPBIN= 0 +##$MAXI= -0.2650709 +##$MC2= 0 +##$MEAN= 0 +##$ME_mod= 0 +##$MI= 0 +##$MddCEXP= no +##$MddCT_SP= no +##$MddF180= no +##$MddLAMBDA= 0 +##$MddMEMORY= 0 +##$MddMERGE= 0 +##$MddNCOMP= 0 +##$MddNITER= 0 +##$MddNOISE= 0 +##$MddPHASE= 0 +##$MddSEED= 0 +##$MddSRSIZE= 0 +##$Mdd_CsALG= 0 +##$Mdd_CsLAMBDA= 0 +##$Mdd_CsNITER= 0 +##$Mdd_CsNORM= 0 +##$Mdd_CsZF= 0 +##$Mdd_mod= 0 +##$NCOEF= 0 +##$NC_proc= -2 +##$NLEV= 6 +##$NOISF1= 8.174992 +##$NOISF2= 6.675002 +##$NSP= 0 +##$NTH_PI= 0 +##$NZP= 0 +##$OFFSET= 11.20928 +##$PC= 1 +##$PHC0= 135.949 +##$PHC1= -23.6 +##$PH_mod= 1 +##$PKNL= yes +##$PPARMOD= 1 +##$PPDIAG= 0 +##$PPIPTYP= 0 +##$PPMPNUM= 100 +##$PPRESOL= 1 +##$PSCAL= 4 +##$PSIGN= 0 +##$PYNMP= +##$REVERSE= no +##$SF= 800.14 +##$SI= 4096 +##$SIGF1= 0 +##$SIGF2= 0 +##$SINO= 400 +##$SIOLD= 2048 +##$SPECTYP= <> +##$SREGLST= <1H.CDCl3> +##$SSB= 2 +##$STSI= 4096 +##$STSR= 0 +##$SW_p= 10416.6666666667 +##$SYMM= 0 +##$S_DEV= 16458 +##$TDeff= 2048 +##$TDoff= 0 +##$TI= <> +##$TILT= no +##$TM1= 0 +##$TM2= 0 +##$TOPLEV= 0 +##$USERP1= +##$USERP2= +##$USERP3= +##$USERP4= +##$USERP5= +##$WDW= 4 +##$XDIM= 4096 +##$YMAX_p= 324803127 +##$YMIN_p= -176876474 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/thumb.png b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/thumb.png new file mode 100644 index 0000000..0fd011b Binary files /dev/null and b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/thumb.png differ diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/title b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/title new file mode 100644 index 0000000..60376d9 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pdata/1/title @@ -0,0 +1 @@ +HC-HSQC \ No newline at end of file diff --git a/sample/sample_sessions/example3/10_Chsqc-800/proc.com b/sample/sample_sessions/example3/10_Chsqc-800/proc.com new file mode 100644 index 0000000..ff53022 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/proc.com @@ -0,0 +1,22 @@ +#!/bin/csh + +# +# Generated by basicFT2.com Version 2020.030.18.06 +# +# basicFT2.com -in test.fid -out lp.ft2 -xEXTX1 5.5ppm \ +# -xEXTXN -0.5ppm -xP0 58.0 -yLP fb,ord=8 -yP0 90 + +nmrPipe -in test.fid \ +| nmrPipe -fn SP -off 0.5 -end 0.95 -pow 2 -elb 0.0 -glb 0.0 -c 0.5 \ +| nmrPipe -fn ZF -zf 1 -auto \ +| nmrPipe -fn FT -verb \ +| nmrPipe -fn PS -p0 58.0 -p1 0.0 -di \ +| nmrPipe -fn EXT -x1 5.5ppm -xn -0.5ppm -sw \ +| nmrPipe -fn TP \ +| nmrPipe -fn LP -fb -ord 8 \ +| nmrPipe -fn SP -off 0.5 -end 0.95 -pow 1 -elb 0.0 -glb 0.0 -c 0.5 \ +| nmrPipe -fn ZF -zf 1 -auto \ +| nmrPipe -fn FT -verb \ +| nmrPipe -fn PS -p0 90 -p1 0.0 -di \ +| nmrPipe -fn TP \ + -out lp.ft2 -ov diff --git a/sample/sample_sessions/example3/10_Chsqc-800/pulseprogram b/sample/sample_sessions/example3/10_Chsqc-800/pulseprogram new file mode 100644 index 0000000..daa7a72 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/pulseprogram @@ -0,0 +1,302 @@ +# 1 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +;hsqcetgp +;avance-version (12/01/11) +;HSQC +;2D H-1/X correlation via double inept transfer +;phase sensitive using Echo/Antiecho-TPPI gradient selection +;with decoupling during acquisition +;using trim pulses in inept transfer +; +;$CLASS=HighRes +;$DIM=2D +;$TYPE= +;$SUBTYPE= +;$COMMENT= + + +# 1 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Avance.incl" 1 +;Avance2.incl +; for TCU3 +; +;avance-version (13/06/17) +; +;$CLASS=HighRes Incl +;$COMMENT= +# 145 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Avance.incl" +;$Id: Avance2.incl,v 1.23.8.3 2013/08/30 09:44:49 ber Exp $ +# 16 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" 2 + +# 1 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Grad.incl" 1 +;Grad2.incl - include file for Gradient Spectroscopy +; for TCU3 +; +;avance-version (07/01/17) +; +;$CLASS=HighRes Incl +;$COMMENT= + +# 27 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Grad.incl" +define list EA= + + +# 31 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Grad.incl" +;$Id: Grad2.incl,v 1.13.8.1 2012/01/31 17:56:17 ber Exp $ +# 17 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" 2 + +# 1 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" 1 +;Delay.incl - include file for commonly used delays +; +;version (13/08/07) +; +;$CLASS=HighRes Incl +;$COMMENT= + +# 9 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" +;general delays + +define delay DELTA +define delay DELTA1 +define delay DELTA2 +define delay DELTA3 +define delay DELTA4 +define delay DELTA5 +define delay DELTA6 +define delay DELTA7 +define delay DELTA8 +define delay DELTA9 +define delay DELTA10 +define delay DELTA11 +define delay DELTA12 +define delay DELTA13 +define delay DELTA14 +define delay DELTA15 +define delay DELTA16 + +define delay TAU +define delay TAU1 +define delay TAU2 +define delay TAU3 +define delay TAU4 +define delay TAU5 +define delay TAU6 +define delay TAU7 +define delay TAU8 +define delay TAU9 +# 40 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" +define delay INCR1 +define delay INCR2 +define delay INCR3 +define delay INCR4 +define delay INCR5 +define delay INCR6 + + +;delays for centering pulses +# 50 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" +define delay CEN_HN1 +define delay CEN_HN2 +define delay CEN_HN3 +define delay CEN_HC1 +define delay CEN_HC2 +define delay CEN_HC3 +define delay CEN_HC4 +define delay CEN_HP1 +define delay CEN_HP2 +define delay CEN_CN1 +define delay CEN_CN2 +define delay CEN_CN3 +define delay CEN_CN4 +define delay CEN_CP1 +define delay CEN_CP2 + + +;loop counters +# 69 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" +define loopcounter COUNTER +define loopcounter SCALEF +define loopcounter FACTOR1 +define loopcounter FACTOR2 +define loopcounter FACTOR3 +define loopcounter FACTOR4 +define loopcounter FACTOR5 +define loopcounter FACTOR6 + + +# 80 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/Delay.incl" +;$Id: Delay.incl,v 1.13.8.2 2013/08/30 09:44:49 ber Exp $ +# 18 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" 2 + + +# 21 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +"p2=p1*2" +"p4=p3*2" +"d4=1s/(cnst2*4)" +"d11=30m" + + +"p22=p21*2" +# 32 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +"d0=3u" + +"in0=inf1/2" + +# 37 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +"DELTA1=d4-p16-de+p1*2/PI-8u" + + +"DELTA=p16+d16+larger(p2,p22)+d0*2" +# 1 "mc_line 46 file /opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp exp. def. part of mc cmd. before ze" +define delay MCWRK +define delay MCREST +define delay d0orig +"d0orig=d0" +define loopcounter t1loop +"t1loop=0" +define loopcounter ph1loop +"ph1loop=0" +define loopcounter ST1CNT +"ST1CNT = td1 / 2" +"MCREST = d1 - d1" +"MCWRK = 0.076923*d1" + + dccorr +# 46 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +# 46 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +1 ze +# 1 "mc_line 46 file /opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp exp. def. of mc cmd. after ze" + "d0=d0orig + t1loop * in0 " + "phval3 = (t1loop * 180)%360" + MCWRK ip3 + phval3 + "phval6 = (t1loop * 180)%360" + MCWRK ip6 + phval6 + "phval31 = (t1loop * 180)%360" + MCWRK ip31 + phval31 + MCWRK + "phval0 = ph1loop * 1" + MCWRK setgrad EA +# 47 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" + d11 pl12:f2 +# 1 "mc_line 48 file /opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp exp. start label for mc cmd." +2 MCWRK * 6 do:f2 +LBLF1, MCWRK * 6 +LBLST1, MCWRK + MCREST +# 49 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +3 (p1 ph1) + d4 pl2:f2 + (center (p2 ph1) (p4 ph6):f2 ) + d4 setnmr3|0 setnmr0|34|32|33 ctrlgrad 0 + p28 ph1 + 4u + (p1 ph2) (p3 ph3):f2 + d0 + + + (center (p2 ph5) (p22 ph1):f3 ) +# 64 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" + d0 + p16:gp1*EA + d16 + (p4 ph4):f2 + DELTA + (ralign (p1 ph1) (p3 ph4):f2 ) + d4 + (center (p2 ph1) (p4 ph1):f2 ) + 4u + p16:gp2 + DELTA1 pl12:f2 + 4u setnmr3^0 setnmr0^34^32^33 ctrlgrad 7 + go=2 ph31 cpd2:f2 +# 1 "mc_line 77 file /opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp exp. mc cmd. in line" + MCWRK do:f2 wr #0 if #0 zd + + "ph1loop+=1" + "d0=d0orig + t1loop * in0 " + "phval3 = (t1loop * 180)%360" + MCWRK ip3 + phval3 + "phval6 = (t1loop * 180)%360" + MCWRK ip6 + phval6 + "phval31 = (t1loop * 180)%360" + MCWRK ip31 + phval31 + MCWRK + "phval0 = ph1loop * 1" + MCWRK setgrad EA + lo to LBLF1 times 2 + MCWRK + + "t1loop+=1" + "d0=d0orig + t1loop * in0 " + "phval3 = (t1loop * 180)%360" + MCWRK ip3 + phval3 + "phval6 = (t1loop * 180)%360" + MCWRK ip6 + phval6 + "phval31 = (t1loop * 180)%360" + MCWRK ip31 + phval31 + MCWRK + "phval0 = ph1loop * 1" + MCWRK setgrad EA + lo to LBLST1 times ST1CNT + MCWRK + "t1loop=0" + "ph1loop=0" + MCWRK +# 79 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +exit + + +ph1=0 +ph2=1 +ph3=0 2 +ph4=0 0 0 0 2 2 2 2 +ph5=0 0 2 2 +ph6=0 +ph31=0 2 0 2 2 0 2 0 + + +;pl1 : f1 channel - power level for pulse (default) +;pl2 : f2 channel - power level for pulse (default) +;pl3 : f3 channel - power level for pulse (default) +;pl12: f2 channel - power level for CPD/BB decoupling +;p1 : f1 channel - 90 degree high power pulse +;p2 : f1 channel - 180 degree high power pulse +;p3 : f2 channel - 90 degree high power pulse +;p4 : f2 channel - 180 degree high power pulse +;p16: homospoil/gradient pulse +;p22: f3 channel - 180 degree high power pulse +;p28: f1 channel - trim pulse +;d0 : incremented delay (2D) [3 usec] +;d1 : relaxation delay; 1-5 * T1 +;d4 : 1/(4J)XH +;d11: delay for disk I/O [30 msec] +;d16: delay for homospoil/gradient recovery +;cnst2: = J(XH) +;inf1: 1/SW(X) = 2 * DW(X) +;in0: 1/(2 * SW(X)) = DW(X) +;nd0: 2 +;ns: 1 * n +;ds: >= 16 +;td1: number of experiments +;FnMODE: echo-antiecho +;cpd2: decoupling according to sequence defined by cpdprg2 +;pcpd2: f2 channel - 90 degree pulse for decoupling sequence +# 119 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +;use gradient ratio: gp 1 : gp 2 +; 80 : 20.1 for C-13 +; 80 : 8.1 for N-15 + +;for z-only gradients: +;gpz1: 80% +;gpz2: 20.1% for C-13, 8.1% for N-15 + +;use gradient files: +;gpnam1: SMSQ10.100 +;gpnam2: SMSQ10.100 +# 132 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" + ;preprocessor-flags-start +;1: for C-13 and N-15 labeled samples start experiment with +; option -DLABEL_CN (eda: ZGOPTNS) + ;preprocessor-flags-end + + +# 139 "/opt/topspin3.2pl7/exp/stan/nmr/lists/pp/hsqcetgp" +;$Id: hsqcetgp,v 1.5.4.1.4.1 2012/01/31 17:56:32 ber Exp $ diff --git a/sample/sample_sessions/example3/10_Chsqc-800/scon2 b/sample/sample_sessions/example3/10_Chsqc-800/scon2 new file mode 100644 index 0000000..ba80e1e --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/scon2 @@ -0,0 +1,26 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 1 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= monteg3 +$$ 2021-03-01 19:01:57.216 -0500 monteg3@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/data/monteg3/nmr/iv28.003-NC-20210301/10/scon2 +$$ process /opt/topspin3.2pl7/prog/mod/go +##$BLKTR= (0..19) +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +##$DE1= 4.5 +##$DEADC= 0.5 +##$DEPA= 4.5 +##$DERX= 1.5 +##$FILCOR= 0 +##$GRADCHAN= 0 +##$GRADPRE= (0..1) +10 10 +##$HD_BLKTR= (0..19) +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +##$HD_DE1= 5 +##$HD_DEADC= 0 +##$HD_DEPA= 2.5 +##$HD_DERX= 0 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/ser b/sample/sample_sessions/example3/10_Chsqc-800/ser new file mode 100644 index 0000000..f1a132f Binary files /dev/null and b/sample/sample_sessions/example3/10_Chsqc-800/ser differ diff --git a/sample/sample_sessions/example3/10_Chsqc-800/specpar b/sample/sample_sessions/example3/10_Chsqc-800/specpar new file mode 100644 index 0000000..2bb7761 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/specpar @@ -0,0 +1,64 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 19715 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= nmrsu +$$ 2021-02-16 11:23:58.043 -0500 mccals@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/conf/instr/spect/specpar +$$ process /opt/topspin3.2pl7/prog/mod/cprserver +##$HPPRECH= (0..15) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$LOCSW2H= 2 +##$NUC1= 1 +##$NUC2= 0 +##$NUC3= 12 +##$NUC4= 0 +##$NUC5= 0 +##$NUC6= 0 +##$NUC7= 0 +##$NUC8= 0 +##$NUCARR= (0..123) +800.14 800.14 122.826362 853.461122 609.542147 117.749291 310.964785 112.434177 +85.964305 256.71671 201.195363 57.801193 81.077482 108.470635 752.88382 +63.16542 211.652233 48.98165 208.491352 158.96531 323.902609 61.418746 +78.396989 65.257218 37.337517 20.494026 53.849654 194.367984 45.108165 +45.120191 79.77643 210.460408 45.227881 198.348449 25.906757 189.84981 +71.500918 212.160906 227.269309 50.063184 192.044434 244.016327 27.911404 +137.004884 152.598804 41.749081 200.466916 216.089953 30.786187 77.253061 +261.809441 34.676643 39.208444 74.383399 195.843627 52.144532 53.238875 +180.09812 36.847655 41.298178 25.496037 36.615207 32.388219 37.234779 169.753542 +177.57647 174.956652 175.33171 261.795798 285.107957 298.377263 191.478119 +103.691879 209.394574 252.442322 160.087898 222.520422 65.962909 104.947499 +79.489564 88.918982 105.572872 113.024904 245.002868 43.60763 26.884704 +33.365838 27.524816 198.914804 87.855372 24.564298 32.245642 192.353656 +27.524816 38.566748 170.749876 23.044032 66.331606 140.018947 38.574749 +91.247966 65.059383 32.06161 20.139524 95.933585 33.336929 180.228334 182.044652 +18.261843 62.134072 13.746405 14.970619 172.004367 13.834421 143.311651 +52.90192 457.065572 461.551461 167.394081 128.576801 14.733778 100 100 +100 +##$OFFSF= (0..7) +0 0 0 0 0 0 0 0 +##$OFFSH= (0..7) +3763.60000007026 3761.40000003033 0 0 0 0 0 0 +##$OFFSX= (0..7) +11066.000000028 9566.99999998989 429.900000000316 0 0 0 0 0 +##$PRECHAN= (0..15) +0 3 0 -1 -1 -1 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPRE= (0..15) +-1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RECPRFX= (0..15) +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RECSEL= (0..15) +0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +##$SELREC= (0..9) +0 0 0 0 0 0 0 0 0 0 +##$SFO1= 800.143764 +##$SFO2= 800.14 +##$SFO3= 81.088548 +##$SFO4= 800.14 +##$SFO5= 500.13 +##$SFO6= 500.13 +##$SFO7= 500.13 +##$SFO8= 500.13 +##END= diff --git a/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.info b/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.info new file mode 100644 index 0000000..5a86cf2 --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.info @@ -0,0 +1,124 @@ +CONFIGURATION INFORMATION +========================= + +Path : /opt/topspin3.2pl7/conf/instr/spect/uxnmr.info +Date : Tue Aug 18 13:22:01 2020 +Release : TOPSPIN Version 3.2-pl7 +Installed in : /opt/topspin3.2pl7 +Host : hudson.biotech.rpi.edu +OS : Red Hat Enterprise Linux Workstation release 7.4 (Maipo) +CPU : Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz (4 cores at 814 MHz with Hyperthreading) +User : nmrsu (NMR Super User) +Description : Avance-AV 800 +Location : +System : Avance-AV NMR spectrometer +1H-frequency : 800.14 MHz +Order Number : +Configured in: /opt/topspin3.2pl7/conf/instr/spect + +#-------------------- +# FCU configuration: +#-------------------- +board # 1 : + MEMORY 0x1ff000 (=511 k Words) + PAL-Version 0x104 = new version (EC level 07 or more) +board # 2 : + MEMORY 0x1ff000 (=511 k Words) + PAL-Version 0x104 = new version (EC level 07 or more) +board # 3 : + MEMORY 0x1ff000 (=511 k Words) + PAL-Version 0x104 = new version (EC level 07 or more) +board # 4 : + MEMORY 0x1ff000 (=511 k Words) + PAL-Version 0x104 = new version (EC level 07 or more) + +DRU: AQS DRU-E Z102520/02577 ECL 06.02 +- TCP/IP address = 149.236.99.89 +- Firmware Version = 150604 + +Gcu: GCU3_SlowIF + +AQS: connected to spect:/dev/tty10 + _Slot_ SBSB _____________________Board_____________________ + Number Addr Type HW-VS FW-VS ID ECL Name Description + ----------------------------------------------------------- + 2 0x10 0x52 0x3 AW R 2.0 REC-1 AQS RXAD1000 Z102118/66 ECL 02.00 + 3 0x34 0xc1 0x1 X 0.4 REF-1 REF-1000 Reference Board for AQS Receiver + 4 0x24 0x28 0x4 BH S 7.1 SGU-1 AQS SGU1000 Z003330/01271 ECL 7.1 + 5 0x25 0x28 0x4 BH S 6.0 SGU-2 AQS SGU1000 Z003330/01104 ECL 6.0 + 6 0x26 0x28 0x4 BH S 7.4 SGU-3 AQS SGU1000 Z003330/01331 ECL 7.4 + 7 0x27 0x28 0x4 BH S 7.4 SGU-4 AQS SGU1000 Z003330/01329 ECL 7.4 + 8 0x3c 0x4 0 Y 1.0 ROUT-1 Avance Router 3/5 + 9 0x3d 0x4 0 Y 1.0 ROUT-2 Avance Router 3/5 + 21 0x21 0xa 0 P 1.0 PSD-1 Power Supply Distribution Board + 23 0x20 0xc6 0 B 1.4 AQS/2 AQS/2 chassis + 25 0x20 0x7 0 B MASTER AQS Rack Master + Logical Receiver/SGU configuration: + + +Router: 2 Avance-Routers + +Amplifier Control Board: connected to spect:/dev/tty20 + + +Amplifiers (ACB configuration): + RO Amplifier Module Nucleus Power/W Switchbox Name PN/SN/FW + 1 1 1 X 500 N (V=ff) BLAXH 500/100 W1345063/60/20071205 + 2 1 2 1H 100 N (-""-) BLAXH 500/100 W1345063/60/20071205 + 6 2 1 X 500 N (V=ff) BLA2X 500 W1345067/43/20070924 + 7 2 2 X 500 N (-""-) BLA2X 500 W1345067/43/20070924 connected to 2H lockswitch + + + +- Type: BSMS/1 +- absolute lockshift frequency = 12826362 Hz + +Bruker Automatic Changer: device connected to spect:/dev/tty04 +- Capacity: 16 holders +- Firmware: 20130108 +- use BACS air = yes +- BACS sx delay = 14 s +- Sample Rail fast changer mode = no + +Sample Changers at the spectrometer subnet: +------------------------------------------- + - BACS2_H15200_757: at TCP/IP address 149.236.99.152 + + +Cryo Controller CRCO: device connected to spect:/dev/tty08 + +Lock: device connected to spect:/dev/tty03 + +Bruker Magnet Pump Control BMPC: device connected to spect:/dev/tty09 + +Eurotherm VTU: device connected to spect:/dev/tty05 + +Preamplifiers : +HPPR: - HPPR/2 preamplifier connected to spect:/dev/tty10 + Type : HPPR/2 + Controller: Application firmware = AP + 15 LEDs for tuning, 15 LEDs for matching + Module 1 : 1H LNA + PN=Z003465, SN=00079 from 20050606 + Module 2 : XBB31P 2HS + PN=Z003509, SN=00095 from 20050324 + Module 3 : 2H + PN=Z003476, SN=00079 from 20050622 + Module 4 : 13C + PN=Z003527, SN=00066 from 20050111 + Module 5 : 15N + PN=Z003533, SN=00064 from 20050609 + + +Frequency generation: +- F1: for SGU +- F2: for SGU +- F3: for SGU +- F4: for SGU + + +Preemphasis Unit: device connected to spect:/dev/tty06 + for shielded gradients +- GREAT-3/10 current limits = -10.0/X, -10.0/Y, -10.0/Z (in A) + + diff --git a/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.par b/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.par new file mode 100644 index 0000000..8ab995b --- /dev/null +++ b/sample/sample_sessions/example3/10_Chsqc-800/uxnmr.par @@ -0,0 +1,713 @@ +##TITLE= Parameter file, TOPSPIN Version 3.2 +##JCAMPDX= 5.0 +##DATATYPE= Parameter Values +##NPOINTS= 207 $$ modification sequence number +##ORIGIN= Bruker BioSpin GmbH +##OWNER= nmrsu +$$ 2020-08-18 13:22:34.465 -0400 nmrsu@hudson.biotech.rpi.edu +$$ /opt/topspin3.2pl7/conf/instr/spect/uxnmr.par +$$ process /opt/topspin3.2pl7/prog/mod/hconfserver +##$ACB= 1 +##$ACBTAT= (0..23) +0 88 72 0 0 0 88 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTBA= (0..23) +0 40 30 0 0 0 180 190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTBLK= (0..23) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTCTL= (0..23) +0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTDI= (0..23) +0 70 70 0 0 0 75 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTDM= (0..23) +0 6 25 0 0 0 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTFHI= (0..23) +0 365 900 0 0 0 365 365 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTFL= (0..23) +0 249 250 0 0 0 249 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTFLO= (0..23) +0 6 650 0 0 0 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTINP= (0..23) +0 1 2 0 0 0 6 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTOUT= (0..23) +0 2 1 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTPO= (0..23) +0 500000 100000 0 0 0 500000 500000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTPW= (0..23) +0 600 1000 0 0 0 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTSB= (0..23) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTSDT= (0..23) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ACBTY= +##$AMPDFLT= no +##$AQSBDCH= (0..95) +0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +##$AQSBDHW= (0..95) +3 1 4 4 4 4 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +##$AQSBDID= (0..95) +82 88 83 83 83 83 89 89 80 66 66 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 +##$AQSBDNO= (0..95) +1 1 1 2 3 4 1 2 1 1 1 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +##$AQSBDSL= (0..95) +2 3 4 5 6 7 8 9 21 23 25 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 +##$AQSBDTY= (0..95) +82 193 40 40 40 40 4 4 10 198 7 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 +##$AQSBUAD= (0..95) +16 52 36 37 38 39 60 61 33 32 32 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 +##$AQSECL= (0..95) +2 0 7 6 7 7 1 1 1 1 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 +##$AQSECLS= (0..95) +0 4 1 0 4 4 0 0 0 4 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 +255 +##$AQSETH1= +##$AQSETH2= +##$AQSSPLT= no +##$ATT19F= (0..1) +0 0 +##$ATT1H= (0..1) +0 0 +##$ATT3H= (0..1) +0 0 +##$ATTX= (0..1) +0 0 +##$ATTY= (0..1) +0 0 +##$ATTZ= (0..1) +0 0 +##$BACSAIR= yes +##$BACSCAP= 16 +##$BACSDEL= 14 +##$BACSFCM= no +##$BACSOPT= <> +##$BACSTY= +##$BARPTY= +##$BFREQ= 800.14 +##$BGAETH1= +##$BGAETH2= +##$BGAETH3= +##$BGAETH4= +##$BGAETH5= +##$BGAETH6= +##$BGAETH7= +##$BGAETH8= +##$BIRDS= yes +##$BMPC= 1 +##$BMPCTY= +##$BPSUTY= +##$BSMS= 1 +##$BSMS19FLock= yes +##$BSMSETH= +##$BSMSTY= +##$BgaChMap= (0..7) +15 15 15 15 15 15 15 15 +##$BgaChShimMap= (0..7) +0 0 0 0 0 0 0 0 +##$Bla01Eth= +##$Bla01Nam= +##$Bla01PN= +##$Bla01SN= <60> +##$Bla02Eth= +##$Bla02Nam= +##$Bla02PN= +##$Bla02SN= <43> +##$Bla03Eth= +##$Bla03Nam= <> +##$Bla03PN= <> +##$Bla03SN= <> +##$Bla04Eth= +##$Bla04Nam= <> +##$Bla04PN= <> +##$Bla04SN= <> +##$Bla05Eth= +##$Bla05Nam= <> +##$Bla05PN= <> +##$Bla05SN= <> +##$Bla06Eth= +##$Bla06Nam= <> +##$Bla06PN= <> +##$Bla06SN= <> +##$Bla07Eth= +##$Bla07Nam= <> +##$Bla07PN= <> +##$Bla07SN= <> +##$Bla08Eth= +##$Bla08Nam= <> +##$Bla08PN= <> +##$Bla08SN= <> +##$CFASMOD= (0..7) +1 1 1 1 1 1 1 1 +##$CFASMUL= (0..7) +1 1 1 1 1 1 1 1 +##$CNFTXDR= (0..7) +6 6 6 6 0 0 0 0 +##$COMDIG2= 0 +##$CPDBTY= +##$CRCOTY= +##$CSW1= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$CSW2= (0..31) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$CSWNUM= (0..7) +0 0 0 0 0 0 0 0 +##$Ctb1Eth= +##$DATSTAT= no +##$DIGI140= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIB12= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIB16= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIFA= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIHA= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIHAF= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIHRD= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIIA= (0..7) +0 0 0 0 0 0 0 0 +##$DIGIO16= (0..7) +0 0 0 0 0 0 0 0 +##$DIGISA= (0..7) +0 0 0 0 0 0 0 0 +##$DIGISAF= (0..7) +0 0 0 0 0 0 0 0 +##$DIGISL= (0..7) +0 0 0 0 0 0 0 0 +##$DIGITYI= (0..7) +0 0 0 0 0 0 0 0 +##$DIGITYP= (0..7) +0 0 0 0 0 0 0 0 +##$DIGITZ= 0 +##$DPPFAC= 1 +##$DRMSETH= +##$DRU= yes +##$DRUETH01= <149.236.99.89> +##$DRUETH02= +##$DRUETH03= +##$DRUETH04= +##$DRUETH05= +##$DRUETH06= +##$DRUETH07= +##$DRUETH08= +##$DRUETH09= +##$DRUETH10= +##$DRUETH11= +##$DRUETH12= +##$DRUETH13= +##$DRUETH14= +##$DRUETH15= +##$DRUETH16= +##$DRUETH17= +##$DRUETH18= +##$DRUETH19= +##$DRUETH20= +##$DRUETH21= +##$DRUETH22= +##$DRUETH23= +##$DRUETH24= +##$DRUETH25= +##$DRUETH26= +##$DRUETH27= +##$DRUETH28= +##$DRUETH29= +##$DRUETH30= +##$DRUETH31= +##$DRUETH32= +##$Description= +##$DppType= 0 +##$FCUMEM= (0..7) +2093056 2093056 2093056 2093056 0 0 0 0 +##$FCUPAL= (0..7) +260 260 260 260 0 0 0 0 +##$FGSVTY= +##$FQMIX= 0 +##$FUNCMOD= <> +##$GCUTYPE= 2 +##$GCUTYPE2= 0 +##$GPREDEL= 0 +##$GPSCUTY= +##$GRADRES= 0 +##$GTUTY= +##$GradAmpGain= (0..1) +0 0 +##$GradAmpMaxCurX= (0..1) +-10 0 +##$GradAmpMaxCurY= (0..1) +-10 0 +##$GradAmpMaxCurZ= (0..1) +-10 0 +##$GradAmpType= (0..1) +1 0 +##$HDIETH1= +##$HDIETH2= +##$HDIETH3= +##$HDIETH4= +##$HFAC= 3 +##$HPCU= 0 +##$HPCUTY= +##$HPTXLP= (0..3) +-1 -1 -1 -1 +##$HPTXPI= (0..3) +0 0 0 0 +##$HPTXPO= (0..3) +0 0 0 0 +##$HPTXTY= (0..3) +0 0 0 0 +##$IF451= 0 +##$IFREQ= 1 +##$INTFPR= 0 +##$IPSO= no +##$IPSOETH= <> +##$LOCKCONF= <> +##$LOCKTY= +##$LOCSWID= 7 +##$LOCSWIF= 0 +##$LVDSSPLITETH1= +##$LVDSSPLITETH2= +##$LVDSSPLITETH3= +##$LVDSSPLITETH4= +##$Location= <> +##$M2FAC= 0 +##$MAS= 0 +##$MASETIME= 10 +##$MASITIME= 10 +##$MASTY= +##$MAS_CT= 0 +##$MAS_SG= 0 +##$MAS_TO= 0 +##$MEMPRM= 0 +##$MHFAC= 0 +##$MXFAC= 0 +##$NAMPD1= <1H LNA> +##$NAMPD10= <> +##$NAMPD11= <> +##$NAMPD12= <> +##$NAMPD13= <> +##$NAMPD14= <> +##$NAMPD15= <> +##$NAMPD16= <> +##$NAMPD2= +##$NAMPD3= <2H> +##$NAMPD4= <13C> +##$NAMPD5= <15N> +##$NAMPD6= <> +##$NAMPD7= <> +##$NAMPD8= <> +##$NAMPD9= <> +##$NFCU= 4 +##$NFRED= 0 +##$NMRCH= 2 +##$NMRMEM= 16384 +##$NPSGU= 0 +##$NRCU= 1 +##$NROUT= 2 +##$NSGU= 4 +##$OrderNo= <> +##$PAMPF1= (0..15) +75 24 80 96 80 80 0 0 0 0 0 0 0 0 0 0 +##$PAMPF2= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF3= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF4= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF5= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF6= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF7= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PAMPF8= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PH4= 0 +##$PHF4TY= +##$POWCHK= yes +##$PRAMD1= (0..7) +2 0 0 536870912 0 0 0 0 +##$PRAMD10= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD11= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD12= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD13= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD14= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD15= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD16= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD17= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD18= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD19= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD2= (0..7) +2147483584 2146435071 2147483647 603979775 0 0 0 0 +##$PRAMD20= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD21= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD3= (0..7) +0 1048576 0 536870912 0 1048576 0 536870912 +##$PRAMD4= (0..7) +16777216 0 0 536870912 0 0 0 0 +##$PRAMD5= (0..7) +0 0 4 536870912 0 0 0 0 +##$PRAMD6= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD7= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD8= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMD9= (0..7) +0 0 0 0 0 0 0 0 +##$PRAMLED= (0..1) +15 15 +##$PRAMP1= +##$PRAMP2= +##$PRAMP3= +##$PRAMP4= +##$PRAMP5= +##$PRAMP6= +##$PRAMP7= +##$PRAMP8= +##$PRAMPTP= 1 +##$PREPTY= +##$PREREC= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PRESHLD= 1 +##$PTS160= -1 +##$PTSA2X= (0..7) +0 0 0 0 0 0 0 0 +##$PTSF2X= (0..7) +0 0 0 0 0 0 0 0 +##$PTSFMX= (0..19) +1072.525 1072.525 1072.525 1072.525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$PULCHK= no +##$PramDutyCycPerc= (0..15) +2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 +##$PramPeakPowerW= (0..15) +100 500 500 500 500 0 0 0 0 0 0 0 0 0 0 0 +##$PramPulWidthMs= (0..15) +0.02 0.1 0.1 0.1 0.1 0 0 0 0 0 0 0 0 0 0 0 +##$PreampMod01PN= +##$PreampMod01SN= <00079> +##$PreampMod02PN= +##$PreampMod02SN= <00095> +##$PreampMod03PN= +##$PreampMod03SN= <00079> +##$PreampMod04PN= +##$PreampMod04SN= <00066> +##$PreampMod05PN= +##$PreampMod05SN= <00064> +##$PreampMod06PN= <> +##$PreampMod06SN= <> +##$PreampMod07PN= <> +##$PreampMod07SN= <> +##$PreampMod08PN= <> +##$PreampMod08SN= <> +##$PreampMod09PN= <> +##$PreampMod09SN= <> +##$PreampMod10PN= <> +##$PreampMod10SN= <> +##$PreampMod11PN= <> +##$PreampMod11SN= <> +##$PreampMod12PN= <> +##$PreampMod12SN= <> +##$PreampMod13PN= <> +##$PreampMod13SN= <> +##$PreampMod14PN= <> +##$PreampMod14SN= <> +##$PreampMod15PN= <> +##$PreampMod15SN= <> +##$PreampMod16PN= <> +##$PreampMod16SN= <> +##$PreampModBisDat= (0..15) +20050606 20050324 20050622 20050111 20050609 0 0 0 0 0 0 0 0 0 0 0 +##$ProdigyEth= +##$RCUCDS= (0..7) +0 0 0 0 0 0 0 0 +##$RCUCFS= (0..7) +0 0 0 0 0 0 0 0 +##$RCUCSS= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C1= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C2= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C3= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C4= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C5= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C6= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C7= (0..7) +0 0 0 0 0 0 0 0 +##$RCUI2C8= (0..7) +0 0 0 0 0 0 0 0 +##$RDCU= 0 +##$RFSINPUT= (0..1) +0 0 +##$RFSVTY= +##$RGTYPE= (0..31) +9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RG_max= (0..31) +2050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RG_min= (0..31) +0.25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$RG_tab1= (0..255) +0.25 0.28 0.32 0.35 0.4 0.44 0.5 0.56 0.64 0.7 0.8 0.89 1 1.12 1.28 1.4 +1.6 1.78 2 2.25 2.56 2.8 3.2 3.56 4 4.5 5 5.6 6.35 7.12 8 9 10 11.3 12.7 +14.2 16 18 20.2 22.6 25.4 28.5 32 36 40.3 45.2 50.8 57 64 71.8 80.6 90.5 +101 114 128 144 161 181 203 228 256 287 322 362 406 456 512 575 645 724 +812 912 1030 1150 1290 1440 1620 1820 2050 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab2= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab3= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab4= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab5= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab6= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab7= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tab8= (0..255) +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$RG_tabA= (0..255) +0.25 0.28 0.32 0.35 0.4 0.44 0.5 0.56 0.64 0.7 0.8 0.89 1 1.12 1.28 1.4 +1.6 1.78 2 2.25 2.56 2.8 3.2 3.56 4 4.5 5 5.6 6.35 7.12 8 9 10 11.3 12.7 +14.2 16 18 20.2 22.6 25.4 28.5 32 36 40.3 45.2 50.8 57 64 71.8 80.6 90.5 +101 114 128 144 161 181 203 228 256 287 322 362 406 456 512 575 645 724 +812 912 1030 1150 1290 1440 1620 1820 2050 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +##$ROUT14= (0..7) +0 0 0 0 0 0 0 0 +##$ROUTER= 2 +##$RX22TY= +##$RXFMAX= (0..7) +1072.5 -1 -1 -1 -1 -1 -1 -1 +##$RXFMIN= (0..7) +5 -1 -1 -1 -1 -1 -1 -1 +##$RXINTLV= (0..7) +1 0 0 0 0 0 0 0 +##$RXMSTY= +##$SCMTY= +##$SGUC1= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SGUC2= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$SLCBCONF= +##$SPECTR= 5 +##$SY2FLAG= 0 +##$SYNCTRIG= 0 +##$SamChgEth= (0..3) +<149.236.99.152> +##$Sgu1PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu2PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu3PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu4PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu5PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu6PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu7PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$Sgu8PowerLevels= (0..7) +0 0 0 0 0 0 0 0 +##$SguType= 1 +##$ShimPowMaxUA= (0..63) +130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 +130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 +130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 130000 +130000 130000 130000 130000 130000 130000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 +##$ShimPowMaxUC= (0..63) +131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 +131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 +131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 131072 +131072 131072 131072 131072 131072 131072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 +##$ShimPowMaxUG= (0..63) +524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 +524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 +524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 524287 +524287 524287 524287 524287 524287 524287 524287 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ShimPowRcbType= 1 +##$ShimPowRes= (0..63) +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ShimPowRng0= (0..63) +0.016 0.11 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 +0.526 0.016 0.11 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 +0.526 0.526 0.016 0.11 0.526 0.526 0.526 0.526 0.526 0.526 0.526 0.526 +0.526 0.526 0.526 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ShimPowRng1= (0..63) +0.059 0.245 1 1 1 1 1 1 1 1 1 1 1 0.059 0.245 1 1 1 1 1 1 1 1 1 1 1 0.059 +0.245 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 +##$ShimPowRng2= (0..63) +0.132 0.495 1 1 1 1 1 1 1 1 1 1 1 0.132 0.495 1 1 1 1 1 1 1 1 1 1 1 0.132 +0.495 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 +##$ShimPowRng3= (0..63) +0.485 1 1 1 1 1 1 1 1 1 1 1 1 0.485 1 1 1 1 1 1 1 1 1 1 1 1 0.485 1 1 1 +1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$ShimSysFunc= (0..63) +1 2 3 0 4 5 6 0 0 31 32 33 34 0 12 11 10 9 8 7 24 23 22 21 20 19 0 18 26 +25 16 17 30 29 28 27 13 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 +##$ShimSysMatrix= 1 +##$ShimSysType= 3 +##$TFXNUM= 0 +##$TRIPLO2= 0 +##$VTU= 1 +##$VTUETH= +##$VTUTY= +##$WBREFAM= (0..15) +100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 +##$WBREFLM= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$WBREFPH= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$WBSGU= (0..15) +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +##$XFAC= 2 +##END= diff --git a/sample/sample_sessions/example3/new.tar.gz b/sample/sample_sessions/example3/new.tar.gz new file mode 100644 index 0000000..88589aa Binary files /dev/null and b/sample/sample_sessions/example3/new.tar.gz differ diff --git a/sample/sample_sessions/example3/specdb.yaml b/sample/sample_sessions/example3/specdb.yaml new file mode 100644 index 0000000..f71ba4c --- /dev/null +++ b/sample/sample_sessions/example3/specdb.yaml @@ -0,0 +1,11 @@ +session: # describe a data collection session, REQUIRED: pst_id (if not none, just use 'NONE') + 0: + session_preparer: KJF # `user_id` of the person who prepared and collected the session, must already be in user table, Ex: KJF + spectrometer_id: Hu800 # `spectrometer_id` session was collected at, must already be in spectrometer table, Ex: Hu800 + pst_id: Db0515A.000 # `pst_id` the session is for +time_domain_dataset: # record information about a time domain dataset, REQUIRED: `subdir_name` + 0: + subdir_name: 10_Chsqc-800 # path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ + pst_id: Db0515A.000 # `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname: # nickname for pulse sequence, controlled vocabulary + probe_id: # `probe_id` for the probe, if blank probe information pulled from fid directory diff --git a/sample/sample_sessions/test00/specdb.session.yaml b/sample/sample_sessions/test00/specdb.session.yaml deleted file mode 100644 index 0e5de84..0000000 --- a/sample/sample_sessions/test00/specdb.session.yaml +++ /dev/null @@ -1,28 +0,0 @@ -session: - session_preparer: TAR - spectrometer_id: Hu800 - pst_id: Db0515A.000 - folder_name: test00 -time_domain_data: - '1': - subdir_name: '1' - pulse_sequence_nickname: - probe_id: - session_id: 1 - md5checksum: f1d80ff78a50d207b4d3b13af239b839 - temperature_from_data: 293.0 - experiment_date: '2010-09-26 21:33:06.812' - pulse_sequence: zgpr - probe_info: 1.7_mm_CPTCI_1H-13C/15N/D_Z-GRD_Z108160/0002 - pst_id: Db0515A.000 - '2': - subdir_name: '2' - pulse_sequence_nickname: - probe_id: - session_id: 1 - md5checksum: e3c4e84d0ae67e8ca1160ebf6d5b6838 - temperature_from_data: 293.0 - experiment_date: '2010-09-26 22:16:43.706' - pulse_sequence: hsqcetf3gpsi - probe_info: 1.7_mm_CPTCI_1H-13C/15N/D_Z-GRD_Z108160/0002 - pst_id: Db0515A.000 diff --git a/specdb/Forms.py b/specdb/Forms.py index 6eff6c1..9cfca1c 100644 --- a/specdb/Forms.py +++ b/specdb/Forms.py @@ -56,7 +56,10 @@ def collect_schema_comments(tables=None, num=None): comment_split = line.split(' -- ') comment = comment_split[-1] form_dic[table_name] = ruamel.yaml.comments.CommentedMap() - form_dic.yaml_add_eol_comment(comment, table_name, column=25) + form_dic.yaml_add_eol_comment( + comment, + table_name, + column=25) #continue elif re.search(r' -- ', line): diff --git a/specdb/Insert.py b/specdb/Insert.py index 32d2ade..80990f8 100644 --- a/specdb/Insert.py +++ b/specdb/Insert.py @@ -276,8 +276,13 @@ def table_updater(table=None, record=None, cursor=None): columns, vals_place, values = insert_constructor(table_cols, record) if values == [None] * len(values): return None sql = f"INSERT OR REPLACE INTO {table} {columns} VALUES{vals_place}" + #print(sql, 'SQL for updating !!! ') + for k,v in record.items(): + if k == 'zipped_dir': continue + #print(k,v) try: cursor.execute(sql, values) + #print(cursor.lastrowid, 'lastrowid in updater') return True, cursor.lastrowid except sqlite3.Error as e: return False, e.args[0] @@ -352,7 +357,7 @@ def read_audita(path=None): return time -def insert_fid(files=None, cursor=None, dic=None): +def insert_fid(files=None, cursor=None, write=False, dic=None): """ Insert time domain data into database @@ -391,9 +396,16 @@ def insert_fid(files=None, cursor=None, dic=None): cwd = os.getcwd() os.chdir(up_path) - cmd = f"find ./{dic['subdir_name']} -maxdepth 1" - cmd += f" -type f -print0 | xargs -0" - cmd += f" tar -zcvf specdb.tar.gz" +# cmd = f"find ./{dic['subdir_name']} -maxdepth 1" +# cmd += f" -type f -print0 | xargs -0" +# cmd += f" tar -zcvf specdb.tar.gz" + + cmd = f"find ./{dic['subdir_name']} -type f -maxdepth 3 -regex" + cmd += f" '\.\/{dic['subdir_name']}\/[^\/]*' -print0 -or -regex" + cmd += f" '\.\/{dic['subdir_name']}\/pdata/1/proc.*$' -print0 -or -regex" + cmd += f" '\.\/{dic['subdir_name']}\/pdata/1/title$' -print0" + cmd += f" | xargs -0 tar -zcvf specdb.tar.gz" + os.system(cmd) with open('specdb.tar.gz', 'rb') as fp: fbytes = fp.read() @@ -411,10 +423,11 @@ def insert_fid(files=None, cursor=None, dic=None): readable_hash = hashlib.md5(fbytes).hexdigest() dic['md5checksum'] = readable_hash - success, last_row = table_inserter( # go ahead and insert + success, last_row = insert_logic( # go ahead and insert table='time_domain_dataset', - record=dic, - cursor=cursor) + dic=dic, + cursor=cursor, + write=write) os.remove('specdb.tar.gz') if success is True: return success, dic, last_row @@ -423,8 +436,10 @@ def insert_fid(files=None, cursor=None, dic=None): def find_processing_scripts(files=None): + #print(files) fid_dirs = files[0].split('/') zipped_path = '/'.join(fid_dirs[:-1]) + #print(zipped_path) cwd = os.getcwd() os.chdir(zipped_path) processing = [] @@ -439,16 +454,17 @@ def find_processing_scripts(files=None): processing.append(os.path.join(zipped_path, file)) os.chdir(cwd) - print(processing) + #print(processing) if len(processing) == 0: return None return processing def save_processing_scripts(files=None, fid_id=None, cursor=None): + #print(files) scripts = find_processing_scripts(files=files) - if scripts is None: return None - + if scripts is None: return None, None + #print(scripts) for script in scripts: data = { 'name': None, @@ -526,15 +542,16 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): # find the columns that serve as unique constraints uniq_cols = find_uniq_constraint(table=table, cursor=cursor) - print(uniq_cols) - print(dic) + #print(uniq_cols) + #print(dic.keys()) + #print(dic) # determine if they are defined in dic try: uniq_pres = [True for uc in uniq_cols if len(dic[uc]) > 0] except: uniq_pres = [True for uc in uniq_cols if type(dic[uc]) is int and dic[uc] > 0] - print(uniq_pres) + #print(uniq_pres) if len(uniq_pres) == len(uniq_cols): empty = True # if they are defined, check if the remaining columns are empty @@ -562,6 +579,8 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): break else: assert(v is None) + #print(empty) + if empty and len(dic) != len(uniq_pres): # attempt to fill JSON file with database info sql = f"SELECT {col_names} FROM {table} WHERE {cond}" cursor.execute(sql) @@ -593,9 +612,10 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): else: # not empty, user supplied some information, attempt to insert sql = f"SELECT * FROM {table} WHERE {cond}" + #print(sql) cursor.execute(sql) results = cursor.fetchall() - + #print(len(results)) if len(results) == 0: # supplied info not in database if not write: msg = "information provided is new\n" @@ -605,6 +625,7 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): return False, msg else: + #print('HERE IN INSERT LOGIC') success, last_row = table_inserter( # go ahead and insert table=table, record=dic, @@ -629,7 +650,11 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): else: # table unique columns actually in db, make sure they match assert(len(results) == 1) + #print(len(results)) tmp_results = dict(results[0]) + #print(tmp_results) + #print(tmp_results['md5checksum'], print(tmp_results['id'])) + #print(tmp_results['id'], 'tmp results id') del tmp_results['id'] for k,v in dic.items(): if type(v) == str: @@ -649,12 +674,13 @@ def insert_logic(table=None, dic=None, write=False, cursor=None): return success, msg else: + #print('>>>> they are the same >>>\n') success, last_row = table_updater( table=table, record=dic, cursor=cursor ) - + #print(last_row, 'here at 682 ??') if type(last_row) is str: assert(success is False) @@ -762,7 +788,7 @@ def insert(file=None, db=None, write=False): ) if status is True: - if type(value) is dict: record[table][ind] = value + if type(value) is dict: record[table][counter] = value elif type(value) is int: conn.commit() continue @@ -787,7 +813,7 @@ def insert(file=None, db=None, write=False): for index, scripts in record['default_processing_scripts'].items(): - print(scripts) + # print(scripts) try: processing_script_path = os.path.abspath( @@ -811,7 +837,7 @@ def insert(file=None, db=None, write=False): ) scripts['default_processing'] = processing_script_path - print(status, value) + #print(status, value) @@ -893,7 +919,8 @@ def insert(file=None, db=None, write=False): status, value, last_row_counter = insert_fid( files=files, dic=new_fid, - cursor=c) + cursor=c, + write=write) if status is True: assert(type(value) is dict) @@ -912,6 +939,8 @@ def insert(file=None, db=None, write=False): print("Aborting") return False + #print(files) + #print(last_row_counter) assert(type(last_row_counter) is int) status, val = save_processing_scripts( files=files, @@ -919,6 +948,7 @@ def insert(file=None, db=None, write=False): cursor=c ) + if status == None: continue if status is True: continue else: print(val) @@ -953,15 +983,19 @@ def insert(file=None, db=None, write=False): session_path, new_fid['subdir_name']))] - status, value = insert_fid( + status, value, place = insert_fid( files=files, dic=new_fid, - cursor=c) - + cursor=c, + write=write) + + #print(status) + #print(value) + #print(place, 'place is none....') if status is True: assert(type(value) is dict) del value['zipped_dir'] - record['time_domain_data'][str(ind)] = value + record['time_domain_dataset'][str(ind)] = value conn.commit() elif status is False: @@ -975,10 +1009,12 @@ def insert(file=None, db=None, write=False): print("Aborting") return False - assert(type(value) is int) + #assert(type(value) is int) + #print(list(value.keys())) + #sys.exit() status, val = save_processing_scripts( - files=file, - fid_id=value, + files=files, + fid_id=place, cursor=c ) if status is True: continue @@ -992,8 +1028,8 @@ def insert(file=None, db=None, write=False): numbers = [] for t in record: numbers.append(len(record[t])) - print(numbers) - print(record) + #print(numbers) + #print(record) new_form = forms(table=record.keys(), num=numbers, input_dict=record) with open(file, 'w') as fp: fp.write(new_form) diff --git a/specdb/Query.py b/specdb/Query.py index 05c85bd..b9f9762 100644 --- a/specdb/Query.py +++ b/specdb/Query.py @@ -5,6 +5,7 @@ """ import csv +import io import json import os import re @@ -13,6 +14,7 @@ import tarfile import time +import pandas as pd from specdb.STAR import fid2star @@ -30,16 +32,16 @@ def write_out_directory(dic=None, head_dir=None): os.mkdir(os.path.join(head_dir, dir_name)) f = io.BytesIO() - tar_file = tarfile.op + tar_file = tarfile.open f = io.BytesIO() tar_file = tarfile.open(fileobj=f, mode='w:') tar_info = tarfile.TarInfo('data_zipped') - tar_info.size = len(res['zipped_dir']) + tar_info.size = len(dic['zipped_dir']) tar_info.mtime = time.time() - tar_file.addfile(tar_info, io.BytesIO(res['zipped_dir'])) + tar_file.addfile(tar_info, io.BytesIO(dic['zipped_dir'])) tar_file.close() - os.chdir(os.path.join(output_dir, dir_name)) + os.chdir(os.path.join(head_dir, dir_name)) with open('stream.tar.gz', 'wb') as fp: fp.write(f.getvalue()) @@ -50,7 +52,7 @@ def write_out_directory(dic=None, head_dir=None): os.remove("stream.tar.gz") os.remove("data_zipped") - return True + return dir_name def query_from_sql(cursor=None, sql=None, star=None, output_dir=None): @@ -64,33 +66,54 @@ def query_from_sql(cursor=None, sql=None, star=None, output_dir=None): results = cursor.fetchall() results = [dict(res) for res in results] + if output_dir is None: + df = pd.DataFrame(results) + pd.set_option('display.max_columns', None) + pd.set_option('max_colwidth', 20) + pd.set_option('display.max_rows', None) + pd.set_option('display.width', 110) + pd.set_option('max_rows', None) + + blankindex = [''] * len(df) + df.index = blankindex + df = df.rename(columns=lambda x: x[:14]) + + print() + print(df) + print() + + return + if not os.path.isdir(os.path.abspath(output_dir)): os.mkdir(os.path.abspath(output_dir)) output_dir = os.path.abspath(output_dir) for res in results: - if write_out_directory(dic=res, head_dir=output_dir): continue + + id_dir = write_out_directory(dic=res, head_dir=output_dir) sql = f"SELECT subdir_name FROM time_domain_dataset WHERE" sql += f" id='{res['id']}'" cursor.execute(sql) - subname = c.fetchall()[0] + subname = cursor.fetchall()[0] #print(subname['subdir_name']) if star: star_path = os.path.join( output_dir, - dir_name, + id_dir, subname['subdir_name'], 'fid.star' ) - + #print(star_path) out = fid2star( data=res, cursor=cursor, save=star_path ) + + return True def query_from_ids(cursor=None, ids=None, star=None, output_dir=None): @@ -100,41 +123,21 @@ def query_from_ids(cursor=None, ids=None, star=None, output_dir=None): all_results = [] results = [] - for rowid in ids: - sql = f"SELECT * FROM summary WHERE id='{rowid}'" - - cursor.execute(sql) - - results = cursor.fetchall() - results = [dict(res) for res in results] - - assert(len(results) == 1) - - all_results.append(results[0]) - results = [] - for res in all_results: - if write_out_directory(dic=res, head_dir=output_dir): continue - - sql = f"SELECT subdir_name FROM time_domain_dataset WHERE" - sql += f" id='{res['id']}'" - - cursor.execute(sql) - subname = c.fetchall()[0] - - if star: - star_path = os.path.join( - output_dir, - dir_name, - subname['subdir_name'], - 'fid.star' - ) - - out = fid2star( - data=res, - cursor=cursor, - save=star_path - ) + sql = f"SELECT * FROM summary WHERE id='{ids[0]}'" + #print(ids) + for i in range(1,len(ids)): + sql += f" OR id='{ids[i]}'" + + #print(sql) + query_from_sql( + cursor=cursor, + sql=sql, + star=star, + output_dir=output_dir + ) + + return True def query_from_file(cursor=None, ids_file=None, star=None, output_dir=None): @@ -189,16 +192,16 @@ def query(db=None, sql=False, indices=False, star=False, output_dir=None): print("Aborting") sys.exit() - if output_dir is None: - print("Must provide an output directory to place query results") - print("Aborting") - sys.exit() +# if output_dir is None: +# print("Must provide an output directory to place query results") +# print("Aborting") +# sys.exit() # connect to database conn = sqlite3.connect(db) conn.row_factory = sqlite3.Row c = conn.cursor() - + #print(star) if not indices: if type(sql) != str: print(f'Unexpected type for argument `sql` type: {type(sql)}') @@ -224,7 +227,7 @@ def query(db=None, sql=False, indices=False, star=False, output_dir=None): ) if not sql: - if indices.endswith('.csv'): + if type(indices) == str and indices.endswith('.csv'): query_from_file( cursor=c, ids_file=indices, @@ -232,10 +235,11 @@ def query(db=None, sql=False, indices=False, star=False, output_dir=None): output_dir=output_dir ) else: + #print(indices) query_from_ids( cursor=c, ids=indices, star=star, - output_dir=output_dir + output_dir=os.path.abspath(output_dir) ) diff --git a/specdb/STAR.py b/specdb/STAR.py index 1a0b976..50cf7e9 100644 --- a/specdb/STAR.py +++ b/specdb/STAR.py @@ -132,7 +132,8 @@ def fid2star(data=None, cursor=None, save=None): if table not in translator: translator[table] = dict() if col not in translator[table]: translator[table][col] = dict() - if frame not in translator[table][col]: translator[table][col][frame] = [] + if frame not in translator[table][col]: + translator[table][col][frame] = [] translator[table][col][frame].append(tag) #print(json.dumps(translator,indent=2)) @@ -191,6 +192,7 @@ def fid2star(data=None, cursor=None, save=None): #print(save) save_split = save.split('/') save_path = '/'.join(save_split[:-1]) + #print(save_path) if 'fid' in os.listdir(save_path): tdname = 'fid' elif 'ser' in os.listdir(save_path): @@ -272,7 +274,7 @@ def fid2star(data=None, cursor=None, save=None): entry.add_missing_tags() #entry.normalize() entry.write_to_file(save) - print("done") + #print("done") #print(entry.validate()) diff --git a/specdb/Summary.py b/specdb/Summary.py index 6fd2405..d3ce9bb 100644 --- a/specdb/Summary.py +++ b/specdb/Summary.py @@ -4,6 +4,7 @@ Module for performing all tasks in specdb """ +import os import pandas as pd import sqlite3 import sys diff --git a/sql/specdb.sql b/sql/specdb.sql index f5c1960..e940ed9 100644 --- a/sql/specdb.sql +++ b/sql/specdb.sql @@ -17,6 +17,10 @@ CREATE TABLE user ( -- provide information about a user, REQUIRED: `user_id` UNIQUE(user_id) ); +INSERT INTO user (user_id) +VALUES + ("NONE"); + CREATE TABLE project ( -- provide information describing a project, REQUIRED: `project_id` id INTEGER PRIMARY KEY NOT NULL, structural_genomics TEXT CHECK( structural_genomics IN ('yes', 'no') ), -- not required, only yes or no @@ -25,6 +29,10 @@ CREATE TABLE project ( -- provide information describing a project, REQUIRED: `p UNIQUE(project_id) ); +INSERT INTO project (project_id) +VALUES + ("NONE"); + CREATE TABLE target ( -- molecular target information, REQUIRED: `target_id` id INTEGER PRIMARY KEY NOT NULL, target_id TEXT CHECK( target_id NOT LIKE '% %' and length(target_id) <= 32 ) NOT NULL, -- text identifier for target, must be unique, no spaces, len <= 32, Ex: Db0515 @@ -32,49 +40,61 @@ CREATE TABLE target ( -- molecular target information, REQUIRED: `target_id` target_sequence TEXT CHECK( target_sequence NOT LIKE '% %' and length(target_sequence) <= 1024 ), -- target's molecular seq., any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHHILVAM organism_source TEXT CHECK( length(organism_source) <= 128 ), -- organism name for target source, can indicate if target is synthetic, len <= 128, Ex: synthetic gene_name TEXT CHECK( length(gene_name) <= 64 ), -- gene name, len <= 64, Ex: SpikeCoV2 - project_id TEXT NOT NULL, -- `project_id` target is a member of, must be in project table, Ex: SpikeFraga - target_preparer TEXT , -- `user_id` that assigned the target, must be in user table, Ex: KJF + project_id TEXT DEFAULT "NONE" NOT NULL, -- `project_id` target is a member of, must be in project table, Ex: SpikeFraga + target_preparer TEXT DEFAULT "NONE" NOT NULL, -- `user_id` that assigned the target, must be in user table, Ex: KJF UNIQUE(target_id), FOREIGN KEY ([project_id]) REFERENCES "project" ([project_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([target_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE ); -CREATE TABLE construct ( -- molecular construct from a target, REQUIRED: `construct_id`, `construct_sequence`, `target_id` +INSERT INTO target (target_id) +VALUES + ("NONE"); + +CREATE TABLE construct ( -- molecular construct from a target, REQUIRED: `construct_id`, id INTEGER PRIMARY KEY NOT NULL, construct_id TEXT CHECK( construct_id NOT LIKE '% %' and length(construct_id) <= 32 ) NOT NULL, -- text identifier for construct, must be unique, no spaces, len <= 32, Ex: Db0515A - construct_sequence TEXT CHECK( construct_sequence NOT LIKE '% %' and length(construct_sequence) <= 1024 ) NOT NULL, -- construct sequence, any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHINLVAE - target_id TEXT NOT NULL, -- `target id` this construct was made for, must already be in target table, Ex: Db0515 + construct_sequence TEXT CHECK( construct_sequence NOT LIKE '% %' and length(construct_sequence) <= 1024 ), -- construct sequence, any type of code/alphabet, no spaces, len <= 1024, Ex: MGSHHHINLVAE + target_id TEXT DEFAULT "NONE" NOT NULL, -- `target id` this construct was made for, must already be in target table, Ex: Db0515 ext_coefficient_280 FLOAT , -- extinction coefficient at 280 nm, Ex: 108.7 expected_mw FLOAT , -- expected molecular weight of construct in Da, Ex: 1211.8 construct_comment TEXT CHECK( length(construct_comment) <= 128 ), -- free field comment, anything to note about construct, len <= 128, Ex: with primers RE1A/RE1B plasmid_id TEXT CHECK( length(plasmid_id) <= 64 ), -- plasmid construct DNA sequence is cloned in, len <= 64, Ex: pET218(+) plasmid_id_comment TEXT CHECK( length(plasmid_id_comment) <= 128 ), -- comments on plasmid, len <= 256, Ex: from Underwood lab - construct_preparer TEXT , -- `user_id` who prepared the construct, must already be in user table, Ex: KJF + construct_preparer TEXT DEFAULT "NONE" NOT NULL, -- `user_id` who prepared the construct, must already be in user table, Ex: KJF construct_company TEXT CHECK( length(construct_company) <= 128 ), -- if the construct was produced by a company, indicate where it came from, len <= 128, Ex: Genscript UNIQUE(construct_id), FOREIGN KEY ([target_id]) REFERENCES "target" ([target_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([construct_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE ); -CREATE TABLE expression ( -- describe a molecular expression experiment/results, REQUIRED: `expression_id`, `construct_id` +INSERT INTO construct (construct_id) +VALUES + ("NONE"); + +CREATE TABLE expression ( -- describe a molecular expression experiment/results, REQUIRED: `expression_id` id INTEGER PRIMARY KEY NOT NULL, expression_id TEXT CHECK( expression_id NOT LIKE '% %' and length(expression_id) <= 32 ) NOT NULL, -- text identifier for expression, must be unique, no spaces, len <= 32, Ex: Db0515A.X expression_comment TEXT CHECK( length(expression_comment) <= 128 ), -- free field comment, anything of note for expression, len <= 128, Ex: reached 4.5 OD - construct_id TEXT , -- `construct_id` this expression was for, must already be in construct table, Ex: Db0515A + construct_id TEXT DEFAULT "NONE" NOT NULL, -- `construct_id` this expression was for, must already be in construct table, Ex: Db0515A expression_media TEXT CHECK( length(expression_media) <= 32 ), -- growth media expression was in, len <= 32, Ex: MJ9 strain TEXT CHECK( length(strain) <= 32 ), -- cellular strain expression was in, len <= 32, Ex: BL21A (+) expression_organism TEXT CHECK( length(expression_organism) <= 32 ), -- organism expression was in, len <- 32, Ex: E. colli - expression_preparer TEXT , -- `user_id` of person who did the expression, must already be in user table, Ex: KJF + expression_preparer TEXT DEFAULT "NONE" NOT NULL, -- `user_id` of person who did the expression, must already be in user table, Ex: KJF UNIQUE(expression_id), FOREIGN KEY ([construct_id]) REFERENCES "construct" ([construct_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([expression_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE ); -CREATE TABLE purification_batch ( -- describe the purification run for an expression product, REQUIRED: `batch_id`, `expression_id`, `sample_sequence` +INSERT INTO expression (expression_id) +VALUES + ("NONE"); + +CREATE TABLE purification_batch ( -- describe the purification run for an expression product, REQUIRED: `batch_id` id INTEGER PRIMARY KEY NOT NULL, batch_id TEXT CHECK( batch_id NOT LIKE '% %' and length(batch_id) <= 32 ) NOT NULL, -- text identifier for batch, must be unique, no spaces, len <= 32, Ex: Db0515.X.batch - expression_id TEXT , -- expression run this purification batch is for, must already be in expression table Ex: Db0515.X - sample_sequence TEXT CHECK( sample_sequence NOT LIKE '% %' and length(sample_sequence) <= 1024 ) NOT NULL, -- sequence of molecule after purification (i.e if there was tag cleaving), any type of code/alphabet, no spaces, len <= 1024, Ex: MQNGPILA + expression_id TEXT DEFAULT "NONE" NOT NULL, -- expression run this purification batch is for, must already be in expression table Ex: Db0515.X + sample_sequence TEXT CHECK( sample_sequence NOT LIKE '% %' and length(sample_sequence) <= 1024 ), -- sequence of molecule after purification (i.e if there was tag cleaving), any type of code/alphabet, no spaces, len <= 1024, Ex: MQNGPILA purif_comment TEXT CHECK( length(purif_comment) <= 128 ), -- free text comment about the purification, len <= 128, Ex: HPLC in RM 204 production_method TEXT CHECK( length(production_method) <= 64 ), -- indicate the purification method, len <= 64, Ex: Ni column only isotopic_labeling_remark TEXT CHECK( length(isotopic_labeling_remark) <= 64 ), -- provide the isotopic labeling, preferred method to indicate labeling in the appropriate column below, len <= 64, Ex: NC5 @@ -89,20 +109,28 @@ CREATE TABLE purification_batch ( -- describe the purification run for an expres iso_1hg1_Val_methyl_enrichment TEXT CHECK( length(iso_13c_enrichment) <= 32 and iso_1hg1_Val_methyl_enrichment LIKE '%.% 1HG1-Val%' ESCAPE '.' ), -- 1HG1-Val stererospecific labeling percentage, must contain `% 1HG1-Val`, len <= 32, Ex: 25% 1HG1-Val iso_1hg2_Val_methyl_enrichment TEXT CHECK( length(iso_13c_enrichment) <= 32 and iso_1hg2_Val_methyl_enrichment LIKE '%.% 1HG2-Val%' ESCAPE '.' ), -- 1HG2-Val stereospecific labeling percentage, must contain `% 1HG2-Val`, len <= 32, Ex: 27%% 1HG2-Val iso_1hb_Ala_methyl_enrichment TEXT CHECK( length(iso_13c_enrichment) <= 32 and iso_1hb_Ala_methyl_enrichment LIKE '%.% 1HB-Ala%' ESCAPE '.' ), -- 1HB-Ala labeling percentage, must contain `% 1HB-Ala`, len <= 32, Ex: 100% 1HB-Ala - batch_preparer TEXT , -- `user_id` of person who did the purification, must already be in user table, Ex: KJF + batch_preparer TEXT DEFAULT "NONE", -- `user_id` of person who did the purification, must already be in user table, Ex: KJF UNIQUE(batch_id), FOREIGN KEY ([expression_id]) REFERENCES "expression" ([expression_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([batch_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE ); +INSERT INTO purification_batch (batch_id) +VALUES + ("NONE"); + CREATE TABLE buffer ( -- store all buffers used, their id and their pH, REQUIRED: `buffer_id`, `buffer_pH`, NOTE: the buffer components go in the `buffer_components` table id INTEGER PRIMARY KEY NOT NULL, buffer_id TEXT CHECK( buffer_id NOT LIKE '% %' and length(buffer_id) <= 32 ) NOT NULL, -- text identifier for the buffer, must be unique, no spaces, len <= 32, Ex: hn4071 - buffer_ph FLOAT NOT NULL, -- pH of buffer, must be a number, Ex: 8.1 + buffer_ph FLOAT DEFAULT "7.0" NOT NULL, -- pH of buffer, must be a number, Ex: 8.1 buffer_comment TEXT CHECK( length(buffer_comment) <= 128 ), -- free text field for any notes about the buffer, len <= 128, Ex: made by KJF 12/04 UNIQUE(buffer_id) ); +INSERT INTO buffer (buffer_id) +VALUES + ("NONE"); + CREATE TABLE buffer_components ( -- describe the component(s) of a buffer, REQUIRED: `buffer_id`, `buffer_component`, `buffer_component_value`, `buffer_component_unit` id INTEGER PRIMARY KEY NOT NULL, buffer_id TEXT NOT NULL, -- `buffer_id` this component goes to, must already be in buffer table, Ex: hn4071 @@ -141,24 +169,25 @@ VALUES ("8-mm NMR tube"), ("8-mm Shigemi tube"), ("10-mm NMR tube"), - ("10-mm Shigemi tube"); + ("10-mm Shigemi tube"), + ("NONE"); CREATE TABLE pst ( -- description of a protein sample tube, not only proteins, REQUIRED: `pst_id`, `pst_preparer`, `sample_ph`, `total_volume`, `volume_unit`, `tube_type` id INTEGER PRIMARY KEY NOT NULL, pst_id TEXT CHECK( pst_id NOT LIKE '% %' and length(pst_id) <= 32 ) NOT NULL, -- text identifier for the pst, must be unique, no spaces, len <= 32, Ex: Db0515A.001 prev_pst_id TEXT , -- if pst derived from another pst, give previous `pst_id`, must already be in pst table, Ex: Db0515A.000 - pst_preparer TEXT NOT NULL, -- `user_id` of user that prepared the sample tube, must be in user table, Ex: KJF + pst_preparer TEXT DEFAULT "NONE" NOT NULL, -- `user_id` of user that prepared the sample tube, must be in user table, Ex: KJF pst_comment TEXT CHECK( length(pst_comment) <= 128 ), -- free field comment about pst, len <= 128, Ex: new sample sample_type TEXT CHECK( sample_type IN ('solution', 'solid state') ), -- is sample a solution or solid-state sample, one of (`solution`, `solid state`), Ex: solution solvent_system TEXT CHECK( length(solvent_system) <= 64 ), -- solvent system for the sample, len <= 64, Ex: DMSO sample_ph FLOAT , -- pst pH, can be different from buffer ph, Ex: 7.1 - total_volume FLOAT NOT NULL, -- numeric volume for total volume in tube, Ex: 2.2 - volume_unit TEXT CHECK( volume_unit IN ('nL', 'uL', 'mL', 'L') ) NOT NULL, -- unit of volume for volume in tube, one of (`nL`, `uL`, `mL`, `L`), Ex: mL + total_volume FLOAT DEFAULT "0.0" NOT NULL, -- numeric volume for total volume in tube, Ex: 2.2 + volume_unit TEXT CHECK( volume_unit IN ('nL', 'uL', 'mL', 'L') ) DEFAULT "L" NOT NULL, -- unit of volume for volume in tube, one of (`nL`, `uL`, `mL`, `L`), Ex: mL curr_location TEXT CHECK( length(curr_location) <= 64 ), -- current location of tube, len <= 64, Ex: NMR room prev_location TEXT CHECK( length(prev_location) <= 64 ), -- previous location of tube, len <= 64, Ex: Underwood lab create_date TEXT CHECK( create_date LIKE '____-__-__' ), -- date record added to database, format "YYYY-MM-DD", Ex: 2022-01-01 - buffer_id TEXT , -- id of buffer in the tube, must already be in `buffer` table, no spaces, len <= 32, Ex: hn4071 - tube_type TEXT NOT NULL, -- the tube type for sample tube, use `specdb summary --table tubes` to find allowable tube types, Ex: 1-mm Shigemi tube + buffer_id TEXT DEFAULT "NONE" NOT NULL, -- id of buffer in the tube, must already be in `buffer` table, no spaces, len <= 32, Ex: hn4071 + tube_type TEXT DEFAULT "NONE" NOT NULL, -- the tube type for sample tube, use `specdb summary --table tubes` to find allowable tube types, Ex: 1-mm Shigemi tube UNIQUE(pst_id), FOREIGN KEY ([pst_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([prev_pst_id]) REFERENCES "pst" ([pst_id]) ON DELETE NO ACTION ON UPDATE CASCADE @@ -166,6 +195,10 @@ CREATE TABLE pst ( -- description of a protein sample tube, not only proteins, R FOREIGN KEY ([tube_type]) REFERENCES "tubes" ([tube_type]) ON DELETE NO ACTION ON UPDATE CASCADE ); +INSERT INTO pst (pst_id) +VALUES + ("NONE"); + CREATE TABLE batch_components ( -- describe the purification batches in a pst, REQUIRED: `pst_id`, `batch_id`, `volume`, `volume_unit`, `conc`, `conc_unit` id INTEGER PRIMARY KEY NOT NULL, pst_id TEXT NOT NULL, -- text id of sample tube being described, must already be in pst table, Ex: Db0515A.001 @@ -180,15 +213,19 @@ CREATE TABLE batch_components ( -- describe the purification batches in a pst, R CREATE TABLE spectrometer ( -- spectrometer information, REQUIRED: `spectrometer_id`, `manufacturer``, `field_strength` id INTEGER PRIMARY KEY NOT NULL, - spectrometer_id TEXT CHECK( spectrometer_id NOT LIKE '% %' and length(spectrometer_id) <= 32 ) NOT NULL, -- text identifier for spectrometer, must be unique, no spaces, len <= 32, EX: HU800 - manufacturer TEXT CHECK( manufacturer IN ('Bruker', 'Varian') ), -- spectrometer manufacturer, one of 'Bruker' or 'Varian' - model TEXT CHECK( length(model) <= 32 ), -- spectrometer model, len <= 32, Ex: Bruker - serial_number TEXT CHECK( length(serial_number) <= 64 ), -- spectrometer serial number, len <= 64, Ex: 16Z001 - field_strength TEXT CHECK( field_strength LIKE '%Hz' and length(field_strength) <= 16 ) NOT NULL, -- spectrometer field strength, text must end in `Hz`, len <=16, Ex: 800 MHz - spectrometer_comment TEXT CHECK( length(spectrometer_comment) <= 128 ), -- free field comment about the spectrometer, len <= 128, Ex: located in Briggs + spectrometer_id TEXT CHECK( spectrometer_id NOT LIKE '% %' and length(spectrometer_id) <= 32 ) NOT NULL, -- text identifier for spectrometer, must be unique, no spaces, len <= 32, EX: HU800 + manufacturer TEXT CHECK( manufacturer IN ('Bruker', 'Varian') ), -- spectrometer manufacturer, one of 'Bruker' or 'Varian' + model TEXT CHECK( length(model) <= 32 ), -- spectrometer model, len <= 32, Ex: Bruker + serial_number TEXT CHECK( length(serial_number) <= 64 ), -- spectrometer serial number, len <= 64, Ex: 16Z001 + field_strength TEXT CHECK( field_strength LIKE '%Hz' and length(field_strength) <= 16 ) DEFAULT "0 Hz" NOT NULL, -- spectrometer field strength, text must end in `Hz`, len <=16, Ex: 800 MHz + spectrometer_comment TEXT CHECK( length(spectrometer_comment) <= 128 ), -- free field comment about the spectrometer, len <= 128, Ex: located in Briggs UNIQUE(spectrometer_id) ); +INSERT INTO spectrometer (spectrometer_id) +VALUES + ("NONE"); + CREATE TABLE probe ( -- describe the NMR probe, REQUIRED: `probe_id` id INTEGER PRIMARY KEY NOT NULL, probe_id TEXT CHECK( probe_id NOT LIKE '% %' and length(probe_id) <= 32 ) NOT NULL, -- text identifier for probe, no spaces, len <= 32, must be unique, Ex: probe_bruker_12 @@ -203,12 +240,16 @@ CREATE TABLE probe ( -- describe the NMR probe, REQUIRED: `probe_id` UNIQUE(probe_id) ); -CREATE TABLE session ( -- describe a data collection session, REQUIRED: `session_preparer`, `spectrometer_id`, `pst_id` +INSERT INTO probe (probe_id) +VALUES + ("NONE"); + +CREATE TABLE session ( -- describe a data collection session, REQUIRED: pst_id (if not none, just use 'NONE') id INTEGER PRIMARY KEY NOT NULL, folder_name TEXT , - session_preparer TEXT NOT NULL, -- `user_id` of the person who prepared and collected the session, must already be in user table, Ex: KJF - spectrometer_id TEXT NOT NULL, -- `spectrometer_id` session was collected at, must already be in spectrometer table, Ex: Hu800 - pst_id TEXT NOT NULL, -- `pst_id` the session is for + session_preparer TEXT DEFAULT "NONE" NOT NULL, -- `user_id` of the person who prepared and collected the session, must already be in user table, Ex: KJF + spectrometer_id TEXT DEFAULT "NONE" NOT NULL, -- `spectrometer_id` session was collected at, must already be in spectrometer table, Ex: Hu800 + pst_id TEXT DEFAULT "NONE" NOT NULL, -- `pst_id` the session is for UNIQUE(folder_name, session_preparer, spectrometer_id), FOREIGN KEY ([session_preparer]) REFERENCES "user" ([user_id]) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY ([spectrometer_id]) REFERENCES "spectrometer" ([spectrometer_id]) ON DELETE NO ACTION ON UPDATE CASCADE @@ -329,8 +370,8 @@ CREATE TABLE default_processing_scripts ( -- record a default nmrpipe processing CREATE TABLE time_domain_dataset ( -- record information about a time domain dataset, REQUIRED: `subdir_name` id INTEGER PRIMARY KEY NOT NULL, subdir_name TEXT CHECK( length(subdir_name) <= 128 ) NOT NULL, -- path to where fid/ser file is, can be a relative path, len <= 128, Ex: 1/ - pst_id TEXT , -- `pst_id` of sample, must already be in pst table, Ex: Db0515.001 - pulse_sequence_nickname TEXT DEFAULT "none", -- nickname for pulse sequence, controlled vocabulary + pst_id TEXT DEFAULT "NONE" NOT NULL, -- `pst_id` of sample, must already be in pst table, Ex: Db0515.001 + pulse_sequence_nickname TEXT DEFAULT "NONE", -- nickname for pulse sequence, controlled vocabulary probe_id TEXT , -- `probe_id` for the probe, if blank probe information pulled from fid directory pulse_sequence TEXT CHECK( length(pulse_sequence) <= 128 ), zipped_dir BLOB NOT NULL, @@ -359,8 +400,8 @@ CREATE TABLE scripts_to_fids ( -- table to save relationships between FIDs and p fid_id INTEGER NOT NULL, script_id INTEGER NOT NULL, UNIQUE(fid_id, script_id) - FOREIGN KEY ([fid_id]) REFERENCES "time_domain_dataset" ([id]) ON DELETE NO ACTION ON UPDATE CASCADE - FOREIGN KEY ([script_id]) REFERENCES "processing_scripts" ([id]) ON DELETE NO ACTION ON UPDATE CASCADE + FOREIGN KEY ([fid_id]) REFERENCES "time_domain_dataset" ([id]) ON DELETE CASCADE ON UPDATE CASCADE + FOREIGN KEY ([script_id]) REFERENCES "processing_scripts" ([id]) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE VIEW summary