"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "layer2/MmtfMoleculeReader.cpp" between
pymol-open-source-2.2.0.tar.gz and pymol-open-source-2.3.0.tar.gz

About: PyMOL is a Python-enhanced molecular graphics tool. It excels at 3D visualization of proteins, small molecules, density, surfaces, and trajectories. It also includes molecular editing, ray tracing, and movies. Open Source version.

MmtfMoleculeReader.cpp  (pymol-open-source-2.2.0):MmtfMoleculeReader.cpp  (pymol-open-source-2.3.0)
skipping to change at line 53 skipping to change at line 53
*/ */
static static
CoordSet ** get_assembly_csets(PyMOLGlobals * G, CoordSet ** get_assembly_csets(PyMOLGlobals * G,
const MMTF_container * container, const MMTF_container * container,
const AtomInfoType * atInfo, const AtomInfoType * atInfo,
const CoordSet * cset) const CoordSet * cset)
{ {
const char * assembly_id = SettingGetGlobal_s(G, cSetting_assembly); const char * assembly_id = SettingGetGlobal_s(G, cSetting_assembly);
if (!assembly_id || !assembly_id[0]) if (!assembly_id || !assembly_id[0])
return NULL; return nullptr;
const MMTF_BioAssembly * assembly = NULL; const MMTF_BioAssembly * assembly = nullptr;
// look up assembly by name // look up assembly by name
for (auto a = container->bioAssemblyList, for (auto a = container->bioAssemblyList,
a_end = a + container->bioAssemblyListCount; a_end = a + container->bioAssemblyListCount;
a != a_end; ++a) { a != a_end; ++a) {
if (strcmp(a->name, assembly_id) == 0) { if (strcmp(a->name, assembly_id) == 0) {
assembly = a; assembly = a;
break; break;
} }
} }
if (!assembly) { if (!assembly) {
PRINTFB(G, FB_Executive, FB_Details) PRINTFB(G, FB_Executive, FB_Details)
" ExecutiveLoad-Detail: No such assembly: '%s'\n", assembly_id ENDFB(G); " ExecutiveLoad-Detail: No such assembly: '%s'\n", assembly_id ENDFB(G);
return NULL; return nullptr;
} }
PRINTFB(G, FB_Executive, FB_Details) PRINTFB(G, FB_Executive, FB_Details)
" ExecutiveLoad-Detail: Creating assembly '%s'\n", assembly_id ENDFB(G); " ExecutiveLoad-Detail: Creating assembly '%s'\n", assembly_id ENDFB(G);
int ncsets = assembly->transformListCount; int ncsets = assembly->transformListCount;
CoordSet ** csets = VLACalloc(CoordSet *, ncsets); CoordSet ** csets = VLACalloc(CoordSet *, ncsets);
for (int state = 0; state < ncsets; ++state) { for (int state = 0; state < ncsets; ++state) {
auto trans = assembly->transformList + state; auto trans = assembly->transformList + state;
// get set of chains for this transformation // get set of chains for this transformation
std::set<lexidx_t> chains_set; std::set<lexborrow_t> chains_set;
for (auto ci_it = trans->chainIndexList, for (auto ci_it = trans->chainIndexList,
ci_it_end = ci_it + trans->chainIndexListCount; ci_it_end = ci_it + trans->chainIndexListCount;
ci_it != ci_it_end; ++ci_it) { ci_it != ci_it_end; ++ci_it) {
const char * chain = container->chainIdList[*ci_it]; const char * chain = container->chainIdList[*ci_it];
auto result = OVLexicon_BorrowFromCString(G->Lexicon, chain); auto borrowed = LexBorrow(G, chain);
if (OVreturn_IS_OK(result)) { if (borrowed != LEX_BORROW_NOTFOUND) {
chains_set.insert(result.word); chains_set.insert(borrowed);
} }
} }
// copy and transform // copy and transform
csets[state] = CoordSetCopyFilterChains(cset, atInfo, chains_set); csets[state] = CoordSetCopyFilterChains(cset, atInfo, chains_set);
CoordSetTransform44f(csets[state], trans->matrix); CoordSetTransform44f(csets[state], trans->matrix);
} }
return csets; return csets;
} }
skipping to change at line 116 skipping to change at line 116
#ifdef _PYMOL_NO_MSGPACKC #ifdef _PYMOL_NO_MSGPACKC
PRINTFB(G, FB_ObjectMolecule, FB_Errors) PRINTFB(G, FB_ObjectMolecule, FB_Errors)
" Error: This build has no fast MMTF support.\n" ENDFB(G); " Error: This build has no fast MMTF support.\n" ENDFB(G);
return NULL; return NULL;
#else #else
if (I) { if (I) {
PRINTFB(G, FB_ObjectMolecule, FB_Errors) PRINTFB(G, FB_ObjectMolecule, FB_Errors)
" Error: loading MMTF into existing object not supported, please use 'crea te'\n" " Error: loading MMTF into existing object not supported, please use 'crea te'\n"
" to append to an existing object.\n" ENDFB(G); " to append to an existing object.\n" ENDFB(G);
return NULL; return nullptr;
} }
if (multiplex > 0) { if (multiplex > 0) {
PRINTFB(G, FB_ObjectMolecule, FB_Errors) PRINTFB(G, FB_ObjectMolecule, FB_Errors)
" Error: multiplex not supported for MMTF\n" ENDFB(G); " Error: multiplex not supported for MMTF\n" ENDFB(G);
return NULL; return nullptr;
} }
MMTF_container * container = MMTF_container_new(); MMTF_container * container = MMTF_container_new();
if (!MMTF_unpack_from_string(st, st_len, container)) { if (!MMTF_unpack_from_string(st, st_len, container)) {
PRINTFB(G, FB_ObjectMolecule, FB_Errors) PRINTFB(G, FB_ObjectMolecule, FB_Errors)
" Error: Failed to load MMTF file\n" ENDFB(G); " Error: Failed to load MMTF file\n" ENDFB(G);
MMTF_container_free(container); MMTF_container_free(container);
return NULL; return nullptr;
} }
if (!quiet) { if (!quiet) {
PRINTFB(G, FB_ObjectMolecule, FB_Details) PRINTFB(G, FB_ObjectMolecule, FB_Details)
" MMTF structureId: '%s', mmtfVersion: '%s'\n", " MMTF structureId: '%s', mmtfVersion: '%s'\n",
(container->structureId ? container->structureId : ""), (container->structureId ? container->structureId : ""),
(container->mmtfVersion ? container->mmtfVersion : "") ENDFB(G); (container->mmtfVersion ? container->mmtfVersion : "") ENDFB(G);
// title "echo tag" // title "echo tag"
if (container->title && container->title[0] && if (container->title && container->title[0] &&
 End of changes. 8 change blocks. 
10 lines changed or deleted 10 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)