98 lines
16 KiB
XML
98 lines
16 KiB
XML
|
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.4" xml:lang="en-US">
|
||
|
<compounddef id="remove__joint_8py" kind="file" language="Python">
|
||
|
<compoundname>remove_joint.py</compoundname>
|
||
|
<innernamespace refid="namespaceremove__joint">remove_joint</innernamespace>
|
||
|
<briefdescription>
|
||
|
</briefdescription>
|
||
|
<detaileddescription>
|
||
|
</detaileddescription>
|
||
|
<programlisting>
|
||
|
<codeline lineno="1" refid="namespaceremove__joint" refkind="compound"><highlight class="comment">#-*-<sp/>coding:<sp/>utf-8<sp/>-*-</highlight><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>argparse</highlight></codeline>
|
||
|
<codeline lineno="3"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>dnacalib<sp/></highlight><highlight class="keyword">as</highlight><highlight class="normal"><sp/>dnac</highlight></codeline>
|
||
|
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="keyword">import</highlight><highlight class="normal"><sp/>dna</highlight></codeline>
|
||
|
<codeline lineno="6"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="7"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="8" refid="namespaceremove__joint_1ade0f539034a1002bcf88699bc699361e" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1ade0f539034a1002bcf88699bc699361e" kindref="member">loadDNA</ref>(path):</highlight></codeline>
|
||
|
<codeline lineno="9"><highlight class="normal"><sp/><sp/><sp/><sp/>stream<sp/>=<sp/><ref refid="classtrio_1_1FileStream" kindref="compound">dna.FileStream</ref>(path,<sp/>dna.FileStream.AccessMode_Read,<sp/>dna.FileStream.OpenMode_Binary)</highlight></codeline>
|
||
|
<codeline lineno="10"><highlight class="normal"><sp/><sp/><sp/><sp/>reader<sp/>=<sp/><ref refid="classdna_1_1BinaryStreamReader" kindref="compound">dna.BinaryStreamReader</ref>(stream,<sp/>dna.DataLayer_All)</highlight></codeline>
|
||
|
<codeline lineno="11"><highlight class="normal"><sp/><sp/><sp/><sp/>reader.read()</highlight></codeline>
|
||
|
<codeline lineno="12"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>dna.Status.isOk():</highlight></codeline>
|
||
|
<codeline lineno="13"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>status<sp/>=<sp/>dna.Status.get()</highlight></codeline>
|
||
|
<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>RuntimeError(</highlight><highlight class="stringliteral">"Error<sp/>loading<sp/>DNA:<sp/>{}"</highlight><highlight class="normal">.format(status.message))</highlight></codeline>
|
||
|
<codeline lineno="15"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>reader</highlight></codeline>
|
||
|
<codeline lineno="16"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="17"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="18" refid="namespaceremove__joint_1a43d4e1b299b48a255cac5bc9e7c0b86f" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1a43d4e1b299b48a255cac5bc9e7c0b86f" kindref="member">saveDNA</ref>(reader,<sp/>path):</highlight></codeline>
|
||
|
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/>stream<sp/>=<sp/><ref refid="classtrio_1_1FileStream" kindref="compound">dna.FileStream</ref>(path,<sp/>dna.FileStream.AccessMode_Write,<sp/>dna.FileStream.OpenMode_Binary)</highlight></codeline>
|
||
|
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/>writer<sp/>=<sp/><ref refid="classdna_1_1BinaryStreamWriter" kindref="compound">dna.BinaryStreamWriter</ref>(stream)</highlight></codeline>
|
||
|
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/>writer.setFrom(reader)</highlight></codeline>
|
||
|
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/>writer.write()</highlight></codeline>
|
||
|
<codeline lineno="23"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">not</highlight><highlight class="normal"><sp/>dna.Status.isOk():</highlight></codeline>
|
||
|
<codeline lineno="25"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>status<sp/>=<sp/>dna.Status.get()</highlight></codeline>
|
||
|
<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>RuntimeError(</highlight><highlight class="stringliteral">"Error<sp/>saving<sp/>DNA:<sp/>{}"</highlight><highlight class="normal">.format(status.message))</highlight></codeline>
|
||
|
<codeline lineno="27"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="28" refid="namespaceremove__joint_1ade3a3c766635ef3e837512e08e606923" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1ade3a3c766635ef3e837512e08e606923" kindref="member">getJoints</ref>(dna):</highlight></codeline>
|
||
|
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/>joints<sp/>=<sp/>[]</highlight></codeline>
|
||
|
<codeline lineno="30"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>jointIndex<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>range(dna.getJointCount()):</highlight></codeline>
|
||
|
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>joints.append(dna.getJointName(jointIndex))</highlight></codeline>
|
||
|
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>joints</highlight></codeline>
|
||
|
<codeline lineno="33"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="34" refid="namespaceremove__joint_1af612e121a4f9c2b1ae64689cfa583682" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1af612e121a4f9c2b1ae64689cfa583682" kindref="member">printJoints</ref>(dna):</highlight></codeline>
|
||
|
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>jointIndex<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>range(dna.getJointCount()):</highlight></codeline>
|
||
|
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>print(dna.getJointName(jointIndex))</highlight></codeline>
|
||
|
<codeline lineno="37"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="38" refid="namespaceremove__joint_1aa3e9973ccb6a0b57fd690202006e9a93" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1aa3e9973ccb6a0b57fd690202006e9a93" kindref="member">calibrateDNA</ref>(inputPath,<sp/>outputPath):</highlight></codeline>
|
||
|
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/>dna<sp/>=<sp/><ref refid="namespaceremove__joint_1ade0f539034a1002bcf88699bc699361e" kindref="member">loadDNA</ref>(inputPath)</highlight></codeline>
|
||
|
<codeline lineno="40"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Copies<sp/>DNA<sp/>contents<sp/>and<sp/>will<sp/>serve<sp/>as<sp/>input/output<sp/>parameter<sp/>to<sp/>command</highlight><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/>calibrated<sp/>=<sp/><ref refid="classdnac_1_1DNACalibDNAReader" kindref="compound">dnac.DNACalibDNAReader</ref>(dna)</highlight></codeline>
|
||
|
<codeline lineno="43"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/>original_joints<sp/>=<sp/><ref refid="namespaceremove__joint_1ade3a3c766635ef3e837512e08e606923" kindref="member">getJoints</ref>(calibrated)</highlight></codeline>
|
||
|
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>An<sp/>example<sp/>joint<sp/>to<sp/>remove</highlight><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/>joint_index<sp/>=<sp/>314</highlight></codeline>
|
||
|
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/>joint_name<sp/>=<sp/>calibrated.getJointName(joint_index)</highlight></codeline>
|
||
|
<codeline lineno="49"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="50"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Removes<sp/>joint<sp/>with<sp/>specified<sp/>index</highlight><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="51"><highlight class="normal"><sp/><sp/><sp/><sp/>command<sp/>=<sp/><ref refid="classdnac_1_1RemoveJointCommand" kindref="compound">dnac.RemoveJointCommand</ref>(joint_index)</highlight></codeline>
|
||
|
<codeline lineno="52"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">#<sp/>Modifies<sp/>calibrated<sp/>DNA<sp/>in-place</highlight><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/>command.run(calibrated)</highlight></codeline>
|
||
|
<codeline lineno="55"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/>modified_joints<sp/>=<sp/><ref refid="namespaceremove__joint_1ade3a3c766635ef3e837512e08e606923" kindref="member">getJoints</ref>(calibrated)</highlight></codeline>
|
||
|
<codeline lineno="57"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((len(modified_joints)<sp/>!=<sp/>(len(original_joints)<sp/>-<sp/>1))<sp/></highlight><highlight class="keywordflow">or</highlight><highlight class="normal"><sp/>(joint_name<sp/></highlight><highlight class="keywordflow">in</highlight><highlight class="normal"><sp/>modified_joints)):</highlight></codeline>
|
||
|
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">raise</highlight><highlight class="normal"><sp/>RuntimeError(</highlight><highlight class="stringliteral">"Joint<sp/>not<sp/>removed<sp/>properly!"</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="60"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/>print(</highlight><highlight class="stringliteral">"Successfully<sp/>removed<sp/>joint<sp/>`{}`."</highlight><highlight class="normal">.format(joint_name))</highlight></codeline>
|
||
|
<codeline lineno="62"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/>print(</highlight><highlight class="stringliteral">"Saving<sp/>DNA..."</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="namespaceremove__joint_1a43d4e1b299b48a255cac5bc9e7c0b86f" kindref="member">saveDNA</ref>(calibrated,<sp/>outputPath)</highlight></codeline>
|
||
|
<codeline lineno="65"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>print(</highlight><highlight class="stringliteral">"Done."</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="67"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="68" refid="namespaceremove__joint_1a82e2d3e13e2bac1b012f402ea2f13654" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">def<sp/></highlight><highlight class="normal"><ref refid="namespaceremove__joint_1a82e2d3e13e2bac1b012f402ea2f13654" kindref="member">main</ref>():</highlight></codeline>
|
||
|
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/>parser<sp/>=<sp/>argparse.ArgumentParser(description=</highlight><highlight class="stringliteral">"DNACalib<sp/>remove<sp/>joint<sp/>example"</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/>parser.add_argument(</highlight><highlight class="stringliteral">'input_dna'</highlight><highlight class="normal">,</highlight></codeline>
|
||
|
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>metavar=</highlight><highlight class="stringliteral">'input-dna'</highlight><highlight class="normal">,</highlight></codeline>
|
||
|
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>help=</highlight><highlight class="stringliteral">'Path<sp/>to<sp/>DNA<sp/>file<sp/>to<sp/>load'</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/>parser.add_argument(</highlight><highlight class="stringliteral">'output_dna'</highlight><highlight class="normal">,</highlight></codeline>
|
||
|
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>metavar=</highlight><highlight class="stringliteral">'output-dna'</highlight><highlight class="normal">,</highlight></codeline>
|
||
|
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>help=</highlight><highlight class="stringliteral">'Path<sp/>where<sp/>to<sp/>save<sp/>modified<sp/>DNA<sp/>file'</highlight><highlight class="normal">)</highlight></codeline>
|
||
|
<codeline lineno="76"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/>args<sp/>=<sp/>parser.parse_args()</highlight></codeline>
|
||
|
<codeline lineno="78"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="namespaceremove__joint_1aa3e9973ccb6a0b57fd690202006e9a93" kindref="member">calibrateDNA</ref>(args.input_dna,<sp/>args.output_dna)</highlight></codeline>
|
||
|
<codeline lineno="80"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="81"><highlight class="normal"></highlight></codeline>
|
||
|
<codeline lineno="82"><highlight class="normal"></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>__name__<sp/>==<sp/></highlight><highlight class="stringliteral">'__main__'</highlight><highlight class="normal">:</highlight></codeline>
|
||
|
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="namespaceremove__joint_1a82e2d3e13e2bac1b012f402ea2f13654" kindref="member">main</ref>()</highlight></codeline>
|
||
|
</programlisting>
|
||
|
<location file="C:/source/MetaHuman-DNA-Calibration/dnacalib/PyDNACalib/python3/examples/remove_joint.py"/>
|
||
|
</compounddef>
|
||
|
</doxygen>
|