@yeyuan98/opencode-bioresearcher-plugin 1.6.6 → 1.6.8-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/dist/agents/bioresearcher/index.d.ts +0 -0
- package/dist/agents/bioresearcher/index.js +0 -0
- package/dist/agents/bioresearcher/prompt.d.ts +0 -0
- package/dist/agents/bioresearcher/prompt.js +0 -0
- package/dist/agents/bioresearcherDR/index.d.ts +0 -0
- package/dist/agents/bioresearcherDR/index.js +0 -0
- package/dist/agents/bioresearcherDR/prompt.d.ts +0 -0
- package/dist/agents/bioresearcherDR/prompt.js +0 -0
- package/dist/agents/bioresearcherDR_worker/index.d.ts +0 -0
- package/dist/agents/bioresearcherDR_worker/index.js +0 -0
- package/dist/agents/bioresearcherDR_worker/prompt.d.ts +0 -0
- package/dist/agents/bioresearcherDR_worker/prompt.js +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +4 -3
- package/dist/shared/skill-sync.d.ts +0 -0
- package/dist/shared/skill-sync.js +0 -0
- package/dist/shared/tool-restrictions.d.ts +0 -0
- package/dist/shared/tool-restrictions.js +0 -0
- package/dist/skills/bioresearcher-core/README.md +0 -0
- package/dist/skills/bioresearcher-core/SKILL.md +0 -0
- package/dist/skills/bioresearcher-core/examples/contexts.json +0 -0
- package/dist/skills/bioresearcher-core/examples/data-exchange-example.md +0 -0
- package/dist/skills/bioresearcher-core/examples/template.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/bioresearcher/analysis-methods.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/bioresearcher/best-practices.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/bioresearcher/python-standards.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/bioresearcher/report-template.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/bioresearcher/tool-selection.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/calculator.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/citations.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/data-exchange.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/json-tools.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/progress.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/rate-limiting.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/retry.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/shell-commands.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/subagent-waves.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/table-tools.md +0 -0
- package/dist/skills/bioresearcher-core/patterns/user-confirmation.md +0 -0
- package/dist/skills/bioresearcher-core/python/template.md +0 -0
- package/dist/skills/bioresearcher-core/python/template.py +0 -0
- package/dist/skills/bioresearcher-tests/README.md +0 -0
- package/dist/skills/bioresearcher-tests/SKILL.md +0 -0
- package/dist/skills/bioresearcher-tests/pyproject.toml +0 -0
- package/dist/skills/bioresearcher-tests/resources/json_samples/in_markdown.md.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/json_samples/nested_object.json.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/json_samples/schema_draft7.json.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/json_samples/simple_array.json.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/json_samples/simple_object.json.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/obo_sample.obo.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/pubmed_sample.xml.gz +0 -0
- package/dist/skills/bioresearcher-tests/resources/table_sample.xlsx.gz +0 -0
- package/dist/skills/bioresearcher-tests/test_cases/json_tests.md +0 -0
- package/dist/skills/bioresearcher-tests/test_cases/misc_tests.md +0 -0
- package/dist/skills/bioresearcher-tests/test_cases/parser_tests.md +0 -0
- package/dist/skills/bioresearcher-tests/test_cases/skill_tests.md +0 -0
- package/dist/skills/bioresearcher-tests/test_cases/table_tests.md +0 -0
- package/dist/skills/bioresearcher-tests/test_runner.py +0 -0
- package/dist/skills/demo-skill/SKILL.md +0 -0
- package/dist/skills/demo-skill/demo_script.py +0 -0
- package/dist/skills/env-jsonc-setup/SKILL.md +0 -0
- package/dist/skills/gromacs-guides/SKILL.md +0 -0
- package/dist/skills/gromacs-guides/guides/create_index.md +96 -96
- package/dist/skills/gromacs-guides/guides/inspect_tpr.md +160 -160
- package/dist/skills/long-table-summary/SKILL.md +0 -0
- package/dist/skills/long-table-summary/combine_outputs.py +0 -0
- package/dist/skills/long-table-summary/generate_prompts.py +0 -0
- package/dist/skills/long-table-summary/pyproject.toml +0 -0
- package/dist/skills/pubmed-weekly/SKILL.md +0 -0
- package/dist/skills/pubmed-weekly/pubmed_weekly.py +0 -0
- package/dist/skills/pubmed-weekly/pyproject.toml +0 -0
- package/dist/skills/python-setup-uv/SKILL.md +0 -0
- package/dist/tools/db/backends/index.d.ts +0 -0
- package/dist/tools/db/backends/index.js +0 -0
- package/dist/tools/db/backends/mongodb/backend.d.ts +0 -0
- package/dist/tools/db/backends/mongodb/backend.js +0 -0
- package/dist/tools/db/backends/mongodb/connection.d.ts +0 -0
- package/dist/tools/db/backends/mongodb/connection.js +0 -0
- package/dist/tools/db/backends/mongodb/index.d.ts +0 -0
- package/dist/tools/db/backends/mongodb/index.js +0 -0
- package/dist/tools/db/backends/mongodb/translator.d.ts +0 -0
- package/dist/tools/db/backends/mongodb/translator.js +0 -0
- package/dist/tools/db/backends/mysql/backend.d.ts +0 -0
- package/dist/tools/db/backends/mysql/backend.js +0 -0
- package/dist/tools/db/backends/mysql/connection.d.ts +0 -0
- package/dist/tools/db/backends/mysql/connection.js +0 -0
- package/dist/tools/db/backends/mysql/index.d.ts +0 -0
- package/dist/tools/db/backends/mysql/index.js +0 -0
- package/dist/tools/db/backends/mysql/translator.d.ts +0 -0
- package/dist/tools/db/backends/mysql/translator.js +0 -0
- package/dist/tools/db/core/base.d.ts +0 -0
- package/dist/tools/db/core/base.js +0 -0
- package/dist/tools/db/core/config-loader.d.ts +0 -0
- package/dist/tools/db/core/config-loader.js +0 -0
- package/dist/tools/db/core/index.d.ts +0 -0
- package/dist/tools/db/core/index.js +0 -0
- package/dist/tools/db/core/jsonc-parser.d.ts +0 -0
- package/dist/tools/db/core/jsonc-parser.js +0 -0
- package/dist/tools/db/core/validator.d.ts +0 -0
- package/dist/tools/db/core/validator.js +0 -0
- package/dist/tools/db/index.d.ts +0 -0
- package/dist/tools/db/index.js +0 -0
- package/dist/tools/db/interface/backend.d.ts +0 -0
- package/dist/tools/db/interface/backend.js +0 -0
- package/dist/tools/db/interface/connection.d.ts +0 -0
- package/dist/tools/db/interface/connection.js +0 -0
- package/dist/tools/db/interface/index.d.ts +0 -0
- package/dist/tools/db/interface/index.js +0 -0
- package/dist/tools/db/interface/query.d.ts +0 -0
- package/dist/tools/db/interface/query.js +0 -0
- package/dist/tools/db/interface/schema.d.ts +0 -0
- package/dist/tools/db/interface/schema.js +0 -0
- package/dist/tools/db/tools.d.ts +0 -0
- package/dist/tools/db/tools.js +0 -0
- package/dist/tools/db/utils.d.ts +0 -0
- package/dist/tools/db/utils.js +0 -0
- package/dist/tools/misc/calculator.d.ts +0 -0
- package/dist/tools/misc/calculator.js +0 -0
- package/dist/tools/misc/index.d.ts +1 -0
- package/dist/tools/misc/index.js +1 -0
- package/dist/tools/misc/json-extract.d.ts +0 -0
- package/dist/tools/misc/json-extract.js +0 -0
- package/dist/tools/misc/json-infer.d.ts +0 -0
- package/dist/tools/misc/json-infer.js +0 -0
- package/dist/tools/misc/json-validate.d.ts +0 -0
- package/dist/tools/misc/json-validate.js +0 -0
- package/dist/tools/misc/markdown-to-html.d.ts +19 -0
- package/dist/tools/misc/markdown-to-html.js +109 -0
- package/dist/tools/misc/marked-bundle.d.ts +1 -0
- package/dist/tools/misc/marked-bundle.js +1 -0
- package/dist/tools/misc/timer.d.ts +0 -0
- package/dist/tools/misc/timer.js +0 -0
- package/dist/tools/parser/obo/index.d.ts +0 -0
- package/dist/tools/parser/obo/index.js +0 -0
- package/dist/tools/parser/obo/obo.d.ts +0 -0
- package/dist/tools/parser/obo/obo.js +0 -0
- package/dist/tools/parser/obo/types.d.ts +0 -0
- package/dist/tools/parser/obo/types.js +0 -0
- package/dist/tools/parser/obo/utils.d.ts +0 -0
- package/dist/tools/parser/obo/utils.js +0 -0
- package/dist/tools/parser/pubmed/index.d.ts +0 -0
- package/dist/tools/parser/pubmed/index.js +0 -0
- package/dist/tools/parser/pubmed/pubmed.d.ts +0 -0
- package/dist/tools/parser/pubmed/pubmed.js +0 -0
- package/dist/tools/parser/pubmed/types.d.ts +0 -0
- package/dist/tools/parser/pubmed/types.js +0 -0
- package/dist/tools/parser/pubmed/utils.d.ts +0 -0
- package/dist/tools/parser/pubmed/utils.js +0 -0
- package/dist/tools/sandbox/bash-parser.d.ts +0 -0
- package/dist/tools/sandbox/bash-parser.js +0 -0
- package/dist/tools/sandbox/escape-scenarios.test.d.ts +0 -0
- package/dist/tools/sandbox/escape-scenarios.test.js +0 -0
- package/dist/tools/sandbox/expander.d.ts +0 -0
- package/dist/tools/sandbox/expander.js +0 -0
- package/dist/tools/sandbox/final-verification.test.d.ts +0 -0
- package/dist/tools/sandbox/final-verification.test.js +0 -0
- package/dist/tools/sandbox/hooks.d.ts +0 -0
- package/dist/tools/sandbox/hooks.js +0 -0
- package/dist/tools/sandbox/index.d.ts +0 -0
- package/dist/tools/sandbox/index.js +0 -0
- package/dist/tools/sandbox/manager.d.ts +0 -0
- package/dist/tools/sandbox/manager.js +0 -0
- package/dist/tools/sandbox/sandbox.integration.test.d.ts +0 -0
- package/dist/tools/sandbox/sandbox.integration.test.js +0 -0
- package/dist/tools/sandbox/sandbox.test.d.ts +0 -0
- package/dist/tools/sandbox/sandbox.test.js +0 -0
- package/dist/tools/sandbox/tool.d.ts +0 -0
- package/dist/tools/sandbox/tool.js +0 -0
- package/dist/tools/sandbox/types.d.ts +0 -0
- package/dist/tools/sandbox/types.js +0 -0
- package/dist/tools/sandbox/validator.d.ts +0 -0
- package/dist/tools/sandbox/validator.js +0 -0
- package/dist/tools/skill/frontmatter.d.ts +0 -0
- package/dist/tools/skill/frontmatter.js +0 -0
- package/dist/tools/skill/index.d.ts +0 -0
- package/dist/tools/skill/index.js +0 -0
- package/dist/tools/skill/registry.d.ts +0 -0
- package/dist/tools/skill/registry.js +0 -0
- package/dist/tools/skill/tool.d.ts +0 -0
- package/dist/tools/skill/tool.js +0 -0
- package/dist/tools/skill/types.d.ts +0 -0
- package/dist/tools/skill/types.js +0 -0
- package/dist/tools/table/index.d.ts +0 -0
- package/dist/tools/table/index.js +0 -0
- package/dist/tools/table/tools.d.ts +0 -0
- package/dist/tools/table/tools.js +0 -0
- package/dist/tools/table/utils.d.ts +0 -0
- package/dist/tools/table/utils.js +0 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/dist/skills/pzfx-io/SKILL.md +0 -111
- package/dist/skills/pzfx-io/guides/convert.md +0 -102
- package/dist/skills/pzfx-io/guides/read-parse.md +0 -116
- package/dist/skills/pzfx-io/guides/schema-reference.md +0 -167
- package/dist/skills/pzfx-io/guides/write-edit.md +0 -150
- package/dist/skills/pzfx-io/pyproject.toml +0 -6
- package/dist/skills/pzfx-io/pzfx.py +0 -1156
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createBioResearcherDRAgent } from "./agents/bioresearcherDR/index";
|
|
|
4
4
|
import { createBioResearcherDRWorkerAgent } from "./agents/bioresearcherDR_worker/index";
|
|
5
5
|
import { tableTools } from "./tools/table/index";
|
|
6
6
|
import { dbTools } from "./tools/db/index";
|
|
7
|
-
import { blockingTimer, calculator, jsonExtract, jsonValidate, jsonInfer } from "./tools/misc/index";
|
|
7
|
+
import { blockingTimer, calculator, jsonExtract, jsonValidate, jsonInfer, markdownToHtml } from "./tools/misc/index";
|
|
8
8
|
import { parse_pubmed_articleSet } from "./tools/parser/pubmed";
|
|
9
9
|
import { parse_obo_file } from "./tools/parser/obo";
|
|
10
10
|
export const BioResearcherPlugin = async (input) => {
|
|
@@ -23,7 +23,7 @@ export const BioResearcherPlugin = async (input) => {
|
|
|
23
23
|
"tableGroupBy", "tablePivotSummary", "tableAppendRows", "tableUpdateCell",
|
|
24
24
|
"tableCreateFile", "dbQuery", "dbListTables", "dbDescribeTable",
|
|
25
25
|
"calculator", "blockingTimer", "jsonExtract", "jsonValidate", "jsonInfer",
|
|
26
|
-
"parse_pubmed_articleSet", "parse_obo_file",
|
|
26
|
+
"parse_pubmed_articleSet", "parse_obo_file", "markdownToHtml",
|
|
27
27
|
];
|
|
28
28
|
if (!pluginToolIds.includes(input.toolID))
|
|
29
29
|
return;
|
|
@@ -38,7 +38,8 @@ export const BioResearcherPlugin = async (input) => {
|
|
|
38
38
|
jsonValidate,
|
|
39
39
|
jsonInfer,
|
|
40
40
|
parse_pubmed_articleSet,
|
|
41
|
-
parse_obo_file
|
|
41
|
+
parse_obo_file,
|
|
42
|
+
markdownToHtml
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
# Creating Index Files for Protein Chains
|
|
2
|
-
|
|
3
|
-
## Basic Method
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
# Interactive mode
|
|
7
|
-
gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
8
|
-
|
|
9
|
-
# Non-interactive: split protein group by chain
|
|
10
|
-
printf "splitch <protein_group>\nq\n" | gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Caveat: `splitch` Artefacts
|
|
14
|
-
|
|
15
|
-
`splitch` uses topological connectivity and may incorrectly split a single chain into multiple groups when:
|
|
16
|
-
- Hydrogen atoms were rebuilt by `pdb2gmx` (N-terminal residues get extra H1/H2/H3 atoms)
|
|
17
|
-
- Residue numbering has gaps (e.g., residues 1-18, then 26-108)
|
|
18
|
-
|
|
19
|
-
**Symptom**: After `splitch`, a single protein chain appears as multiple `Protein_chainN` groups where the atom counts don't match expected molecule boundaries.
|
|
20
|
-
|
|
21
|
-
## Recommended Workflow: Fix Incorrectly Split Chains
|
|
22
|
-
|
|
23
|
-
**Step 1: Identify the incorrect split**
|
|
24
|
-
After `splitch`, press Enter (empty line) in `make_ndx` to list all groups. Compare atom counts against your expected molecule sizes.
|
|
25
|
-
|
|
26
|
-
**Step 2: Merge the incorrectly split groups**
|
|
27
|
-
```
|
|
28
|
-
<group_N> | <group_M>
|
|
29
|
-
```
|
|
30
|
-
This creates a new merged group named `Protein_chainN_Protein_chainM` at the end of the list.
|
|
31
|
-
|
|
32
|
-
**Step 3: Verify the merged group**
|
|
33
|
-
Press Enter to list groups again. The merged group should have the correct total atom count.
|
|
34
|
-
|
|
35
|
-
**Step 4: Delete the incorrect split groups**
|
|
36
|
-
Delete in DESCENDING order to avoid index shifting confusion:
|
|
37
|
-
```
|
|
38
|
-
del <higher_index>
|
|
39
|
-
del <lower_index>
|
|
40
|
-
```
|
|
41
|
-
After `k` deletions, the merged group index shifts down by `k`.
|
|
42
|
-
|
|
43
|
-
**Step 5: Rename the merged group (optional)**
|
|
44
|
-
```
|
|
45
|
-
name <final_index> <custom_name>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Generic Example (interactive `make_ndx` session)
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
> splitch 1
|
|
52
|
-
Found N chains
|
|
53
|
-
1: XXX atoms (a to b)
|
|
54
|
-
2: YY atoms (c to d) <-- suspiciously small, may be incorrect split
|
|
55
|
-
3: ZZZ atoms (e to f) <-- remainder of same chain
|
|
56
|
-
|
|
57
|
-
> <-- press Enter to list groups
|
|
58
|
-
...
|
|
59
|
-
N Protein_chain1 XXX atoms
|
|
60
|
-
N+1 Protein_chain2 YY atoms <-- wrong split (too small)
|
|
61
|
-
N+2 Protein_chain3 ZZZ atoms <-- wrong split (remainder)
|
|
62
|
-
...
|
|
63
|
-
|
|
64
|
-
> N+1 | N+2 <-- merge the incorrectly split groups
|
|
65
|
-
Merged two groups with OR: YY ZZZ -> (YY+ZZZ)
|
|
66
|
-
|
|
67
|
-
> <-- press Enter to verify
|
|
68
|
-
...
|
|
69
|
-
M Protein_chain2_Protein_chain3 (YY+ZZZ) atoms <-- correct total!
|
|
70
|
-
|
|
71
|
-
> del N+2 <-- delete higher index first
|
|
72
|
-
> del N+1 <-- then lower index
|
|
73
|
-
|
|
74
|
-
> <-- press Enter
|
|
75
|
-
...
|
|
76
|
-
M-2 Protein_chain2_Protein_chain3 (YY+ZZZ) atoms <-- shifted!
|
|
77
|
-
|
|
78
|
-
> name M-2 <your_chain_name>
|
|
79
|
-
> q
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Key insight**: After deleting `k` groups that were created AFTER the merged group, the merged group's index decreases by `k`.
|
|
83
|
-
|
|
84
|
-
## Non-interactive Equivalent
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
printf "splitch 1\n<group_N> | <group_M>\ndel <higher>\ndel <lower>\nname <final> <name>\nq\n" | \
|
|
88
|
-
gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Creating C-alpha Groups
|
|
92
|
-
|
|
93
|
-
In `make_ndx` interactive mode:
|
|
94
|
-
```
|
|
95
|
-
a CA & <chain_group> # creates C-alpha selection for specified chain
|
|
96
|
-
```
|
|
1
|
+
# Creating Index Files for Protein Chains
|
|
2
|
+
|
|
3
|
+
## Basic Method
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Interactive mode
|
|
7
|
+
gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
8
|
+
|
|
9
|
+
# Non-interactive: split protein group by chain
|
|
10
|
+
printf "splitch <protein_group>\nq\n" | gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Caveat: `splitch` Artefacts
|
|
14
|
+
|
|
15
|
+
`splitch` uses topological connectivity and may incorrectly split a single chain into multiple groups when:
|
|
16
|
+
- Hydrogen atoms were rebuilt by `pdb2gmx` (N-terminal residues get extra H1/H2/H3 atoms)
|
|
17
|
+
- Residue numbering has gaps (e.g., residues 1-18, then 26-108)
|
|
18
|
+
|
|
19
|
+
**Symptom**: After `splitch`, a single protein chain appears as multiple `Protein_chainN` groups where the atom counts don't match expected molecule boundaries.
|
|
20
|
+
|
|
21
|
+
## Recommended Workflow: Fix Incorrectly Split Chains
|
|
22
|
+
|
|
23
|
+
**Step 1: Identify the incorrect split**
|
|
24
|
+
After `splitch`, press Enter (empty line) in `make_ndx` to list all groups. Compare atom counts against your expected molecule sizes.
|
|
25
|
+
|
|
26
|
+
**Step 2: Merge the incorrectly split groups**
|
|
27
|
+
```
|
|
28
|
+
<group_N> | <group_M>
|
|
29
|
+
```
|
|
30
|
+
This creates a new merged group named `Protein_chainN_Protein_chainM` at the end of the list.
|
|
31
|
+
|
|
32
|
+
**Step 3: Verify the merged group**
|
|
33
|
+
Press Enter to list groups again. The merged group should have the correct total atom count.
|
|
34
|
+
|
|
35
|
+
**Step 4: Delete the incorrect split groups**
|
|
36
|
+
Delete in DESCENDING order to avoid index shifting confusion:
|
|
37
|
+
```
|
|
38
|
+
del <higher_index>
|
|
39
|
+
del <lower_index>
|
|
40
|
+
```
|
|
41
|
+
After `k` deletions, the merged group index shifts down by `k`.
|
|
42
|
+
|
|
43
|
+
**Step 5: Rename the merged group (optional)**
|
|
44
|
+
```
|
|
45
|
+
name <final_index> <custom_name>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Generic Example (interactive `make_ndx` session)
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
> splitch 1
|
|
52
|
+
Found N chains
|
|
53
|
+
1: XXX atoms (a to b)
|
|
54
|
+
2: YY atoms (c to d) <-- suspiciously small, may be incorrect split
|
|
55
|
+
3: ZZZ atoms (e to f) <-- remainder of same chain
|
|
56
|
+
|
|
57
|
+
> <-- press Enter to list groups
|
|
58
|
+
...
|
|
59
|
+
N Protein_chain1 XXX atoms
|
|
60
|
+
N+1 Protein_chain2 YY atoms <-- wrong split (too small)
|
|
61
|
+
N+2 Protein_chain3 ZZZ atoms <-- wrong split (remainder)
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
> N+1 | N+2 <-- merge the incorrectly split groups
|
|
65
|
+
Merged two groups with OR: YY ZZZ -> (YY+ZZZ)
|
|
66
|
+
|
|
67
|
+
> <-- press Enter to verify
|
|
68
|
+
...
|
|
69
|
+
M Protein_chain2_Protein_chain3 (YY+ZZZ) atoms <-- correct total!
|
|
70
|
+
|
|
71
|
+
> del N+2 <-- delete higher index first
|
|
72
|
+
> del N+1 <-- then lower index
|
|
73
|
+
|
|
74
|
+
> <-- press Enter
|
|
75
|
+
...
|
|
76
|
+
M-2 Protein_chain2_Protein_chain3 (YY+ZZZ) atoms <-- shifted!
|
|
77
|
+
|
|
78
|
+
> name M-2 <your_chain_name>
|
|
79
|
+
> q
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Key insight**: After deleting `k` groups that were created AFTER the merged group, the merged group's index decreases by `k`.
|
|
83
|
+
|
|
84
|
+
## Non-interactive Equivalent
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
printf "splitch 1\n<group_N> | <group_M>\ndel <higher>\ndel <lower>\nname <final> <name>\nq\n" | \
|
|
88
|
+
gmx make_ndx -f <tpr_file> -o <index_file.ndx>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Creating C-alpha Groups
|
|
92
|
+
|
|
93
|
+
In `make_ndx` interactive mode:
|
|
94
|
+
```
|
|
95
|
+
a CA & <chain_group> # creates C-alpha selection for specified chain
|
|
96
|
+
```
|