<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>smg_fly.log</title>
        <link>https://velog.io/</link>
        <description>Goal: drug design with AI</description>
        <lastBuildDate>Tue, 01 Jul 2025 02:00:53 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>smg_fly.log</title>
            <url>https://velog.velcdn.com/images/smg_fly/profile/ddab400b-74be-4eb5-819a-71e8149e7ed9/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. smg_fly.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/smg_fly" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[AlphaGenome 메모]]></title>
            <link>https://velog.io/@smg_fly/AlphaGenome-%EB%A9%94%EB%AA%A8</link>
            <guid>https://velog.io/@smg_fly/AlphaGenome-%EB%A9%94%EB%AA%A8</guid>
            <pubDate>Tue, 01 Jul 2025 02:00:53 GMT</pubDate>
            <description><![CDATA[<h1 id="overview">Overview</h1>
<h4 id="problem">Problem</h4>
<ul>
<li>non-coding DNA 변이가 유전자 조절에 미치는 영향을 예측하기</li>
</ul>
<h4 id="pain-point">Pain Point</h4>
<ul>
<li>입력 sequence의 길이가 길면 해상도가 떨어지고, 해상도를 높이면 입력 범위가 제한되었다.</li>
<li>특정 task(ex. 발현량, splicing)만 예측할 수 있는 모델이 대부분이었다 (generalization X)</li>
<li>단일 변이에 대한 다양한 분자적 영향 평가가 잘 되지 않았다.</li>
</ul>
<h4 id="focus-point">Focus Point</h4>
<ul>
<li>Long sequence-context at high resolution: 최대 1백만 bp 길이에, base 단위 예측 가능</li>
<li>Comprehensive multimodal prediction: gene expression, transcription initiation, chromatin accessibility, histone modifications, transcription factor binding, chromatin contact maps, splice site usage, splice junction coordinates and strength 등을 동시에 예측</li>
<li>Efficient variant scoring: 원본 sequence와 mutate된 sequence를 비교하여 초단위 연산으로 변수 영향 평가</li>
<li>Novel splice-junction modeling: 변이가 splicing junction 위치 및 사용량에 미치는 영향을 직접 모델링</li>
</ul>
<h4 id="limitation">Limitation</h4>
<ul>
<li>매우 먼 (&gt;100kb) 거리 조절 인자 예측 어렵다.</li>
<li>특정 세포 수준 패턴은 아직 완벽히 포착되지 않았다. → 세포/조직 특이성 강화 필요</li>
<li>분자 수준 예측에 초점을 맞추었으므로 개인 전체 유전체에서 조절 맥락을 통합적으로 예측하는 데에는 적합하지 않다. (특히, 여러 개의 변이가 상호작용하는 polygenic context에서는 제한적)</li>
<li>환경, 발달, 생리적 융합 효과를 반영하지 않으므로 복잡한 표현형 예측(ex. 자폐, 암과 같은 질병으로 이어질 것인가?)에 한계가 있다.</li>
</ul>
<h1 id="details">Details</h1>
<h4 id="model-architecture">Model Architecture</h4>
<ul>
<li>convolution layers: 짧은 motif 추출</li>
<li>Transformer layers: 전체 sequence 간 장거리 정보 통합</li>
<li>Task-specific heads: 각각의 분자 기능적 예측 출력<img src="https://velog.velcdn.com/images/smg_fly/post/dfc30309-f0e9-4115-b5e2-fbf56f3bfe6a/image.png" alt=""></li>
</ul>
<h4 id="evaluation">Evaluation</h4>
<ul>
<li>Benchmark: 24개 single sequence 예측 task 중 22개, 변이 효과 예측 task 24/26개에서 SOTA</li>
<li>case study: T-ALL 관련 TAL1 유전자 인접 변이에 대해 MYB motif 생성 예측으로 기전 확인</li>
<li>dataset: ENCODE, GTEx, 4D Nucleome, FANTOM5 (인간/쥐) 등의 염기서열, 분자 실험 데이터를 다량 활용
<img src="https://velog.velcdn.com/images/smg_fly/post/6b7cf35c-b163-4b35-904f-4ef42d25ff9a/image.png" alt=""></li>
</ul>
<p><img src="https://velog.velcdn.com/images/smg_fly/post/cd10284d-ad20-4b3a-af65-c1d85e7166fd/image.png" alt=""></p>
<h1 id="reference">Reference</h1>
<ul>
<li>AlphaGenome paper: <a href="https://www.biorxiv.org/content/10.1101/2025.06.25.661532v1">https://www.biorxiv.org/content/10.1101/2025.06.25.661532v1</a></li>
<li>Deepmind webpage: <a href="https://deepmind.google/discover/blog/alphagenome-ai-for-better-understanding-the-genome/">https://deepmind.google/discover/blog/alphagenome-ai-for-better-understanding-the-genome/</a></li>
<li>ChatGPT</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[클러스터 컴퓨팅 환경에서 Python Debugger 사용하기]]></title>
            <link>https://velog.io/@smg_fly/%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%BB%B4%ED%93%A8%ED%8C%85-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Python-Debugger-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@smg_fly/%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%BB%B4%ED%93%A8%ED%8C%85-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Python-Debugger-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 17 Apr 2025 05:51:27 GMT</pubDate>
            <description><![CDATA[<h3 id="1-python-코드에-디버깅을-시작하기-위한-코드를-추가한다">1. Python 코드에 디버깅을 시작하기 위한 코드를 추가한다.</h3>
<pre><code># train.py (또는 디버깅하려는 스크립트 파일 상단)
import argparse

def parse_arguments():
  parser = argparse.ArgumentParser()
  parser.add_argument(&#39;--debug&#39;, action=&#39;store_true&#39;)
  # ... 다른 인자들 ...
  return parser.parse_args()

def main():

  args = parser.parse_args()

  ###### 디버깅을 위한 코드 추가 #####
    if args.debug:
        import debugpy
        debugpy.listen((&quot;0.0.0.0&quot;, 5454))  # 포트 번호(5454)는 원하는 번호로 변경
        print(&quot;Waiting for debugger attach...&quot;)
        debugpy.wait_for_client()
        print(&quot;Debugger attached.&quot;)
  #################################
  # ...
</code></pre><h3 id="2-계산-노드에-접속-후-tmux를-켠다">2. 계산 노드에 접속 후 tmux를 켠다.</h3>
<pre><code>salloc --partition=[PARTITION_NAME] --nodes=1 --cpus-per-task=4 --time=1440 --gres=gpu:1

tmux new -s debug</code></pre><h3 id="3-tmux에서-가상환경을-활성화-한-다음-디버깅용-코드를-실행한다">3. tmux에서 가상환경을 활성화 한 다음 디버깅용 코드를 실행한다.</h3>
<pre><code>conda activate env1
python train.py --epochs 10 --debug # 반드시  --debug 옵션 포함</code></pre><ul>
<li>&quot;Waiting for debugger attach...&quot;가 출력되고 코드가 멈춘다. </li>
<li>이 시점에서 debugpy 포트가 열리게 된다. </li>
</ul>
<h3 id="4-새로운-터미널을-열어서-계산-노드로-ssh-접속">4. 새로운 터미널을 열어서 계산 노드로 ssh 접속</h3>
<pre><code>ssh -L 5454:localhost:5454 USERNAME@gnode000</code></pre><ul>
<li>로컬 컴퓨터의 <code>127.0.0.1:5678</code> → 계산노드의 <code>5454</code> 포트로 연결</li>
<li>계산노드의 이름은 <code>hostname</code> 명령으로 확인</li>
</ul>
<h3 id="5-vscode에서-launchjson-만들기">5. VSCode에서 <code>launch.json</code> 만들기</h3>
<pre><code>{
  &quot;version&quot;: &quot;0.2.0&quot;,
  &quot;configurations&quot;: [
    {
      &quot;name&quot;: &quot;Attach to Remote Debug&quot;,
      &quot;type&quot;: &quot;python&quot;,
      &quot;request&quot;: &quot;attach&quot;,
      &quot;connect&quot;: {
        &quot;host&quot;: &quot;127.0.0.1&quot;,
        &quot;port&quot;: 5454
      },
      &quot;pathMappings&quot;: [
        {
          &quot;localRoot&quot;: &quot;${fileDirname}&quot;,
          &quot;remoteRoot&quot;: &quot;/home/USER/path/to/your/file&quot;
        }
      ]
    }
  ]
}</code></pre><h3 id="6-vscode에서-f5-또는-벌레-아이콘-클릭">6. VSCode에서 F5 또는 벌레 아이콘 클릭</h3>
<ul>
<li><code>debugpy.wait_for_client()</code> 통과됨</li>
<li>breakpoint에서 멈춤 -&gt; 디버깅 가능!</li>
</ul>
<h3 id="7-현재-디버깅-세션-종료-후-새로-시작하기">7. 현재 디버깅 세션 종료 후 새로 시작하기</h3>
<ul>
<li>debugger 멈추기 (<code>Shift+F5</code>)</li>
<li>ssh 연결한 터미널 가서 끊어진 ssh 종료하기 (<code>exit</code>)</li>
<li>tmux 터미널에서 디버깅 코드 재실행(<code>python train.py --debug</code>)</li>
<li>ssh 터미널 가서 ssh 재접속(<code>ssh -L 5454:localhost:5454 USERNAME@gnode000</code>)</li>
<li>debugger 재실행(<code>F5</code>) &gt; launch.file에서 &quot;<code>Attach to Remote Debug</code>&quot; 선택</li>
</ul>
<h3 id="8-완전히-종료하기">8. 완전히 종료하기</h3>
<ul>
<li>ssh 터미널 세션 종료: <code>exit</code></li>
<li>tmux 터미널에서 <code>exit</code></li>
<li>세션 종료: <code>tmux kill-session -t debug</code> </li>
</ul>
<h2 id="전체-요약">전체 요약</h2>
<table>
<thead>
<tr>
<th>순서</th>
<th>해야 할 것</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>코드에 <code>debugpy.listen()</code>, <code>wait_for_client()</code> 넣기</td>
</tr>
<tr>
<td>2</td>
<td><code>salloc</code> → <code>tmux</code> 들어감</td>
</tr>
<tr>
<td>3</td>
<td><code>python your_code.py --debug ...</code> 실행</td>
</tr>
<tr>
<td>4</td>
<td>새 터미널에서 SSH 포트포워딩</td>
</tr>
<tr>
<td>5</td>
<td>VSCode에서 attach</td>
</tr>
<tr>
<td>6</td>
<td>디버깅 종료 후 <code>tmux</code> 정리</td>
</tr>
</tbody></table>
]]></description>
        </item>
        <item>
            <title><![CDATA[bash에선 docker 권한이 있는데, tmux에서는 docker 권한이 없을 때]]></title>
            <link>https://velog.io/@smg_fly/bash%EC%97%90%EC%84%A0-docker-%EA%B6%8C%ED%95%9C%EC%9D%B4-%EC%9E%88%EB%8A%94%EB%8D%B0-tmux%EC%97%90%EC%84%9C%EB%8A%94-docker-%EA%B6%8C%ED%95%9C%EC%9D%B4-%EC%97%86%EC%9D%84-%EB%95%8C</link>
            <guid>https://velog.io/@smg_fly/bash%EC%97%90%EC%84%A0-docker-%EA%B6%8C%ED%95%9C%EC%9D%B4-%EC%9E%88%EB%8A%94%EB%8D%B0-tmux%EC%97%90%EC%84%9C%EB%8A%94-docker-%EA%B6%8C%ED%95%9C%EC%9D%B4-%EC%97%86%EC%9D%84-%EB%95%8C</guid>
            <pubDate>Fri, 14 Feb 2025 16:06:26 GMT</pubDate>
            <description><![CDATA[<p>bash에서 <code>groups</code> 명령할 때는 docker가 뜨고, tmux에서 <code>groups</code> 입력했을 때 docker가 안 뜰 경우 -&gt; group에 추가해줄 수 있다. </p>
<pre><code>newgrp docker</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[VSCode 디버깅, Conda 환경의 라이브러리 불러오기가 안 될 때]]></title>
            <link>https://velog.io/@smg_fly/VSCode-%EB%94%94%EB%B2%84%EA%B9%85-Conda-%ED%99%98%EA%B2%BD%EC%9D%98-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0%EA%B0%80-%EC%95%88-%EB%90%A0-%EB%95%8C</link>
            <guid>https://velog.io/@smg_fly/VSCode-%EB%94%94%EB%B2%84%EA%B9%85-Conda-%ED%99%98%EA%B2%BD%EC%9D%98-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0%EA%B0%80-%EC%95%88-%EB%90%A0-%EB%95%8C</guid>
            <pubDate>Thu, 06 Feb 2025 08:04:00 GMT</pubDate>
            <description><![CDATA[<h3 id="step-1-오른쪽-아래-interpreter를-현재-가상환경-경로로-설정한다">Step 1. 오른쪽 아래 interpreter를 현재 가상환경 경로로 설정한다.</h3>
<p><img src="https://velog.velcdn.com/images/smg_fly/post/5a5e5b5d-2b9c-4823-9afa-24ec3ca9a3a1/image.png" alt=""></p>
<h3 id="step-2-homeuservscodelaunchjson-파일을-만든다">Step 2. /home/user/.vscode/launch.json 파일을 만든다.</h3>
<ul>
<li>debug 모드를 켜고 Add Configuration을 선택한다. 
<img src="https://velog.velcdn.com/images/smg_fly/post/2f528b01-7285-4e4e-b567-2141256ab269/image.png" alt=""></li>
<li>Python Debugger&gt;Python File 선택하면 /home/user/.vscode/ 경로에 launch.json파일이 자동 생성된다. </li>
</ul>
<pre><code>{
    &quot;version&quot;: &quot;0.2.0&quot;,
    &quot;configurations&quot;: [

        {
            &quot;name&quot;: &quot;Python Debugger: Current File&quot;,
            &quot;type&quot;: &quot;debugpy&quot;,
            &quot;request&quot;: &quot;launch&quot;,
            &quot;program&quot;: &quot;${file}&quot;,
            &quot;console&quot;: &quot;integratedTerminal&quot;,
            &quot;cwd&quot;: &quot;${fileDirname}&quot;,
            &quot;env&quot;: {
                &quot;PYTHONPATH&quot;: &quot;/home/user/conda/lib/python3.12/site-packages:${env:PYTHONPATH}&quot;
            }
        }
    ]
}</code></pre><ul>
<li>환경 경로는 <code>python -c &quot;import sys; print(sys.path)&quot;</code>를 입력하면 알 수 있다. </li>
<li>위와 같은 형식으로 입력해주고 저장 후 F5를 누르면 conda 환경에 저장된 라이브러리를 이용해 디버깅을 할 수 있게 된다!</li>
</ul>
<ul>
<li>모두 진행했는데도 debugger에서 가상환경 속의 라이브러리를 불러오지 못한다면 vscode를 끄고 재실행해보자.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[ChimeraX 구조 시각화 + 비교하기]]></title>
            <link>https://velog.io/@smg_fly/ChimeraX-%EA%B5%AC%EC%A1%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@smg_fly/ChimeraX-%EA%B5%AC%EC%A1%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 25 Nov 2024 04:02:47 GMT</pubDate>
            <description><![CDATA[<h3 id="파일-업로드">파일 업로드</h3>
<p>pdb 또는 cif 파일을 ChimeraX 작업창에 드래그 해준다. 
Files &gt; Open 해서 pdb 또는 cif 파일을 찾아도 된다. </p>
<h3 id="구조-색칠하기">구조 색칠하기</h3>
<p>가독성 있게 단백질 구조를 보기 위해 필자가 사용하는 방법일 뿐 색은 자유롭게 바꾸어도 상관없다. </p>
<p>전체 색은 회색으로 맞춘다. </p>
<pre><code>col #A6A6A6</code></pre><p>alpha helix를 빨간색으로 칠해준다. 
Molcule Display -&gt; Sequence -&gt; alphahelix(노란 박스) 더블 클릭</p>
<pre><code>col sel #FF0000</code></pre><ul>
<li>참고: 컬러 코드의 여섯자리는 RGB를 의미한다. (RRGGBB) </li>
<li>그러므로 #FF0000은 순수 R만 최대로 낸 색깔이다. (가독성 최고!)</li>
</ul>
<p>beta sheet(파란 박스) 더블 클릭 </p>
<pre><code>col sel #0000FF</code></pre><p>선택 취소</p>
<pre><code>~select</code></pre><p>결과:
<img src="https://velog.velcdn.com/images/smg_fly/post/f5726c45-4f5f-4a3e-90b7-43f25f6ee7df/image.png" alt=""></p>
<h3 id="구조-비교하기">구조 비교하기</h3>
<p>비교할 pdb 파일을 open한다.  </p>
<pre><code>matchmaker #1 to #2</code></pre><p>먼저 open한 파일이 #1, 방금 open한 파일이 #2(하늘색)이다.
<img src="https://velog.velcdn.com/images/smg_fly/post/7c39884b-2c64-4a67-a4d7-ec653dad2c9d/image.png" alt=""></p>
<p>#2의 chain A, B를 확인해보자. </p>
<pre><code>select #2/B</code></pre><p><img src="https://velog.velcdn.com/images/smg_fly/post/d47fbef6-cc43-463b-ad2b-b63320ff03a3/image.png" alt=""></p>
<p>#2의 chain A만 매칭 되었으므로 chain B를 지워보자.</p>
<pre><code>delete #2/B</code></pre><p><img src="https://velog.velcdn.com/images/smg_fly/post/d5ad43ef-c688-4111-a1a7-ba16b2ce8d5a/image.png" alt=""></p>
<hr>
<h3 id="데이터-정보">데이터 정보</h3>
<ul>
<li>1gnx pdb 파일</li>
<li>AF3로 만든 bg_strsq_hmmerbit 구조</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Git → Github in terminal]]></title>
            <link>https://velog.io/@smg_fly/Git-Github-in-terminal</link>
            <guid>https://velog.io/@smg_fly/Git-Github-in-terminal</guid>
            <pubDate>Fri, 08 Nov 2024 07:46:32 GMT</pubDate>
            <description><![CDATA[<hr>
<h2 id="환경설정">환경설정</h2>
<p>로컬과 github repository를 연동하기 위해서는 아래와 같은 git 명령어를 사용해야 한다.</p>
<pre><code>git push origin master</code></pre><p>git 명령어를 사용하기 위해서 Git을 설치해준다. </p>
<h4 id="git-설치하기">Git 설치하기:</h4>
<ul>
<li><a href="https://git-scm.com/downloads">https://git-scm.com/downloads</a></li>
<li>자신의 환경(Window/Mac/Linux)에 맞는 설치 파일을 다운로드해서 열고 next, next, next, ..., install해주면 된다. </li>
</ul>
<p>설치 완료 후 git bash를 연다. </p>
<h4 id="git-bash에서-환경설정하기">git bash에서 환경설정하기</h4>
<pre><code>git config --global user.name &quot;본인의 영어 이름&quot;
git config --global user.email &quot;github 가입한 이메일&quot;</code></pre><p>아래 명령어를 입력해서 user.name과 user.email이 본인이 입력한 대로 잘 나왔는지 확인하면 된다. </p>
<pre><code>git config --list</code></pre><hr>
<h2 id="github에-처음-코드-업로드-업데이트x">Github에 처음 코드 업로드 (업데이트X)</h2>
<h4 id="초기화">초기화</h4>
<pre><code>git init</code></pre><p>우선 초기화를 해준다. 아래 코드를 실행하면 현재 위치한 디렉토리(pwd)에 .git 폴더가 생긴다. </p>
<h4 id="github에-올릴-파일-더하기">github에 올릴 파일 더하기</h4>
<pre><code>git add . </code></pre><p>.은 모든 파일을 의미한다. 특정 파일만 올리고 싶으면 . 대신 해당 파일의 이름을 입력해주면 된다. </p>
<h4 id="상태-확인">상태 확인</h4>
<pre><code>git status</code></pre><p>add한 현재 위치한 디렉토리(pwd)에 어떤 변화가 있었는지 알 수 있다. </p>
<h4 id="히스토리-만들기">히스토리 만들기</h4>
<pre><code>git commit -m &quot;first commit&quot;</code></pre><p>&quot;first commit&quot;은 외국판 &quot;_최종&quot; 이런 느낌 
히스토리나 어떤 수정을 했는지 남겨준다. </p>
<h4 id="로컬-저장소와-원격-저장소-연결">로컬 저장소와 원격 저장소 연결</h4>
<p>로컬 저장소와 원격 저장소 연결과 연결 확인 과정은 git add . 이전에 해도 된다. </p>
<pre><code>git remote add orgin 원격저장소URL</code></pre><h4 id="연결-확인">연결 확인</h4>
<pre><code>git remote -v </code></pre><p>원격 저장소의 주소가 출력되면 잘 연결되었다는 의미이다.</p>
<h4 id="github에-올리기">Github에 올리기</h4>
<pre><code>git push origin master</code></pre><p>branch 이름이 main이라면 master 대신 main 입력</p>
<hr>
<h2 id="github에-올렸던-코드-업데이트-하기">Github에 올렸던 코드 업데이트 하기</h2>
<h4 id="추가할-파일-더하기수정된-파일-업데이트-하기">추가할 파일 더하기(+수정된 파일 업데이트 하기)</h4>
<pre><code>git add . 
git status
git commit -m &quot;수정된 사항/second commit&quot;
git push origin master</code></pre><hr>
<h1 id="">+@</h1>
<hr>
<h2 id="새로운-branch-연동하기">새로운 branch 연동하기</h2>
<pre><code>git branch -m new-branch-name   # 로컬 브랜치 이름 변경
git push origin --delete old-branch-name   # 원격 브랜치 삭제
git push -u origin new-branch-name   # 새 브랜치 이름으로 푸시</code></pre><h4 id="현재-branch-경로-알아내기">현재 branch 경로 알아내기</h4>
<pre><code>git branch</code></pre><hr>
<h2 id="git-폴더-초기화-하기">.git 폴더 초기화 하기</h2>
<p>연동이 잘 안 되어 여러 가지 시도를 해보다가 꼬여서 연동을 처음부터 시도하고 싶을 경우 아래와 같은 방법을 시도해볼 수 있다. </p>
<h4 id="현재-git-설정-제거">현재 git 설정 제거</h4>
<pre><code>rm -rf .git</code></pre><h4 id="새로운-git-repository-초기화">새로운 git repository 초기화</h4>
<pre><code>git init</code></pre><h4 id="원격-저장소-연결">원격 저장소 연결</h4>
<pre><code>git remote add origin 원격저장소URL</code></pre><h4 id="처음부터-commit-push">처음부터 commit, push</h4>
<pre><code>git add .
git commit -m &quot;Initial commit&quot;
git push -u origin main  </code></pre><hr>
<h2 id="reference">Reference</h2>
<p><a href="https://www.youtube.com/watch?v=lelVripbt2M">https://www.youtube.com/watch?v=lelVripbt2M</a>
<a href="https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K">https://hackmd.io/@oW_dDxdsRoSpl0M64Tfg2g/ByfwpNJ-K</a></p>
]]></description>
        </item>
    </channel>
</rss>