2 个版本

0.1.1-alpha.42023年6月7日
0.1.1-alpha.32023年6月6日

#721科学

31 每月下载量

Apache-2.0

325KB
6.5K SLoC

TCA 是一个库,用于促进科学数据的开放式分析,简化 ML 模型的应用,并为科学和工程团队提供公共数据接口。

概览

用户主要通过 datafusion 的 SessionContext 以及 TCASessionExt 扩展特质来使用。这提供了一系列方便的方法来从各种来源加载数据。

有关更多信息,请参阅 TCASessionExt 上的 read_* 方法。例如,read_fastaread_gff。还有一个 read_inferred_tca_table 方法,它将尝试从文件扩展名推断数据类型和压缩,以便于使用。

为了方便这些方法,TCA 为 DataFusion 实现了多个特质,这些特质是科学数据处理的好基础。有关更多信息,请参阅 datasources 模块。

示例

加载一个 FASTA 文件

use tca::context::TCASessionExt;

use datafusion::prelude::*;
use datafusion::error::Result;

let ctx = SessionContext::new();

let df = ctx.read_fasta("test-data/datasources/fasta/test.fasta", None).await?;

assert_eq!(df.schema().fields().len(), 3);
assert_eq!(df.schema().field(0).name(), "id");
assert_eq!(df.schema().field(1).name(), "description");
assert_eq!(df.schema().field(2).name(), "sequence");

let results = df.collect().await?;
assert_eq!(results.len(), 1);  // 1 batch, small dataset

加载一个 ZSTD 压缩的 FASTA 文件

use tca::context::TCASessionExt;

use datafusion::prelude::*;
use datafusion::error::Result;
use datafusion::datasource::file_format::file_type::FileCompressionType;

let ctx = SessionContext::new();

let file_compression = FileCompressionType::ZSTD;
let df = ctx.read_fasta("test-data/datasources/fasta/test.fasta.zstd", Some(file_compression)).await?;

assert_eq!(df.schema().fields().len(), 3);
assert_eq!(df.schema().field(0).name(), "id");
assert_eq!(df.schema().field(1).name(), "description");
assert_eq!(df.schema().field(2).name(), "sequence");

let results = df.collect().await?;
assert_eq!(results.len(), 1);  // 1 batch, small dataset

依赖项

~68MB
~1.5M SLoC