Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kojix2/dataforasobi2
https://github.com/kojix2/dataforasobi2
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kojix2/dataforasobi2
- Owner: kojix2
- Created: 2024-05-10T05:14:06.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-05-12T03:01:02.000Z (6 months ago)
- Last Synced: 2024-05-12T06:28:25.188Z (6 months ago)
- Language: Python
- Size: 2.77 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DataForAsobi
## はじめに
- ここはPlayground(遊び場)である
- 現実世界のデータはサイズが大きすぎるため、繰り返しの試行に向いていない。このことが学習を困難にしている。
- そこで小さな仮想のデータを作って、シミュレーションを行うことで勉強することを試みる。
- 参考資料 [Biostar Handbook](https://www.biostarhandbook.com/)## リファレンスゲノム
まずは小さな架空のリファレンスゲノムを作ってみる。
```python
import random# 染色体名と長さを定義
chromosomes = {
'chr1': 2000,
'chr2': 1800,
'chr3': 1600,
'chr4': 1400,
'chr5': 1200,
}# 塩基をランダムに生成する関数
def generate_sequence(length):
return ''.join(random.choice('ACGT') for _ in range(length))# FASTAファイルを出力
for chromosome, length in chromosomes.items():
sequence = generate_sequence(length)
print(f">{chromosome}\n{sequence}")
``````
python generate_reference.py > ref.fa
```bgzip による圧縮
```
bgzip -k ref.fa
```faidx を作る
```
samtools faidx ref.fa
```bwa のインデックスを作る
```
bwa index ref.fa
```2bit ファイルを作る
```
faToTwoBit ref.fa ref.2bit
```## 突然変異とショートリードのシミュレーション
[wgsim.cr](https://github.com/kojix2/wgsim.cr) を使います
```
mkdir s1 s2 s3
```mutationの発生
```
wgsim.cr mut -S 201 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 ref/ref.fa > s1/s1.fa 2> s1/s1.mutation.txt
wgsim.cr mut -S 301 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 ref/ref.fa > s2/s2.fa 2> s2/s2.mutation.txt
wgsim.cr mut -S 401 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 ref/ref.fa > s3/s3.fa 2> s3/s3.mutation.txt
```シーケンスのシミュレーション
```
wgsim.cr seq -D 15 -S 201 s1/s1.fa s1/s1_1.fa s1/s1_2.fa
wgsim.cr seq -D 15 -S 301 s2/s2.fa s2/s2_1.fa s2/s2_2.fa
wgsim.cr seq -D 15 -S 401 s3/s3.fa s3/s3_1.fa s3/s3_2.fa
```## アラインメント
ChatGPTを使ってSnakefileを書かせてみた。
```
snakemake --cores 3
```みたいな感じ
## bcftools
```
bcftools mpileup -O v \
-f ref/ref.fa \
s1/s1.sorted.bam \
s2/s2.sorted.bam \
s3/s3.sorted.bam \
> s123_genotypes.vcfbcftools call -vm -O v \
s123_genotypes.vcf \
| bcftools norm -O v \
-f ref/ref.fa -d all - \
> s123_variants.vcf
```## freebayes
## mosdepth
quantile すごい
```
mosdepth -q 0:1:4:100:200: s1 s1.sorted.bam
```## T1, T2, T3
追加のmutationの発生
```
wgsim.cr mut -S 201 --ploidy 1 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 s1/s1.fa > t1/t1.fa 2> t1/t1.mutation.txt
wgsim.cr mut -S 301 --ploidy 1 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 s2/s2.fa > t2/t2.fa 2> t2/t2.mutation.txt
wgsim.cr mut -S 401 --ploidy 1 -i 0.0002 -d 0.0002 -I 0.5 -D 0.5 s3/s3.fa > t3/t3.fa 2> t3/t3.mutation.txt
``````
wgsim.cr seq -D 20 -S 201 t1/t1.fa t1/t1_1.fa t1/t1_2.fa
wgsim.cr seq -D 20 -S 301 t2/t2.fa t2/t2_1.fa t2/t2_2.fa
wgsim.cr seq -D 20 -S 401 t3/t3.fa t3/t3_1.fa t3/t3_2.fa
```mutect2 は Docker で動かす。
```
snakemake --core 3
```mutect2ディレクトリの中に、VCFファイルが出力される。