bashスクリプトの代わりにgff2fastaを使用して全ゲノムから部分DNA配列を取得する

bashスクリプトの代わりにgff2fastaを使用して全ゲノムから部分DNA配列を取得する

編集とソリューション

私の元の質問の表現が不都合で、車輪を再発明しようとしたので、今私の質問に答えています(他の人に役立つかもしれません)。

gff2fastaは私が必要とするタスクを正確に実行するためのツールです。つまり、完全なゲノム(FULLGENOME.fastaというfasta形式の巨大なファイル)から与えられたDNA断片を抽出することです。

目的のフラグメントがどこにあるかを知っている場合は、TEST.gffというファイルを作成して、gff2fastaフラグメント(ここではsca_5_chr5_3_0)と開始(ここ:2390621)と終了(ここ:2391041)のスキャフォールディングを指定します。たとえば、

 sca_5_chr5_3_0 JGI CDS 2390621 2391041 .   +   0   name "e_gw1.5.88.1"; proteinId 40463;

それではただ走らなければなりません。

 gff2fasta.pl -gff TEST.gff -fasta FULLGENOME.fasta -out test

その後、gff2fasta は TEST.gff から情報を取得し、次の test というファイルに目的のビットを出力します。

 >sca_5_chr5_3_0_2390621_2391041_F
 ATGACGACCCGCGCACCCAAAGACACATACGCTCAGCCCGACTATGAGGAGGCTCACCTAGCGACGTTTGCAGCCCCAAA
 AGGCTACCCTATCGAGTCTATGCTACCCCCTAGCGTGAAGAGGGAGACCTTTGAACAGGCCCTAGCCGAGTTTACCGACG
 CTATCGGCAAAGATTATGTCTTTATCGGCGATGCTCTCTCTCACTACATCGATCCCTACGACATCTATATCGATGATAGT
 GAGAGAAGGAGGATGCCGAGCGCGGCTGTTTGGTACGTAACGCGGCACCCATCGAAACCTAGCAGCACTGACAAGTTTCC
 GCGTCTAGTCCCTCTTCGCTCGAGGAAGCTAAGCAGGCTCTCAAGGTTGCGAACAAATACGGCATTCCGATCTGGGCATT
 TTCCAGAGGCAAGAACCTGGG

助けてくれたterdonと他の人に感謝します!

-------------

これは、より多くの情報と詳細を含む対応する質問の続きです。unix:ファイルから文字10〜80をインポートする

ほぼすべてが来たと思いますが、まだ助けが必要です。

できるだけ明確に説明しようとしていますが、これは非常に技術的な質問であることを知っているので、より明確に説明できる部分があれば教えてください!

私が持っているファイルは3つです。

管理者注:ファイルをアップロードできますか?どうすればいいのかわかりません...

一つ文書(N_haematococca_1.fasta)以下から名前を抽出する必要があります。

 head -1 N_haematococca_1.fasta | cut -f4 -d'|' 

この場合、名前は次のようになります。

 e_gw1.5.88.1

Q1:上記のコードはうまく機能しますが、後で使用できる変数に名前(e_gw1.5.88.1)を保存するのに問題があります...

その名前を変数に保存したいと思います。名前を付けてみましょう。

 firstline

第二ファイル(Necha2_best_models.gff)、この名前が表示されるすべての行が必要です。

 grep -ir "e_gw1.5.88.1" --include="Necha2*.gff" > Necha2_in_genome.list

ただし、名前付き変数の場合:

 grep -ir $firstline --include="Necha2*.gff" > Necha2_in_genome.list

これは「e_gw1.5.88.1」を使って動作します。

