【问题标题】:How to extract the sequence from FASTA file using Perl?如何使用 Perl 从 FASTA 文件中提取序列?
【发布时间】:2015-03-16 06:24:41
【问题描述】:

我有一个包含许多蛋白质序列的FASTA 文件。我需要阅读 FASTA 文件,删除标题并将序列保存在不同的变量中。有关如何在 Perl 中执行此操作的任何建议(请不要使用 Bio Perl)?

FASTA 文件示例:

gi|542264878|ref|XP_003460692.2| PREDICTED: myosin heavy chain, fast skeletal muscle-like, partial [Oreochromis niloticus|
KCFEKPKPAKGKAEAHFSLVHYAGTVDYNITGWLDKNKDPLNDSVVQLYQKSSNKLLALLYVAHAGGEEAGGGKKGGKKKGGSFQTVSALFRENLGKLMTNLRSTHPHFVRCLIPNETKTPGLMENFLVIHQLRCNGVLEGIRICRKGFPSRILYGDFKQRYKVLNASVIPEGQFIDNKKAS

我只想要序列:

KCFEKPKPAKGKAEAHFSLVHYAGTVDYNITGWLDKNKDPLNDSVVQLYQKSSNKLLALLYVAHAGGEEAGGGKKGGKKKGGSFQTVSALFRENLGKLMTNLRSTHPHFVRCLIPNETKTPGLMENFLVIHQLRCNGVLEGIRICRKGFPSRILYGDFKQRYKVLNASVIPEGQFIDNKKAS

【问题讨论】:

  • 为什么这被否决了?似乎是一个公平的问题。

标签: regex perl file-handling


【解决方案1】:

如果awk 适合你,那么这个简单的单线就可以了

# cat test 
gi|542264878|ref|XP_003460692.2| PREDICTED: myosin heavy chain, fast skeletal muscle-like, partial [Oreochromis niloticus| KCFEKPKPAKGKAEAHFSLVHYAGTVDYNITGWLDKNKDPLNDSVVQLYQKSSNKLLALLYVAHAGGEEAGGGKKGGKKKGGSFQTVSALFRENLGKLMTNLRSTHPHFVRCLIPNETKTPGLMENFLVIHQLRCNGVLEGIRICRKGFPSRILYGDFKQRYKVLNASVIPEGQFIDNKKAS

# awk '{print $NF}' test
KCFEKPKPAKGKAEAHFSLVHYAGTVDYNITGWLDKNKDPLNDSVVQLYQKSSNKLLALLYVAHAGGEEAGGGKKGGKKKGGSFQTVSALFRENLGKLMTNLRSTHPHFVRCLIPNETKTPGLMENFLVIHQLRCNGVLEGIRICRKGFPSRILYGDFKQRYKVLNASVIPEGQFIDNKKAS

这里是perl方式:

# perl -lane 'print $F[-1]' test 
KCFEKPKPAKGKAEAHFSLVHYAGTVDYNITGWLDKNKDPLNDSVVQLYQKSSNKLLALLYVAHAGGEEAGGGKKGGKKKGGSFQTVSALFRENLGKLMTNLRSTHPHFVRCLIPNETKTPGLMENFLVIHQLRCNGVLEGIRICRKGFPSRILYGDFKQRYKVLNASVIPEGQFIDNKKAS

请参阅此链接以获取每条线的解释:https://blogs.oracle.com/ksplice/entry/the_top_10_tricks_of

【讨论】:

  • @slayedbyucifer 您的答案不适合其他 fasta 文件。?
  • @Hussain,此答案特定于给定的示例数据。就是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 2021-12-28
  • 2020-06-03
相关资源
最近更新 更多