Julia 中的字典帮助 - 从文本文件创建字典

2023-12-30

我正在尝试根据 Julia 中文本文件的内容创建一个库,以用于生物信息学问题。该文件的格式如下:

UUU F      CUU L      AUU I      GUU V
UUC F      CUC L      AUC I      GUC V
...

我想制作一本字典,其中键是 3 个字母部分(密码子),条目是一个字母部分(氨基酸)。我可以使用 grep 取出正确的组件:

for m in eachmatch(r"([AUGC]{3,3})\s([A-Z])", file)
    codon, aa = m.captures

如果我打印codon and aa在这个循环中,我得到了正确的输出(所有密码子,所有氨基酸),但我不知道如何将其放入字典中。如果我做:codons = {codon => aa}在循环结束时,我最终得到一个仅包含最后一个条目的字典。

我确信语法是非常明显的,但我是生物学家,而不是程序员,所以我的阅读文档 http://julia.readthedocs.org/en/latest/stdlib/base/?highlight=dictionaries#associative-collections没有带我去任何地方。它说:

给定一个字典 D,语法 D[x] 返回键 x 的值(如果存在)或抛出错误,并且 D[x] = y 将键值对 x => y 存储在 D 中(替换任何现有的)键 x 的值)。

但我尝试过codons[codon] = aa在循环结束时(我用codons = {}在循环之前),但我收到错误:

no method setindex!(Array{Any,1},SubString{UTF8String},SubString{UTF8String})
at In[35]:5
 in anonymous at no file:4

任何帮助将不胜感激。

编辑:显然,我没有正确启动字典。如果我做codons = {"blah" => "blahblah"}一开始,循环工作并正确填充。所以一个修改后的问题:如何启动空库?

编辑2:最小不起作用的示例:

file = open(readall, "rna_codons.txt")
codons = {}
for m in eachmatch(r"([AUGC]{3,3})\s([A-Z])", file)
    codon, aa = m.capture
    codons[codon] = aa
end

只是总结一个最小工作示例(MWE),用于将格式化文本文件读入 Julia 的情况Dict http://julia.readthedocs.org/en/latest/stdlib/base/?highlight=associative%20array#associative-collections...

file = open(readall, "rna_codons.txt")
codons = Dict()
for m in eachmatch(r"([AUGC]{3,3})\s([A-Z])", file)
    codon, aa = m.capture
    codons[codon] = aa
end

注意:如果文件非常大,可能有一种更快的方法来生成您的文件Dict.

EDIT

鉴于您明显的文本文件格式,这是创建您的另一种方法Dict。我没有进行任何测试来确定任何性能损失/增益。

condon_array = open(readdlm, "rna_codons.txt")
condons = Dict{ASCIIString,ASCIIString}(condon_array[:,1:2:end][:],condon_array[:,2:2:end][:])

注意:如果您使用它,最好检查它的正确性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia 中的字典帮助 - 从文本文件创建字典 的相关文章

  • 定义 types.Dict 和 dict 之间的区别?

    我正在练习使用 Python 3 5 中的类型提示 我的一位同事使用typing Dict import typing def change bandwidths new bandwidths typing Dict user id int
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • 在 Julia 中保存和检索字典的正确方法是什么?

    我已经看到 Julia 充分解释了 MAT 文件 这些文件中的结构可以毫无问题地作为字典读取 现在我创建了自己的字典 其结构如下 String String gt Int Int Int 在每个条目上 我可以保存它writedlm它产生了一
  • OpenStreetMap 不显示在 RStudio 中(使用 R 3.2.1)

    我正在使用来自的代码here https rstudio github io leaflet library leaflet m lt leaflet gt addTiles gt addMarkers lng 174 768 lat 36
  • 如何在 python 3.x 中操作嵌套字典?

    我被这个问题困扰了 你能解决这个挑战吗 开始了 我们在二级字典中表示一系列比赛中球员的分数 如下所示 match1 player1 57 player2 38 match2 player3 9 player1 42 match3 playe
  • 如何在 Julia 中引用结构本身

    我有这个代码 struct MyStruct text String function MyStruct text String text text do other things end end 当我写这篇文章时 我意识到朱莉娅没有认识到
  • Python 如果 kwargs 中的 key 并且 key 为 true

    if force in kwargs and kwargs force is True 感觉应该有更好的方法来编写这个条件 因为我重复了键和变量 假设您确实想检查返回的关键字参数是否is True 这是另一种稍微不同的方式 if kwarg
  • 在 Swift 中初始化空字典数组

    我正在尝试在 Swift 中初始化空数组 对于字符串数组来说 这非常简单 var myStringArray String myStringArray a myStringArray b gt a b 对于整数 var myIntArray
  • 词典类

    在 Java 字典类中 单个键是否可以有多个值 首先 关于字典类 该类被认为已过时 文档建议使用 Map 代替 您正在寻找的这种集合称为多重映射 您可以使用列表自己实现一个 但这很乏味 您可能想要使用 Apache Collections
  • Java固定内存映射

    有没有一种简单 高效的Map允许限制映射使用的内存的实现 我的用例是 我想在创建时动态分配大部分可用内存 但我不希望OutOFMemoryError将来的任何时候 基本上 我想使用这个地图作为缓存 但我想避免像这样的重缓存实现EHCache
  • Python unittest - 使用列表断言字典

    在为我的班级编写一些测试时 我遇到了有趣的简单问题 我想断言两个字典包含一些列表 但是这个列表可能不会以相同的方式排序 gt 这会导致测试失败 Example def test myobject export into dictionary
  • 如何终止 Julia 中的任务/协程?

    using HttpServer http HttpHandler do request Request response Response show request Response Hello there end http events
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切
  • JSON 转换带有整数键的 Map

    我有一个测试代码的小样本 我尝试将 Map 转换为 JSON 字符串并返回 在解析 JSON 字符串时 结果映射包含字符串键 1 而不是整数键 1 从而导致测试失败 用作此映射的键的 POJO 也会发生同样的情况 这是预期行为还是我省略了
  • 如何在 Kotlin 中将 List 转换为 Map?

    例如 我有一个字符串列表 例如 val list listOf a b c d 我想将其转换为地图 其中字符串是键 我知道我应该使用 toMap 函数 但我不知道如何实现 也没有看到任何例子 你有两个选择 第一个也是性能最高的是使用asso
  • 当通过 Map.put(K, V) 添加值时,是否必须通过 Map.get(K) 返回相同的实例?

    假设您有以下代码 Map
  • 如何在python 2.7.8中将非英文字母的字典写入文件?

    这是一个简单的例子 test location 北京 country 中国 the values are Chinese 在文件 test log 中 location 北京 country 中国 在python 2 7 8中 当我需要输出
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • Python,将字典存储在数据库中

    在数据库中存储和检索 python 字典的最佳方法是什么 如果您对使用传统 SQL 数据库 例如 MySQL 不是特别感兴趣 您可以研究非结构化文档数据库 其中文档自然映射到 python 字典 例如MongoDB http www mon
  • Julia 中的 Refs 和 Broadcasting 之间有什么联系

    对于两个对象A and B我们之前可以得到向量 A A A B 与代码A A B 从 Julia 0 7 中的弃用警告来看 执行此操作的新方法似乎是使用第一个 A 的引用 所以它变成Ref A A B 参考文献和广播操作之间似乎没有很强的联

随机推荐