Conversation
Signed-off-by: Ohad Mosafi <omosafi@nvidia.com>
|
/nvskills-ci |
|
| args.output_dir.mkdir(parents=True, exist_ok=False) | ||
| (args.output_dir / "response.json").write_text(json.dumps(result, indent=2) + "\n", encoding="utf-8") | ||
| for database in dict.fromkeys(args.databases): | ||
| alignment = result["alignments"][database]["a3m"]["alignment"] | ||
| path = args.output_dir / f"{database}.a3m" | ||
| path.write_text(alignment, encoding="utf-8") |
There was a problem hiding this comment.
Partial output survives write failure If writing
response.json succeeds but a later A3M write fails, the client exits with an error while leaving incomplete files behind. The next run cannot reuse the directory because --output-dir must not already exist. Consider publishing the directory only after all writes succeed, or removing it on failure, and testing a failure during writing. The distributed copy has the same behavior.
| a3m = formats.get("a3m") if isinstance(formats, dict) else None | ||
| alignment = a3m.get("alignment") if isinstance(a3m, dict) else None | ||
| if not isinstance(alignment, str) or not alignment.lstrip().startswith(">"): | ||
| raise SearchError(f"Hosted MSA returned no A3M alignment for {database}.") | ||
| if not any(line.strip() and not line.startswith((">", "#")) for line in alignment.splitlines()): | ||
| raise SearchError(f"Hosted MSA returned an empty A3M alignment for {database}.") |
There was a problem hiding this comment.
Malformed alignments can pass validation The client accepts an alignment if it starts with
> and has any non-header line; it does not check the returned format or whether the records form usable A3M. A malformed response can therefore be saved as a successful .a3m file and fail later in a structure-prediction tool. Check the format and basic record structure before reporting success. The distributed copy has the same check.
Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
| ### License/Terms of Use: <br> | ||
| Apache-2.0 AND CC-BY-4.0 <br> | ||
| ## Use Case: <br> | ||
| Developers and engineers use this skill to generate multiple sequence alignments for protein sequences via GPU-accelerated MMSeqs2, supporting hosted NVIDIA API or local Docker NIM deployment for homolog search, paired MSA for complexes, and structural template retrieval. <br> |
There was a problem hiding this comment.
Hosted template support is overstated The card presents structural template retrieval alongside both hosted and local deployment. The skill’s API reference says the hosted template endpoint is unavailable and returned HTTP 404, so readers may try a workflow that cannot work. Clarify that template retrieval requires a local NIM.
| Developers and engineers use this skill to generate multiple sequence alignments for protein sequences via GPU-accelerated MMSeqs2, supporting hosted NVIDIA API or local Docker NIM deployment for homolog search, paired MSA for complexes, and structural template retrieval. <br> | |
| Developers and engineers use this skill to generate multiple sequence alignments for protein sequences via GPU-accelerated MMSeqs2. Hosted NVIDIA API and local Docker NIM support homolog search and paired MSA for complexes; structural template retrieval requires a local Docker NIM. <br> |
No description provided.