ここで生成されたファイルは、私がカットしたいDNA断片の名前(sca_5_chr5_3_0)と私が望む部分(グリフ2390621からグリフ2392655まで)を示します。 3番目のファイルから正しいビットを取得するには、この情報が必要です。

 a=(`awk -F '\t' '{print $4}' Necha2_in_genome.list`)

 startDNA=${a[1]}
 endDNA=${a[${#a[@]}-1]}

 #add 1000 or other number, depending on the problems with the gene
 correctedstartDNA=$(($startDNA-1000))
 correctedendDNA=$(($endDNA-1000))

第三この例では、次のキーワード(sca_5_chr5_3_0)の後ろの一部を切り取りたいと思います。

Kamarajとhschouのおかげで、これには部分的な解決策がありました。

 cat Necha2_scaffolds.fasta | sed -n -e '/sca_5_chr5_3_0/,$p' | grep -v '^>' | tr -d '\n'|awk -v start="${correctedstartDNA}" -v end="${correctedendDNA}" '{print substr($0,start,end)}' RS= Necha2_scaffolds.fasta

ただし、より小さい数字でデバッグする場合:

 cat Necha2_scaffolds.fasta | sed -n -e '/sca_5_chr5_3_0/,$p' | grep -v '^>' |  tr -d '\n'|awk -v start=10 -v end=20 '{print substr($0,start,end)}' RS= Necha2_scaffolds.fasta

私は次のような結果を得ます。

 r1_1_0
 CCTTATCCTAGCG
 nmapped
 CTTATATATTAT
 nmapped
 TAAAAGGAGTTA
 unmapped
 TCTTATATAAA
 unmapped
 AATCTTAAGAA

RSオプションは無視され、10〜20の特定の行だけが印刷されるようです。なぜこの行が選択されたのかわかりません。

 sca_5_chr5_3_0

ファイルに一度だけ表示されます。

他の名前もあります。

 >sca_66_unmapped 
 >sca_67_unmapped

など

私は178個のゲノムからこの情報を取得する必要がありますが、それらは巨大なファイルであり、手動検索はオプションではありません。

ファイルの外観は次のとおりです。

N_haematococca_1.fasta(ファイル1)は一般的なfastaファイルです。

 >jgi|Necha2|40463|e_gw1.5.88.1
 MTTRAPKDTYAQPDYEEAHLATFAAPKGYPIESMLPPSVKRETFEQALAEFTDAIGKDYVFIGDALSHYI
 DPYDIYIDDSERRRMPSAAVCPSSLEEAKQALKVANKYGIPIWAFSRGKNLGYGGPSARVNGSVAFDLHR

Necha2_best_models.gff(ファイル2)は次のようになります(もっと長い):

 sca_5_chr5_3_0 JGI exon    2390621 2390892 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2390621 2390892 .   +   0   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 1
 sca_5_chr5_3_0 JGI start_codon 2390621 2390623 .   +   0   name "e_gw1.5.88.1"
 sca_5_chr5_3_0 JGI exon    2390949 2391041 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2390949 2391041 .   +   2   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 2
 sca_5_chr5_3_0 JGI exon    2391104 2391311 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2391104 2391311 .   +   2   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 3
 sca_5_chr5_3_0 JGI exon    2391380 2392367 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2391380 2392367 .   +   0   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 4
 sca_5_chr5_3_0 JGI exon    2392421 2392485 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2392421 2392485 .   +   1   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 5
 sca_5_chr5_3_0 JGI exon    2392541 2392657 .   +   .   name "e_gw1.5.88.1"; transcriptId 40463
 sca_5_chr5_3_0 JGI CDS 2392541 2392657 .   +   0   name "e_gw1.5.88.1"; proteinId 40463; exonNumber 6
 sca_5_chr5_3_0 JGI stop_codon  2392655 2392657 .   +   0   name "e_gw1.5.88.1"
 sca_5_chr5_3_0 JGI exon    2396205 2396730 .   +   .   name "e_gw1.5.227.1"; transcriptId 41333
 sca_5_chr5_3_0 JGI CDS 2396205 2396730 .   +   0   name "e_gw1.5.227.1"; proteinId 41333; exonNumber 1
 sca_5_chr5_3_0 JGI start_codon 2396205 2396207 .   +   0   name "e_gw1.5.227.1"

Necha2_scaffolds.fasta(ファイル3)は次のとおりです(より長いGATCビット...)。

 >sca_8_chr1_1_0
 CCTTATCCTAGCGAGGATTAAGGTCCTCGAAAAGAAAGGCAAAGATATAAAGGTAATATAATAGAAGATT
 AAGGTATTCTAAGTAAAGGTTATAAAGAAATAAAATAAGAAGAATATTTATAGGCTAAGAAAGACCCCCC
 TAAAGGTTAAGGACTTAATATTAAGATTTAATATTCCCTAATTAATTAATATATTAATAAAAATAAAGAT
 >sca_5_chr5_3_0
 ATGACCACTATATCCATCGGCACAACGGCGTTAATCACATTTGGGTCTGCAATTTTCTGTTTTTGCGGTT
 TTCATGTCGGTTCCAACGGGCGGAGCTCGACCAAGAATTACATACATTACGTGGCGCGAGCGCTCTACCC
 TCTGGGACATGAAGGGGACGAGGAGTCTGGAGAGGTTCATGTTTGGAATCACAGCATGGTACTGCGGCAC
 CCTACCTTGGTCATTCGTTGGTCTCTTTTTTTCAGGGTATGGACGCAGACTCTCAGACTCGCTCTGCTTT
 >sca_67_unmapped
 CTACAGGAAGCCCTAGAGGCCCTGCAAGACCTTCCAAAGCAGCACTCTTTGCTTCTTCTTAGAGGCAGTA
 TCCAGCTTCTTCTAAGGCACCTCCAGAGGCAGCTAGACCCAACCGGGCTAAAAGACCTTTGGGAAGAGGC
 TAATACCCTTATAAGAGAGGCTATTATAGCCCTAGTGGCTAGAAGCCCTAGTGAGAGCCCTAAAGAGCCT
 AATTCAAGCCTTATAGCCCTTCCAGTCAGAGAGGGAGGCCTAGGAATACCCTTACACAAGGACCTAGCCC

予想最終出力:> sca_5_chr5_3_0キーワードの後の1ビットテキスト。

 TTCATGTCGGTTCCAACGGGCGGAGCTCGACCAAGAATTACATACATTACGTGGCGCGAGCGCTCTACCC
 TCTGGGACATGAAGGGGACGAGGAGTCTGGAGAGGTTCATGTTTGGAATCACAGCATGGTACTGCGGCAC
 CCTACCTTGGTCATTCGTTGGTCTCTTTTTTTCAGGGTATGGACGCAGACTCTCAG

ベストアンサー1

おすすめ記事