Give it a transcript and a range. It blows out every variant. 전사체와 구간만 주세요. 가능한 변이를 전부 뿜어냅니다.
VCFART reads HGVS ranges such as c.5075-100_c.5152+100, follows the transcript on your hg19 or hg38 FASTA, and writes every SNV, indel or codon swap as a sorted, normalized VCF that SpliceAI, ANNOVAR and VEP take as is.
VCFART는 c.5075-100_c.5152+100 같은 HGVS 구간을 읽고, hg19·hg38 FASTA 위에서 전사체를 따라가며, 가능한 모든 SNV·indel·코돈 치환을 정렬·정규화된 VCF로 씁니다. SpliceAI, ANNOVAR, VEP에 그대로 넣으면 됩니다.
python -m pip install vcfart
Hover a cell, or tab into the map and use the arrow keys.칸 위에 마우스를 올리거나, Tab으로 들어가 화살표 키로 움직여 보세요.
- HGVS c.
- HGVS p.
- Consequence
- VCF recordVCF 레코드
- splice site, stop gained, start or stop lostsplice site, stop gained, start/stop lost
- missensemissense
- splice regionsplice region
- synonymous동의 변이
- intron, UTR인트론, UTR
- reference basereference 염기
What a run looks like실행하면 이렇게 나옵니다
Every step is logged with what it found, and the consequences come back as a coloured bar chart before the files are written. Colour switches off when you pipe the output or set NO_COLOR.단계마다 찾은 내용을 보여주고, 파일을 쓰기 전에 consequence 분포를 색깔 막대그래프로 보여줍니다. 출력을 파이프로 넘기거나 NO_COLOR를 설정하면 색은 꺼집니다.
$ vcfart generate -f demo.fa -a demo_refGene.txt -t NM_DEMO.1 -r ex3=exon3:30 -m snv,del,ins -o out/demo_ex3 ██╗ ██╗ ██████╗███████╗ █████╗ ██████╗ ████████╗ ██║ ██║██╔════╝██╔════╝██╔══██╗██╔══██╗╚══██╔══╝ ██║ ██║██║ █████╗ ███████║██████╔╝ ██║ ╚██╗ ██╔╝██║ ██╔══╝ ██╔══██║██╔══██╗ ██║ ╚████╔╝ ╚██████╗██║ ██║ ██║██║ ██║ ██║ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ 💨 뿌뿡 artificial VCFs for MAVE / SGE / DMS v1.0.0 reference | 🧬 demo.fa annotation | 📚 demo_refGene.txt transcript | 📍 NM_DEMO.1 DEMO1 chrDemo:501-2,843 (-) 5 exons CDS 603 bp region | 🎯 ex3 c.181-30_342+30 chrDemo:1,752-1,973 222 bp intron2 → intron3 generate | 💨 1,772 raw edits → 1,487 unique variants types | 🧪 SNV 666 INS 664 DEL 157 consequence | 📊 frameshift_variant ██████████████████████ 581 | missense_variant █████████████ 348 | intron_variant █████████ 227 | synonymous_variant ████ 118 | splice_region_variant ███ 87 | splice_polypyrimidine_tract_variant ██ 56 | stop_gained █ 38 | splice_donor_variant █ 11 | splice_acceptor_variant █ 11 | splice_donor_5th_base_variant █ 10 write | 💾 out/demo_ex3.vcf | 💾 out/demo_ex3.tsv 💨 뿌뿡! 1,487 variants → out/demo_ex3.vcf
What comes out출력 파일
Three plain-text files per run. The lines below are copied unedited from the run shown above, on the demo gene bundled in examples/.실행할 때마다 텍스트 파일 세 개가 나옵니다. 아래 줄들은 위 터미널 화면의 실행(examples/에 들어 있는 demo 유전자)에서 그대로 가져왔습니다.
PREFIX.vcf
Every variant, sorted and left-normalized, REF checked against your FASTA. The ID column carries the c. description.
모든 변이를 정렬하고 left-normalize하며, REF는 FASTA로 확인합니다. ID 열에 c. 표기가 들어갑니다.
#CHROM POS ID REF ALT ... INFO
chrDemo 1944 c.181-1G>A C T ... VA_HGVSc=c.181-1G>A;VA_CSQ=splice_acceptor_variant&intron_variant;
VA_REGION=intron2;VA_TYPE=SNV;VA_ORIGIN=snv;VA_SET=ex3
PREFIX.tsv
One row per variant: HGVS c., predicted HGVS p., consequence, exon or intron, and which range produced it.
변이 한 줄씩: HGVS c., 예측 HGVS p., consequence, 엑손/인트론 위치, 어느 구간에서 나왔는지.
set pos ref alt hgvs_c hgvs_p consequence region
ex3 1936 G A NM_DEMO.1:c.188C>T p.Pro63Leu missense_variant exon3
PREFIX.oligos.fa
With --oligo: the mutant window for each variant in transcript orientation, with your adapters attached.
--oligo를 주면: 변이마다 transcript 방향의 mutant 서열, 어댑터까지 붙여서.
>ex3|WT …CTTTTCCTTTTTTTTCTCCAGACAACCCCCCCCATTTACGA… >ex3|c.181-1G>A …CTTTTCCTTTTTTTTCTCCAAACAACCCCCCCCATTTACGA…
Ranges, written the way you already write them구간은 평소 쓰던 대로
BRCA1, NM_007294.4, hg38. Exon numbers follow the transcript model in your annotation file.BRCA1, NM_007294.4, hg38 기준. 엑손 번호는 annotation 파일의 전사체 모델을 따릅니다.
| You type입력 | VCFART readsVCFART가 읽는 구간 |
|---|---|
-r c.5075-100_c.5152+100 | chr17:43,063,774–43,064,051 (278 bp: intron 16, exon 17, intron 17)(278 bp: 인트론 16, 엑손 17, 인트론 17) |
-r exon17:100 | the same 278 bp: exon 17 plus 100 bp on each side같은 278 bp: 엑손 17 + 양쪽 100 bp |
-r int16=c.5075-100_c.5075-1 | the 3′ end of intron 16, labelled int16 in the output인트론 16의 3′ 끝, 출력에 int16 라벨로 표시 |
-r c.5075-1 | chr17:43,063,952 (the splice acceptor of exon 17)(엑손 17의 splice acceptor) |
-r cds --exonic-only | every coding base from c.1 to the stop codon, introns left outc.1부터 stop codon까지 코딩 염기만, 인트론 제외 |
Four ways to mutate변이를 만드는 네 가지 방법
Combine them in one run, for example -m snv,del,codon. Variants that are the same at the sequence level are written once.한 번에 섞어 쓸 수 있습니다(예: -m snv,del,codon). 서열상 같은 변이는 한 번만 기록됩니다.
- -m snv
- All three alternative bases at every position. This is the default.모든 위치에서 나머지 염기 3개로 치환합니다. 기본값입니다.
- -m del --del-sizes 1,3
- Deletions of the lengths you list. Deleting any C of a CCCCCC run gives one record, named by the 3′ rule.지정한 길이의 결실. CCCCCC 중 어느 C를 지워도 한 줄로 합쳐지고, 3′ rule로 이름 붙습니다.
- -m ins --ins-sizes 1
- Every k-mer inserted between every pair of bases. Insertions that copy the neighbouring sequence are reported as dup.모든 염기 사이에 가능한 모든 k-mer 삽입. 옆 서열을 복제하는 삽입은 dup으로 표기됩니다.
- -m codon
- Deep-mutational-scanning codon swaps: one codon per amino acid plus Ter and a synonymous control, all 63 codons, or NNK.DMS 방식 코돈 치환: 아미노산마다 코돈 하나 + Ter + 동의 코돈 대조군, 63개 전부, 또는 NNK.
Checked against real data실제 데이터로 검증
Run on hg38 with the ANNOVAR hg38_refGene.txt transcript table.hg38과 ANNOVAR hg38_refGene.txt 전사체 테이블로 실행했습니다.
| Target대상 | Variants변이 수 | Result결과 |
|---|---|---|
| 444-bp intron–exon–intron target, minus-strand gene444 bp 인트론–엑손–인트론 구간, minus strand 유전자 | 1,332 SNVs | Positions, alleles and c. labels identical to the authors’ original in-house MAVE scripts기존 in-house MAVE 스크립트와 위치, 염기, c. 표기 모두 동일 |
| DRC1 coding sequence, NM_145038, plus strandDRC1 코딩 서열, NM_145038, plus strand | 6,669 SNVs | c. and p. identical to ANNOVAR refGene for all 6,669, including start and stop changes6,669개 전부 ANNOVAR refGene과 c./p. 일치(start·stop 변화 포함) |
| Test suite: synthetic genes on both strands, indel normalization, protein edge cases테스트: 양쪽 strand 합성 유전자, indel 정규화, 단백질 예외 사례 | 49 tests | All pass모두 통과 |
Start in four commands명령 네 개로 시작하기
Python 3.9 or newer, nothing else to install. Your FASTA gets a .fai index on first use if it has none.Python 3.9 이상이면 끝, 다른 설치는 없습니다. FASTA에 .fai가 없으면 처음 실행할 때 만듭니다.
Install설치
python -m pip install vcfart
Look up the transcript전사체 확인
vcfart info -f hg38.fa -a humandb/hg38_refGene.txt -t NM_007294.4
Generate the variants변이 생성
vcfart generate -f hg38.fa -a humandb/hg38_refGene.txt -t NM_007294.4 \ -r exon17:100 -m snv,del -o BRCA1_ex17Score them점수 매기기
spliceai -I BRCA1_ex17.vcf -O BRCA1_ex17.spliceai.vcf -R hg38.fa -A grch38
