我有多個序列環比IDS兩個FASTA文件
cat file1.fasta
>1
ACGTCGAT
>2
ACTTTATT
>3
ACGGGG
cat file2.fasta
>1
CCGGAGC
>2
TGTCAGTC
>3
CTACGTCTT
2個FASTA文件我也有標識每個FASTA文件,我想使用的ID來提取特定序列的列表,使2序列fasta,然後執行一些操作(對齊,計算距離)。
列表:
cat file1.list
1
3
cat file2.list
2
1
在現實中這些FASTA文件,並列出成千上萬的長
我想遍歷在列表中的每一行以提取匹配的FASTA文件序列/線特定的id /行,然後將每個文件中的fasta序列組合到可以對齊的兩個序列fasta文件中。基本上,我希望每個fasta序列與它的「pair」成對對齊。
因此,根據此處的示例和列表ID順序,我想將file1.fasta中的fasta序列1與file2.fasta中的fasta序列2配對,然後移至下一對(來自file1的序列3)。 fasta,以及來自file2.fasta的序列1等)。基於id提取fasta序列相對比較簡單(有幾種方法),但其中一個是faOneRecord
,它將輸入的fasta文件作爲要提取的fasta文件,然後輸入要查找的記錄/ id,然後返回fasta序列和頭:
faOneRecord <in.fa> <recordName>
因此,第一循環結束後,我會根據ID列表上創建這個文件:
>1
ACGTCGAT
>2
TGTCAGTC
等。
我認爲這樣做相對容易,但我似乎無法達到那裏。然後,一旦我製作了兩個fasta序列,每個循環,我想對齊並獲得距離估計值,打印到文件並轉到下一個循環。其餘部分可能需要一些工作,並需要特定的程序,但我需要幫助,只需生成2個序列fasta提取/循環通過ID。
我想主要的問題是如何循環的ID,然後管那些ID作爲參數傳遞到faOneRecord
命令
這可能是太具體了,如果讓我道歉,但對如何獲得任何想法開始將是有益的,非常感謝。
你真的需要使用bash嗎?這是一個可以用一種語言解決的問題,在這種語言中,您可以打開兩個fasta文件並將序列保存到一個數組,以及可以並行迭代列表文件的位置。在bash中這兩者都非常棘手。 – Marian
它不需要在bash中......我只需要最終在bash中調用程序。 python(biopython)解決方案可能更直接,但我不太熟練。你有建議如何在python中啓動它? – user95146